Smalltalk, JavaScript, NodeJs, C#, y Tutti Li Fiocci

Published on Author lopezLeave a comment

El año pasado tuve el gran placer de asistir a Smalltalks 2013, en la ciudad de Rosario, Argentina.  Asistir a esa conferencia fue una gran experiencia para mí, con charlas interesantes, implementaciones más interesantes y muchas ideas para digerir. Además de encontrarme con gente como @garduino, @morplenauta y @hernanwilkinson.

Dí una charla sobre cómo implementar Smalltalk en C# y en JavaScript. Los principales repositorios están en:

http://github.com/ajlopez/AjTalk (lo presenté por primera vez en Smalltalks 2010)
https://github.com/ajlopez/AjTalkJs (lo presenté en Smalltalks 2011)

Mi charla, grabada gracias a la organización:

http://www.youtube.com/watch?v=-KFjSneVE2s

[View:http://www.youtube.com/watch?v=-KFjSneVE2s]

La presentación:

https://github.com/ajlopez/Talks/tree/master/Smalltalks2013
http://ajlopez.github.io/Talks/Smalltalks2013/index.html
Mis otras charlas del año en http://ajlopez.github.io/Talks/

El primer proyecto, en C#, compila a bytecodes y los interpreta. También puede compilar a JavaScript, pero en los últimos meses conseguí que el proyecto de JavaScript no necesitara de este compilador. Pero quedó implementado un patrón Visitor que podría modificar para recorrer el árbol de expresiones y generar código para otros lenguajes, por ejemplo Python o Ruby. Lo bueno de la VM en C# es que puede acceder a tipos y objetos nativos de C#. Además hay actores, ejecución remota, ver mis posts.

El segundo proyecto es una implementación de Smalltalk en JavaScript. Internamente, tiene un compilador a JavaScript, pero también tiene un compilador a un arreglo de bytecodes, que luego puede interpretar. Ambos proyectos, el de C# y el de JavaScript, ahora soportan el consumo de módulos que se instalan usando NPM (el manejador de paquetes de Node.js).

En 2013, a AjTalkJs le agregué mucho mejor soporte de Node.js, con acceso a módulos, así que ahora puedo ejecutar aplicaciones Express desde Smalltalk:

 

Próximos experimentos: mensajes distribuidos. Esto es, un objecto en una máquina enviando un mensaje a un objeto en otra máquina/proceso, en una forma “fire and forget”. Pienso que el ecosistema de Node.js puede ser un buen lugar para estos experimentos. Mi trabajo en el tema en Distributed Applications with Node.js. Quiero ahora una aplicación Smalltalk distribuida. Quizás, si consigo que el protocolo de comunicación sea simple y enchufable, podría implementarlo en otras implementaciones de Smalltalk, o en otros lenguajes. Pero primero, “baby steps”  😉

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Leave a Reply

Your email address will not be published. Required fields are marked *