Será Mono tan bueno como lo pintan?

Artículo Mono

Cuando uno anda de pleno en el social media, siempre encuentra comentarios que llaman mucho la atención.

En esta ocasión, alguien dijo que había hecho unas pruebas en mono y su performance no le había gustado.

Desde épocas de la universidad no usaba mono. Pero en lo recuerdo, se comportaba perfectamente.

Así que aproveché para darme una actualizada en el asunto, sobretodo aprovechando que ya tenía contacto con Miguel de Icaza, gestor de la plataforma (brillante a mi modo de ver).

Así que en una charla con Miguel, tuve la oportunidad de preguntarle acerca de los casos que para él eran las joyas de la corona de mono y de esa manera poder citar estos ejemplos para mostrar que si mono no tuviese buen performance, pues no lo estarían usando. Como mencioné hasta donde usé mono siempre se comportó bien.

No solo hablamos de productos de usuario final como tal, sino también de aplicaciones de ámbito empresarial.

F-Spot

image

Se podría decir que es como un Picassa que con todas sus características hace de la administración de fotos personales algo muy sencillo! Puede importar fotos de diversos dispositivos, editarlas, subirlas a un repositorio, etc. Y todo con C# y mono!!! Y el performance experimentado no estuvo para nada deficiente.

Banshee

image

Para los que estuvimos en el mundo Linux hace unos buenos años, encontrar un aplicativo como este para reproducir nuestros archivos multimedia era algo bastante complicado. Pero hoy, gracias a Mono se ha podido desarrollar Banshee. Permite la sincronización con iPod, Android y otros dispositivos. Esto nos permite comprobar el poder del concepto .net en Linux.

Pinta

image

Como su nombre lo indica, es para pintar. Hace algunos meses me hice fanático de paint.net. Un excelente editor de bitmaps (y fotografía) surgido hace algunos años como proyecto universitario creado con C# para Windows, que hoy en día es el mejor reemplazo para el tradicional Paint de Windows, ya que incluye efectos, manejo de capas, herramientas de clonado, lazo mágico, plugins y demás, que lo hacen parecer un Photoshop light muy fácil de usar (de hecho, les cuento que la primera imagen de este post, la edité usando Paint.Net y la terminé en 3 minutos. Además es freeware!). Pues bien, Pinta está basado en Paint.Net. Tanto así, que mucho del código de Pinta es el mismo de Paint.Net. Solo que compilado sobre mono. Y en el mundo Open Source, tiene rendimientos iguales e incluso mejores que Gimp.

Deki

Deki es un Wiki enfocado a servir como entorno de colaboración especialmente de desarrolladores. Y me permito citar la opinión al respecto de Mike Shaver, jefe de los evangelistas de Mozilla:

“Mozilla tiene un gran volumen de información relevante para los desarrolladores que va desde la documentación de código tradicional y código de ejemplo, hasta suites de pruebas y datos de rastreo de errores, así como de discusiones y streams RSS. Nosotros estábamos buscando un sistema que nos diera las herramientas para combinar y re mezclar todas esas fuentes de datos de manera creativa y Deky Wiki está diseñado con esa meta en mente”

Deki fue desarrollado por MindTouch. Una compañía muy reconocida por su gran trabajo sobre mono en la producción de Wikies, Web 2.0, Mashups y en general la creación y administración de contenido. En general, usan C# para el componente de negocio y para hacer una interfaz gráfica muy fácil de personalizar, usan PHP, que está adquiriendo también mucho peso en las tecnologías Microsoft, que ya lo soportan (SqlServer, Visual Studio, IIS, Azure, Expression Web…).

Conclusión

.net sí funciona en Linux. Y de hecho ha permitido a la comunidad Open source acceder a un entorno de desarrollo ágil y robusto que permite lograr productos como los anteriormente mencionados. Además la interoperabilidad intrínseca de .net, ha permitido trabajar de la mano con otras tecnologías y hoy día es tanto el avance, que el framework se ha extendido hasta a los celulares, incluido el IPhone de Apple. Y esto ha tenido tanto éxito, que hay toda una gran comunidad de desarrolladores sobre mono trabajando y sacando provecho de estas ventajas. Hasta Silverlight tiene su versión para Linux gracias a Moonlight!

Sin embargo no todo es perfecto y hoy día algunas características no se han podido mapear correctamente, tal como el renderizado de Silverlight usando la aceleración de hardware nativa de la máquina (tal como lo describían en el comentario que dio origen a este post). No obstante, hablando con Miguel de Icaza, precisamente me comentó que en adelante el mayor enfoque de su trabajo iba a ser MVC y Entity Framework para mono y por supuesto alcanzar a Silverlight 4. Así que solo es cuestión de tiempo. Lo importante es que .net sí trabaja bien en Linux. Es más, ya empresas como Novell han creado importantes herramientas e IDEs que le dan aún muchas más facilidades a los desarrolladores. Entre ellas, Mono Tools for Visual Studio; como lo muestro en este post.

IMG_8005Ya para cerrar, quisiera unirme a la inconformidad sentida por la comunidad mono ante la decisión de Apple de impedir en el futuro que sobre su IPhone puedan correr aplicaciones que no ejecuten código nativo directamente. Cerrándole las puertas no solo a .net sino también a Flash y obviamente a Java. Me pregunto que hará que los fans de Apple ante decisiones como estas o productos como el IPad que no dejan ni tomar una foto, sigan inmutables y encantados…

Me encantaría saber sus opiniones al respecto y también resolver las dudas que tengan al respecto. Siéntanse libres de comentar!! Interoperamos!