GNU Smalltalk
glpunzi | 31 Mayo, Sábado, 2008 | 12:15 pmCuando uno se lanza a desarrollar en Smalltalk, una de las primeras decisiones que debe tomar, es, que Smalltalk usar.
Existen distintas variedades de Smalltalk, pasando por implementaciones comerciales, gratuitas, y/u OpenSource. Yo hablaré de las opciones OpenSource, ya que las comerciales o gratuitas como VisualWorks, VisualSmalltalk, Smalltalk/X etc.. O no corren fuera de Windows y/o Linux, o sus licencias se escapan a mi presupuesto, o las dos cosas etc… Pero éso, no significa que no sean verdaderos monstruos del desarrollo, usados en la actualidad en Bancos, empresas de servicios financieros, y la lista podría continuar.
Bajo OpenSource, podríamos decir que tenemos tres opciones principales (ya que las demás, parece no estar demasiado activas ahora mismo.
- Squeak: Del que siempre he hablado y el que hizo que me enamorara de Smalltalk.
- GNU Smalltalk: Una opción con un futuro prometedor
- SYX: La implementación que se está desarrollando Luca Bruno, creador de SqueakGTK
Actualmente, Squeak, es estable, y usado en varios proyectos comerciales de gran envergadura. Es el que siempre he seguido y sigo más de cerca.
SYX, es en lo que anda trabajando Luca Bruno. Un smalltalk con soporte nativo para GTK, y que ya se ejecuta en plataformas como Windows Mobile.
GNU Smalltalk (GST a partir de ahora), actualmente mantenido por Paolo Bonzini, es del que hablaré en esta entrada.
Si no ves el logotipo, es porque tu navegador no lee archivos SVG.
La razón por la que GST ha atraido mi atención estos días, no la sé explicar. Quizás es por estar a medias, y sentirme útil. O quizás porque llevo 3 años ojeando Squeak, pero por falta de tiempo no hacer nada en él. Necesito algo nuevo. Aire fresco, y siempre me han atraido los proyectos raros.
Hasta ahora siempre había ojeado Squeak, ya que es quizás, la única implementación opensource estable (al menos que yo conozca) que funciona en los “tres grandes” (Windows, Linux y MacOS). Además, una de las principales ventajas de Smalltalk, es el concepto de imágen o entorno, como queráis llamarlo, donde todos los objetos conviven en memoria y las utilidades (Browsers, inspectores de código etc..), se encuentran a mano a golpe de click y que al grabar,y volver abrir, todo sigue igual, con todos los objetos corriendo como si hubiésemos hecho una foto.
En cambio, la filosofía de GST es funcionar principalmente como lenguaje de scripting, algo, que en principio, no tiene sentido en Smalltalk, ya que éste, más que un lenguaje de programación, hay que verlo como una plataforma con su entorno y demás donde desarrollar.
El tema, es que GST, también entiende el concepto de imágen. Podemos arrancarlo, cargar algunos paquetes, y hacer una “foto” de esos objetos en un archivo de imágen, que posteriormente podemos cargar. Sólamente, que hay ciertas utilidades que o están incompletas, o no existen todavía, como por ejemplo, una Interfaz para SUnit, o un Depurador y Browsers mejorados.
Por defecto, GST levanta un sistema con los objetos mínimos para que funcione, Object, Collections etc.. A partir de ahí, podemos cargar los objetos que necesitamos y luego guardar ese estado de memoria.
Seaside y Swazzo por ejemplo, ya funcionan sobre GST, y hay librerías de acceso para PostgreSQL, MySQL, SQLITE, bindings para OpenGL, Cairo, etc…
No es que GST sea mejor, o con mejores perspectivas que Squeak, ni mucho menos, GST, es simplemente una alternativa para aquellos, que quieren aprovecharse de la Orientación a Objetos de Smalltalk, sin tener que lidiar por narices con la imágen. O simplemente gente que quiere aprender a desarrollar máquinas virtuales o colaborar creando un entorno para GST. O quiera crear aplicaciones obre TCL/TK sin morir en el intento
Obviamente, en comparación con Squeak por ejemplo, le falta mucho camino. Squeak tiene una extensa librería de objetos y paquetes. Mientras que GST sólo tiene portados algunos, y le falta un depurador en condiciones, una interfaz para SUnit, un catálogo online estilo Universes o SqueakMap, y mucho trabajo por hacer. Aunque igualmente , existe una aplicación para portar código smalltalk a GST.
Que perfiles harían falta? Yo diría que por un lado, se necesita gente con experiencia en C que ayude a Paolo con la parte de la VM, mejorándola, creando código más portable, etc… Gente con experiencia en Smalltalk para ayudar a ampliar los paquetes disponibles y crear nuevas utilidades gráficas, y gente, con o sin experiencia para colaborar probando, reportando errores, traduciendo etc.. En definitiva, gente con ganas de colaborar en un proyecto interesante..sea usándolo o desarrollando desde sus entrañas la VM. Aunque no tengas experiencia, aprendiendo y sobre la marcha puedes colaborar de mil maneras.
Nos vemos por IRC (freenode.net) en #gnu-smalltalk, o en la lista de correo Help-Smalltalk
Entradas relacionados:






[...] raíz de mi anterior entrada, un tal Pablo se
GNU Smalltalk II | Il Messaggero non è importante | 2 Junio, Lunes, 2008 | 11:25 am[...] raíz de mi anterior entrada, un tal Pablo se puso en contacto conmigo, interesado en obtener más información sobre [...]
¿Y qué tal Smalltalk X? A mí me llama más
Alejandro | 6 Junio, Viernes, 2008 | 1:35 pm¿Y qué tal Smalltalk X? A mí me llama más la atención que el GNU Smalltalk (aunque tb lo sigo). ¿Tienes experiencia con él? En cuanto a manejo de ficheros, compilación nativa, etc.., me parece de lo más interesante.
Saludos.
Hola Alejandro, Smalltalk/X tiene muchísimas cosas buenas, pero, aunque es
glpunzi | 6 Junio, Viernes, 2008 | 5:36 pmHola Alejandro, Smalltalk/X tiene muchísimas cosas buenas, pero, aunque es gratuito, es propietario, y no hay versión para Mac.
Un saludo.