He estado probando XBLite y de verdad es fantástico, tiene una integración increíble con Windows, y le han quitado mucho peso al runtime, así que ahora es más factible:
- Crear programas de consola, y por lo tanto, crear programas tipo Unix, para poder utilizar la potencia de los pipes.
- Llamar a la API de Windows. Uuuuups! ¿Y entonces cómo voy a hacer programas portables?
- Pero que tenga un GUI bonito, que se integre bien con cada plataforma: Controles de Windows en Windows, Controles Carbon en Mac, Controles GTK en Unix...
- Que no tengamos que programar y mantener todo un framework de gráficos para hacer esto. Es decir, que ya esté hecho.
- Que la librería de GUI no sea parte del runtime, no queremos obligar a todos los programas a ser gordos.
Tenemos algunas opciones:
- Hacer bindings de GTK, puesto que funciona en Unix, Windows y recientemente en Mac con el look & feel nativo. No me atrae mucho esta opción, pues GTK es un poco complicado. Por otro lado, hay que instalar todo un directorio con recursos, librerías, etc., así que el deploy de una aplicación con esto no sería tan trivial. Necesitamos algo que se adapte completamente a la sencillez requerida por Basic.
- Hacer bindings de TK..... cofff!!! cofff!!! Estemmm... ¿Alguien
tiene propuestas? Yo no lo conozco, pero los programas que he visto no
son bonitos. Sinceramente no me atrae.
- Hacer bindings de wxWidgets. Esta es la opción que más me atrae, pues se adapta perfectamente a cada plataforma, el deploy sería con un dll para wxWidgets y otro para los bindings. Además tiene prácticamente todo lo necesario para hacer aplicaciones complejas. Y no es tan complicado.
wxWidgets está hecho en C++, pero hay wrappers para C (se llaman wx-c) que podemos utilizar, pues ahí ya han quitado la parte OOP, se puede bajar de wxnet.sourceforge.net (wx-c es una parte de los bindings de wx para .net, solo utilizaríamos el dll que convierte C++ a C, la de .net no la usaríamos).
Teniendo de aliada a una librería de gráficos tan potente y portable, tendríamos un boost a XB bastante fuerte. Pienso que XBLite debería ser la base, puesto que ya han limpiado toda la parte gráfica. Como ejercicio, para probar los bindings, tendríamos que portar XSED (el IDE de XBLite) a la nueva librería. De este modo haríamos de XBLite un ambiente igual de fantástico como ya lo es, pero portable a todas las plataformas donde corra XB.
¿Ideas, propuestas, voluntarios?
Saludos
Gustavo Ramos