The New Cult of Dead Cow

Porque el mundo es de los malditos

Errores en Mono

2 Commentarios




A pesar de todo, Mono me parece una excelente herramienta de programacion. Obviamente creo que no es algo perfecto. El rendimiento de mono comparado con codigo C++ es una clara desventaja, aunque para ser justo el tiempo tomando para desarrollar la aplicacion en C++ con respecto a Mono es una clara desventaja para C++.

Sin embargo, dado que mono tiene como objetivo permitir la facil migracion de sistemas Windows a Unix y viceversa, yo, desde mi humilde butaca, considero que se ha cometido un grave error de diseño.

La construccion de aplicaciones graficas en Windows.NET se hace utilizando las ya muy comunes System Windows Form, y para sistemas Unix Gtk# ( claro que algunos puristas diran que tambien Qt# ). El problema reside en que si yo quiero desarrollar una aplicacion multiplataforma no importa donde lo haga y no importa con que lo haga ... No voy a conseguir lo que yo esperaba.

Si lo hago en Windows con las SWF, pues el rendimiento en Linux y la apariencia no sera las optimas.
Si lo hago en Linux con las Gtk#, el proceso de instalacion y la apariencia en Windows son las que sufren.

En mi opinion Mono hubiera hecho bien en imitar el proceso de desarrollo de Eclipse y Java. Como deben ya saber, el IDE de desarrollo Eclipse esta construido sobre unas librerias graficas llamadas SWT, en resumen estas librerias lo que hacen es establecer un puente entre la API grafica y las funciones reales de cada sistema operativo. De esta manera no es el codigo de la MV el encargado de realizar el pintado de ventanas y botones sino el codigo del sistema operativo.

Al ser el sistema operativo mas rapido para este proceso que las MV, la aplicacion se siente mas suelta. Dado que el codigo de diseño de GUI ya esta con el sistema operativo en cuestion, no es necesario escribir buena parte del codigo. Y dado que la GUI se realiza con las funciones del sistema operativo, todas las aplicaciones tienen la misma apariencia ( anotese que esto no es del todo cierto en sistemas Linux/BSD, pero para el caso en cuestion la aproximacion es bastante buena ).

Ahora este esquema de trabajo lo realiza GTK#, y supongo yo tambien lo realiza las SWF de Mono. Entonces cual es el problema ? ... el problema es pues que lo realizan por separado. Asi si yo deseo que se vea bien mi aplicacion en Linux debo hacerlo con GTK# y si por el contrario mi mercado es Windows debo hacerlo con SWF. La idea es que al igual que con las SWT, sea el sistema el que se encargue de determinar en que SO se encuentra y por tanto que libreria grafica debe utilizar para construir la GUI.

Al igual que con SWT, las partes o interfaces graficas ( como cierto tipo de botones ) que no se encontraran presentes en alguna libreria si podria realizarse usando codigo interpretado pero estas serian minimas.

De esta forma tendriamos aplicaciones Moneras listas para usarse en cualquier sistema operativo.


Powered by ScribeFire.

  1. Se habló de cosas similares en un hilo de la lista de Mono: http://lists.ximian.com/pipermail/mono-list/2007-July/thread.html#35591
    knocte

    http://knocte.blogspot.com/

  2. Gracias por el dato, voy a leerlo. :D
    necudeco

    http://necudeco.homeunix.net

Leave a Reply