Smalltalk en Javascript Re: [squeakRos] Pharo 1.4

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Smalltalk en Javascript Re: [squeakRos] Pharo 1.4

Angel Java Lopez
Jajaja!

Si, tienen el repo
https://github.com/ajlopez/AjTalkJs
(ver examples)

Una simple demo (cuatro metodos locos, pero dos con interaccion nativa con
Javascript) en linea
http://ajlopez.github.com/AjTalkJs/demo.html#
tambien funciona desde el servidor, invocado desde Node.js

Pero esta verde todavia ;-)

Quiero ponerle compileMethod: a nivel de objeto. Asi un objeto puede tener
metodos propios. Pero vere si vale el trabajo.

Lo quiero extender para tener objetos Smalltalk distribuidos, sobre nodos
Node.js. No se si me atrevo a tener cliente Pharo... no soy programador
Smalltalk, yet. Seria lo que quiero presentar este anio en Smalltalks 2012
(si puedo abatir el efecto Coto
http://ajlopez.zoomblog.com/archivo/2008/10/17/el-Efecto-Coto.html
y acercarme a Puerto Madryn)

Oia, ahora que busco, no veo que este publicado la fecha de Smalltalks 2012
y no pude entrar a
http://www.fast.org.ar/

como es? que dia es? Quisiera saber ya para esta altura, si se superpone
con Ruby Conf AR, o con PyCon AR

Nos leemos!

Angel "Java" Lopez
http://ajlopez.wordpress.com
http://twitter.com/ajlopez


2012/6/28 Edgar J. De Cleene <[hidden email]>

> **
>
>
> > Individual Pharo Association Member: Yearly fee 40 Euros
> > Golden Individual Pharo Association Member: Yearly fee 99 Euros
>
> Es lo que veo
>
> Tambien veo que a 1.4 la bola que se le da no sirve si todos estan pensando
> (y trabajando como vos Guille y muchos mas) en 2.0 , que es casi
> incompatible...
>
> Y del otro lado (Squeak) , parecen estar contentos con la paz de los
> cementerios
>
> Menos mal que Angel nos va a convencer a todos que nos dediquemos a
> JavaScript :=)
>
> Edgar
>
>  
>
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk en Javascript Re: [squeakRos] Pharo 1.4

garduino
Hola Angel!

Apenas pueda le doy un vistazo, gracias por compartirlo.

Con respecto a Puerto Madryn, es en Noviembre, preguntales a los
organizadores, pero quizás te ayuden con el viaje.....vos sos un tipo
"célebre" y se que ayudan cuando pueden.....

SAludos!


El 28 de junio de 2012 12:41, Angel Java Lopez <[hidden email]>escribió:

> **
>
>
> Jajaja!
>
> Si, tienen el repo
> https://github.com/ajlopez/AjTalkJs
> (ver examples)
>
> Una simple demo (cuatro metodos locos, pero dos con interaccion nativa con
> Javascript) en linea
> http://ajlopez.github.com/AjTalkJs/demo.html#
> tambien funciona desde el servidor, invocado desde Node.js
>
> Pero esta verde todavia ;-)
>
> Quiero ponerle compileMethod: a nivel de objeto. Asi un objeto puede tener
> metodos propios. Pero vere si vale el trabajo.
>
> Lo quiero extender para tener objetos Smalltalk distribuidos, sobre nodos
> Node.js. No se si me atrevo a tener cliente Pharo... no soy programador
> Smalltalk, yet. Seria lo que quiero presentar este anio en Smalltalks 2012
> (si puedo abatir el efecto Coto
> http://ajlopez.zoomblog.com/archivo/2008/10/17/el-Efecto-Coto.html
> y acercarme a Puerto Madryn)
>
> Oia, ahora que busco, no veo que este publicado la fecha de Smalltalks 2012
> y no pude entrar a
> http://www.fast.org.ar/
>
> como es? que dia es? Quisiera saber ya para esta altura, si se superpone
> con Ruby Conf AR, o con PyCon AR
>
> Nos leemos!
>
> Angel "Java" Lopez
> http://ajlopez.wordpress.com
> http://twitter.com/ajlopez
>
>
> 2012/6/28 Edgar J. De Cleene <[hidden email]>
>
>> **
>>
>>
>> > Individual Pharo Association Member: Yearly fee 40 Euros
>> > Golden Individual Pharo Association Member: Yearly fee 99 Euros
>>
>> Es lo que veo
>>
>> Tambien veo que a 1.4 la bola que se le da no sirve si todos estan
>> pensando
>> (y trabajando como vos Guille y muchos mas) en 2.0 , que es casi
>> incompatible...
>>
>> Y del otro lado (Squeak) , parecen estar contentos con la paz de los
>> cementerios
>>
>> Menos mal que Angel nos va a convencer a todos que nos dediquemos a
>> JavaScript :=)
>>
>> Edgar
>>
>>
>  
>
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk en Javascript Re: [squeakRos] Pharo 1.4

Alexandre Bergel-5
In reply to this post by Angel Java Lopez
Hola Angel,

No he mirado los detailes, pero cual es la differencia con Amber?

Saludos,
Alexandre


On Jun 28, 2012, at 11:41 AM, Angel Java Lopez wrote:

> Jajaja!
>
>
> Si, tienen el repo
> https://github.com/ajlopez/AjTalkJs 
> (ver examples)
>
> Una simple demo (cuatro metodos locos, pero dos con interaccion nativa con Javascript) en linea
> http://ajlopez.github.com/AjTalkJs/demo.html# 
> tambien funciona desde el servidor, invocado desde Node.js
>
> Pero esta verde todavia ;-)
>
> Quiero ponerle compileMethod: a nivel de objeto. Asi un objeto puede tener metodos propios. Pero vere si vale el trabajo.
>
> Lo quiero extender para tener objetos Smalltalk distribuidos, sobre nodos Node.js. No se si me atrevo a tener cliente Pharo... no soy programador Smalltalk, yet. Seria lo que quiero presentar este anio en Smalltalks 2012 (si puedo abatir el efecto Coto
> http://ajlopez.zoomblog.com/archivo/2008/10/17/el-Efecto-Coto.html
> y acercarme a Puerto Madryn)
>
> Oia, ahora que busco, no veo que este publicado la fecha de Smalltalks 2012
> y no pude entrar a
> http://www.fast.org.ar/ 
>
> como es? que dia es? Quisiera saber ya para esta altura, si se superpone con Ruby Conf AR, o con PyCon AR
>
> Nos leemos!
>
> Angel "Java" Lopez
> http://ajlopez.wordpress.com
> http://twitter.com/ajlopez
>
>
> 2012/6/28 Edgar J. De Cleene <[hidden email]>
>  
> > Individual Pharo Association Member: Yearly fee 40 Euros
> > Golden Individual Pharo Association Member: Yearly fee 99 Euros
>
> Es lo que veo
>
> Tambien veo que a 1.4 la bola que se le da no sirve si todos estan pensando
> (y trabajando como vos Guille y muchos mas) en 2.0 , que es casi
> incompatible...
>
> Y del otro lado (Squeak) , parecen estar contentos con la paz de los
> cementerios
>
> Menos mal que Angel nos va a convencer a todos que nos dediquemos a
> JavaScript :=)
>
> Edgar
>
>
>
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





------------------------------------


correo electrónico a: [hidden email]


correo electrónico a: [hidden email]

Enlaces a Yahoo! Grupos

<*> Para visitar tu grupo en la web, ve a:
    http://ar.groups.yahoo.com/group/squeakRos/

<*> La configuración de tu correo:
    Mensajes individuales  | Tradicional

<*> Para modificar la configuración desde la Web, visita:
    http://ar.groups.yahoo.com/group/squeakRos/join
    (ID de Yahoo! obligatoria)

<*> Para modificar la configuración mediante el correo:
    [hidden email]
    [hidden email]

<*> Para cancelar tu suscripción en este grupo, envía
    un mensaje en blanco a:
    [hidden email]

<*> El uso que hagas de Yahoo! Grupos está sujeto a
    las Condiciones del servicio de Yahoo!:
    http://ar.docs.yahoo.com/info/utos.html

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk en Javascript Re: [squeakRos] Pharo 1.4

Angel Java Lopez
Gracias Alexander, por el interes en este proyecto!

Ah! Bien, no se mucho de Amber ... pero lo vi para presentarlo en
Smalltalks 2011, como implementacion adicional de Smalltalk en Javascript.
Amber esta MUCHISISISIMO mas terminado.

Primero, lo hice para entrenarme en escribir una VM/Interpreter, cosa que
no podria hacer com Amber, donde ya casi todo estaba hecho.

Segundo, nacio de AjTalk, que es una VM en C#, que tiene un AST en memoria
y visitors que lo transforman en algo ejecutable (presentada en Smalltalks
2010, solo C#). El primer caso: transformar ese AST en Javascript, asi fue
naciendo AjTalkJs. Pendiente: transformarlo a Ruby o Python, como prueba de
concepto. Es decir, AjTalk (en C#) leia un .st y genera un .js, si quiero.
Es lo que presente en Smalltalks 2011 (ahora Javascript).

Tercero, nacio AjTalkJs por su cuenta, es decir, sin depender de AjTalk en
C#. Esto fue DESPUES de Smalltalks 2011. Y aca aparecio algo, que no vi
tanto en Amber: soporte desde el comienzo de Node.js (la ultima vez que me
fije, Amber apenas tenia un sample de Node.js). El codigo de AjTalkJs hasta
ahora, funciona en el servidor Node.js y en el browser. Solo cambia las
variables globales: en el browser tengo disponible document, etc, y en
Node.js tengo otro global. Pero el .js a usar es el mismo.

Una diferencia con Amber, que no se si voy a mantener: AjTalkJs, cuando
hace compileMethod:,  compila un metodo a bytecodes, y luego un interprete
de bytecodes en Javascript va, los lee y los ejecuta. En Amber, se compila
a Javascript.

Ahora, para confundirlos un poco mas :-) AjTalk (C#), lee .st y produce .js
(mas a la Amber, sin bytecodes) y AjTalkJs todavia sobrevive y ejecuta esos
.js.

A ver si puedo ser algo mas claro. En Smalltalks 2011, la version que
presente, hacia

myobj foo: 'bar'

algo como

send(myobj, 'foo:', ['bar']);

es decir, habia un metodo global que enviaba a un objecto un selector y un
arreglo de argumentos.

Ahora, tengo algo como

myobj.foo_('bar');

El .foo_ puede ser tanto una funcion Javascript que es la traduccion de su
codigo Smalltalk a Javascript, O PUEDE SER, una funcion Javascript que
tiene adendro una serie de bytecodes y va y los ejecuta.

No los quiero aburrir, pero un tema a resolver (que estaba resuelto con el
send(..) de arriba) es el :doesNotUnderstand. No puedo poner tan facil en
Javascript

myobj.foooo_('bar')

y capturar que .foooo_ no exista (ya va a venir eso, en Ecmascript 6 creo)

Todo esto lo hago para poder experimentar estos distintos approaches, sin
tener a un Amber ya estructurado, todo armado, etc.

Le tengo mucha esperanza a que ejecute tranquilamente en Node.js (como
escribir arriba, me parece que Amber no tiene mucho de interes en eso). Y
tambien es la idea que se pueda desarrollar en Pharo, en lo que quiera,
exportan con un fileOut, y lo levantan en Node.js. No es mi idea embarcarme
en un entorno de desarrollo: mas bien prefiero que sigan usando los
entornos de siempre, y con un poco de cuidado, el fileOut de lo que hagan
se pueda ejecutar en Node.js o en el browser si lo necesitan.

Bueno, no se si se entendio, pero cualquier cosa, preguntan

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez


2012/6/29 Alexandre Bergel <[hidden email]>

> Hola Angel,
>
> No he mirado los detailes, pero cual es la differencia con Amber?
>
> Saludos,
> Alexandre
>
>
> On Jun 28, 2012, at 11:41 AM, Angel Java Lopez wrote:
>
> > Jajaja!
> >
> >
> > Si, tienen el repo
> > https://github.com/ajlopez/AjTalkJs
> > (ver examples)
> >
> > Una simple demo (cuatro metodos locos, pero dos con interaccion nativa
> con Javascript) en linea
> > http://ajlopez.github.com/AjTalkJs/demo.html#
> > tambien funciona desde el servidor, invocado desde Node.js
> >
> > Pero esta verde todavia ;-)
> >
> > Quiero ponerle compileMethod: a nivel de objeto. Asi un objeto puede
> tener metodos propios. Pero vere si vale el trabajo.
> >
> > Lo quiero extender para tener objetos Smalltalk distribuidos, sobre
> nodos Node.js. No se si me atrevo a tener cliente Pharo... no soy
> programador Smalltalk, yet. Seria lo que quiero presentar este anio en
> Smalltalks 2012 (si puedo abatir el efecto Coto
> > http://ajlopez.zoomblog.com/archivo/2008/10/17/el-Efecto-Coto.html
> > y acercarme a Puerto Madryn)
> >
> > Oia, ahora que busco, no veo que este publicado la fecha de Smalltalks
> 2012
> > y no pude entrar a
> > http://www.fast.org.ar/
> >
> > como es? que dia es? Quisiera saber ya para esta altura, si se superpone
> con Ruby Conf AR, o con PyCon AR
> >
> > Nos leemos!
> >
> > Angel "Java" Lopez
> > http://ajlopez.wordpress.com
> > http://twitter.com/ajlopez
> >
> >
> > 2012/6/28 Edgar J. De Cleene <[hidden email]>
> >
> > > Individual Pharo Association Member: Yearly fee 40 Euros
> > > Golden Individual Pharo Association Member: Yearly fee 99 Euros
> >
> > Es lo que veo
> >
> > Tambien veo que a 1.4 la bola que se le da no sirve si todos estan
> pensando
> > (y trabajando como vos Guille y muchos mas) en 2.0 , que es casi
> > incompatible...
> >
> > Y del otro lado (Squeak) , parecen estar contentos con la paz de los
> > cementerios
> >
> > Menos mal que Angel nos va a convencer a todos que nos dediquemos a
> > JavaScript :=)
> >
> > Edgar
> >
> >
> >
> >
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
> ------------------------------------
>
>
> correo electrónico a: [hidden email]
>
>
> correo electrónico a: [hidden email]
>
> Enlaces a Yahoo! Grupos
>
>
>
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk en Javascript Re: [squeakRos] Pharo 1.4

Angel Java Lopez
Uy, perdon, Alexandre, no Alexander ;-)

2012/6/29 Angel Java Lopez <[hidden email]>

> Gracias Alexander, por el interes en este proyecto!
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk en Javascript Re: [squeakRos] Pharo 1.4

Ignacio Vivona-2
In reply to this post by Angel Java Lopez
Hola Angel!

Hace un tiempo habia visto http://silversmalltalk.wordpress.com/ que empezo
como un smalltalk interpretado en js y despues paso a ser compilado a js a
la amber. Me suena a lo que estas haciendo vos.

No se como lo resolvera amber, pero me suena que lo del doesNotUnderstand
se puede hacer asi:

(myobj['foo:'] || myobj.doesNotUnderstand).call(myobj, 'bar')

Saludos,
Ignacio

2012/6/29 Angel Java Lopez <[hidden email]>

> **
>
>
> Gracias Alexander, por el interes en este proyecto!
>
> Ah! Bien, no se mucho de Amber ... pero lo vi para presentarlo en
> Smalltalks 2011, como implementacion adicional de Smalltalk en Javascript.
> Amber esta MUCHISISISIMO mas terminado.
>
> Primero, lo hice para entrenarme en escribir una VM/Interpreter, cosa que
> no podria hacer com Amber, donde ya casi todo estaba hecho.
>
> Segundo, nacio de AjTalk, que es una VM en C#, que tiene un AST en memoria
> y visitors que lo transforman en algo ejecutable (presentada en Smalltalks
> 2010, solo C#). El primer caso: transformar ese AST en Javascript, asi fue
> naciendo AjTalkJs. Pendiente: transformarlo a Ruby o Python, como prueba de
> concepto. Es decir, AjTalk (en C#) leia un .st y genera un .js, si quiero.
> Es lo que presente en Smalltalks 2011 (ahora Javascript).
>
> Tercero, nacio AjTalkJs por su cuenta, es decir, sin depender de AjTalk en
> C#. Esto fue DESPUES de Smalltalks 2011. Y aca aparecio algo, que no vi
> tanto en Amber: soporte desde el comienzo de Node.js (la ultima vez que me
> fije, Amber apenas tenia un sample de Node.js). El codigo de AjTalkJs hasta
> ahora, funciona en el servidor Node.js y en el browser. Solo cambia las
> variables globales: en el browser tengo disponible document, etc, y en
> Node.js tengo otro global. Pero el .js a usar es el mismo.
>
> Una diferencia con Amber, que no se si voy a mantener: AjTalkJs, cuando
> hace compileMethod:,  compila un metodo a bytecodes, y luego un interprete
> de bytecodes en Javascript va, los lee y los ejecuta. En Amber, se compila
> a Javascript.
>
> Ahora, para confundirlos un poco mas :-) AjTalk (C#), lee .st y produce
> .js (mas a la Amber, sin bytecodes) y AjTalkJs todavia sobrevive y ejecuta
> esos .js.
>
> A ver si puedo ser algo mas claro. En Smalltalks 2011, la version que
> presente, hacia
>
> myobj foo: 'bar'
>
> algo como
>
> send(myobj, 'foo:', ['bar']);
>
> es decir, habia un metodo global que enviaba a un objecto un selector y un
> arreglo de argumentos.
>
> Ahora, tengo algo como
>
> myobj.foo_('bar');
>
> El .foo_ puede ser tanto una funcion Javascript que es la traduccion de su
> codigo Smalltalk a Javascript, O PUEDE SER, una funcion Javascript que
> tiene adendro una serie de bytecodes y va y los ejecuta.
>
> No los quiero aburrir, pero un tema a resolver (que estaba resuelto con el
> send(..) de arriba) es el :doesNotUnderstand. No puedo poner tan facil en
> Javascript
>
> myobj.foooo_('bar')
>
> y capturar que .foooo_ no exista (ya va a venir eso, en Ecmascript 6 creo)
>
> Todo esto lo hago para poder experimentar estos distintos approaches, sin
> tener a un Amber ya estructurado, todo armado, etc.
>
> Le tengo mucha esperanza a que ejecute tranquilamente en Node.js (como
> escribir arriba, me parece que Amber no tiene mucho de interes en eso). Y
> tambien es la idea que se pueda desarrollar en Pharo, en lo que quiera,
> exportan con un fileOut, y lo levantan en Node.js. No es mi idea embarcarme
> en un entorno de desarrollo: mas bien prefiero que sigan usando los
> entornos de siempre, y con un poco de cuidado, el fileOut de lo que hagan
> se pueda ejecutar en Node.js o en el browser si lo necesitan.
>
> Bueno, no se si se entendio, pero cualquier cosa, preguntan
>
> Nos leemos!
>
> Angel "Java" Lopez
> http://www.ajlopez.com
> http://twitter.com/ajlopez
>
>
> 2012/6/29 Alexandre Bergel <[hidden email]>
>
>> Hola Angel,
>>
>> No he mirado los detailes, pero cual es la differencia con Amber?
>>
>> Saludos,
>> Alexandre
>>
>>
>> On Jun 28, 2012, at 11:41 AM, Angel Java Lopez wrote:
>>
>> > Jajaja!
>> >
>> >
>> > Si, tienen el repo
>> > https://github.com/ajlopez/AjTalkJs
>> > (ver examples)
>> >
>> > Una simple demo (cuatro metodos locos, pero dos con interaccion nativa
>> con Javascript) en linea
>> > http://ajlopez.github.com/AjTalkJs/demo.html#
>> > tambien funciona desde el servidor, invocado desde Node.js
>> >
>> > Pero esta verde todavia ;-)
>> >
>> > Quiero ponerle compileMethod: a nivel de objeto. Asi un objeto puede
>> tener metodos propios. Pero vere si vale el trabajo.
>> >
>> > Lo quiero extender para tener objetos Smalltalk distribuidos, sobre
>> nodos Node.js. No se si me atrevo a tener cliente Pharo... no soy
>> programador Smalltalk, yet. Seria lo que quiero presentar este anio en
>> Smalltalks 2012 (si puedo abatir el efecto Coto
>> > http://ajlopez.zoomblog.com/archivo/2008/10/17/el-Efecto-Coto.html
>> > y acercarme a Puerto Madryn)
>> >
>> > Oia, ahora que busco, no veo que este publicado la fecha de Smalltalks
>> 2012
>> > y no pude entrar a
>> > http://www.fast.org.ar/
>> >
>> > como es? que dia es? Quisiera saber ya para esta altura, si se
>> superpone con Ruby Conf AR, o con PyCon AR
>> >
>> > Nos leemos!
>> >
>> > Angel "Java" Lopez
>> > http://ajlopez.wordpress.com
>> > http://twitter.com/ajlopez
>> >
>> >
>> > 2012/6/28 Edgar J. De Cleene <[hidden email]>
>> >
>> > > Individual Pharo Association Member: Yearly fee 40 Euros
>> > > Golden Individual Pharo Association Member: Yearly fee 99 Euros
>> >
>> > Es lo que veo
>> >
>> > Tambien veo que a 1.4 la bola que se le da no sirve si todos estan
>> pensando
>> > (y trabajando como vos Guille y muchos mas) en 2.0 , que es casi
>> > incompatible...
>> >
>> > Y del otro lado (Squeak) , parecen estar contentos con la paz de los
>> > cementerios
>> >
>> > Menos mal que Angel nos va a convencer a todos que nos dediquemos a
>> > JavaScript :=)
>> >
>> > Edgar
>> >
>> >
>> >
>> >
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>> ------------------------------------
>>
>>
>> correo electrónico a: [hidden email]
>>
>>
>> correo electrónico a: [hidden email]
>>
>> Enlaces a Yahoo! Grupos
>>
>>
>>
>>
>>
>>
>  
>
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk en Javascript Re: [squeakRos] Pharo 1.4

Angel Java Lopez
Gracias Ignacio! No se me habia ocurrido poner ||

Bien, si, habia visto SilverSmalltalk, y antes, del mismo autor, hace
anios, el Vista Smalltalk. Cuando vi Vista Smalltalk (que usaba Silverlight
que recuerde, pero no vi que hubiera codigo publicado) vi que era posible
reaprovechar un plataforma de abajo para construir un Smalltalk Visual. Eso
me dio el pie para implementarlo en C#, pero no con la idea de visual, sino
mas bien para ir explorando algunas cosas, como por ejemplo, objetos
remotos, software transactional memory, etc.

Luego, en 2010 vi lo del Silver. Creo que al principio era Java puro, y
usaba GWT. Luego, en algun momento, por lo que entendi, vi que paso a
Javascript puro leyendo bytecodes que generaba en el servidor o en Java, no
estoy seguro. De ahi nacio lo que presente en 2011: usar una implementacion
(C#) para compilar en otra (Javascript, pero compilado a la Amber). Ahora,
este anio, vuelvo a explorar lo de Silver: generar bytecodes.

Veremos que resulta.

Pero me diviegto como loco ;-)

Presente el concepto de Smalltalk en Javascript (y tambien Clojure y Logo
en Javascript) en la JS Conf de Argentina. Mis enlaces:
http://ajlopez.wordpress.com/2012/05/20/implementing-programming-languages-in-javascript-jsconf-argentina/

Ahi mostre rapidamente lo mio, y tambien Amber, mas terminado, y mencione a
S8/U8 pero no pude mostrarlo porque no habia buena conexion en la sala.

Ah! Ahi me acorde el nombre del autor de Silver, Fisk. Mi investigacion
inicial del anio pasado en:
http://ajlopez.wordpress.com/2011/09/22/smalltalk-and-javascript/ con
varios enlaces gracias al bueno de @garduino

Sobre doesNotUnderstand
http://stackoverflow.com/questions/2266789/is-there-an-equivalent-of-the-nosuchmethod-feature-for-properties-or-a-way
http://stackoverflow.com/questions/2266789/is-there-an-equivalent-of-the-nosuchmethod-feature-for-properties-or-a-way

Nos leemos!

2012/6/29 Ignacio Vivona <[hidden email]>

> **
>
>
> Hola Angel!
>
> Hace un tiempo habia visto http://silversmalltalk.wordpress.com/ que
> empezo como un smalltalk interpretado en js y despues paso a ser compilado
> a js a la amber. Me suena a lo que estas haciendo vos.
>
> No se como lo resolvera amber, pero me suena que lo del doesNotUnderstand
> se puede hacer asi:
>
> (myobj['foo:'] || myobj.doesNotUnderstand).call(myobj, 'bar')
>
> Saludos,
> Ignacio
>
> 2012/6/29 Angel Java Lopez <[hidden email]>
>
>> **
>>
>>
>> Gracias Alexander, por el interes en este proyecto!
>>
>> Ah! Bien, no se mucho de Amber ... pero lo vi para presentarlo en
>> Smalltalks 2011, como implementacion adicional de Smalltalk en Javascript.
>> Amber esta MUCHISISISIMO mas terminado.
>>
>> Primero, lo hice para entrenarme en escribir una VM/Interpreter, cosa que
>> no podria hacer com Amber, donde ya casi todo estaba hecho.
>>
>> Segundo, nacio de AjTalk, que es una VM en C#, que tiene un AST en
>> memoria y visitors que lo transforman en algo ejecutable (presentada en
>> Smalltalks 2010, solo C#). El primer caso: transformar ese AST en
>> Javascript, asi fue naciendo AjTalkJs. Pendiente: transformarlo a Ruby o
>> Python, como prueba de concepto. Es decir, AjTalk (en C#) leia un .st y
>> genera un .js, si quiero. Es lo que presente en Smalltalks 2011 (ahora
>> Javascript).
>>
>> Tercero, nacio AjTalkJs por su cuenta, es decir, sin depender de AjTalk
>> en C#. Esto fue DESPUES de Smalltalks 2011. Y aca aparecio algo, que no vi
>> tanto en Amber: soporte desde el comienzo de Node.js (la ultima vez que me
>> fije, Amber apenas tenia un sample de Node.js). El codigo de AjTalkJs hasta
>> ahora, funciona en el servidor Node.js y en el browser. Solo cambia las
>> variables globales: en el browser tengo disponible document, etc, y en
>> Node.js tengo otro global. Pero el .js a usar es el mismo.
>>
>> Una diferencia con Amber, que no se si voy a mantener: AjTalkJs, cuando
>> hace compileMethod:,  compila un metodo a bytecodes, y luego un interprete
>> de bytecodes en Javascript va, los lee y los ejecuta. En Amber, se compila
>> a Javascript.
>>
>> Ahora, para confundirlos un poco mas :-) AjTalk (C#), lee .st y produce
>> .js (mas a la Amber, sin bytecodes) y AjTalkJs todavia sobrevive y ejecuta
>> esos .js.
>>
>> A ver si puedo ser algo mas claro. En Smalltalks 2011, la version que
>> presente, hacia
>>
>> myobj foo: 'bar'
>>
>> algo como
>>
>> send(myobj, 'foo:', ['bar']);
>>
>> es decir, habia un metodo global que enviaba a un objecto un selector y
>> un arreglo de argumentos.
>>
>> Ahora, tengo algo como
>>
>> myobj.foo_('bar');
>>
>> El .foo_ puede ser tanto una funcion Javascript que es la traduccion de
>> su codigo Smalltalk a Javascript, O PUEDE SER, una funcion Javascript que
>> tiene adendro una serie de bytecodes y va y los ejecuta.
>>
>> No los quiero aburrir, pero un tema a resolver (que estaba resuelto con
>> el send(..) de arriba) es el :doesNotUnderstand. No puedo poner tan facil
>> en Javascript
>>
>> myobj.foooo_('bar')
>>
>> y capturar que .foooo_ no exista (ya va a venir eso, en Ecmascript 6 creo)
>>
>> Todo esto lo hago para poder experimentar estos distintos approaches, sin
>> tener a un Amber ya estructurado, todo armado, etc.
>>
>> Le tengo mucha esperanza a que ejecute tranquilamente en Node.js (como
>> escribir arriba, me parece que Amber no tiene mucho de interes en eso). Y
>> tambien es la idea que se pueda desarrollar en Pharo, en lo que quiera,
>> exportan con un fileOut, y lo levantan en Node.js. No es mi idea embarcarme
>> en un entorno de desarrollo: mas bien prefiero que sigan usando los
>> entornos de siempre, y con un poco de cuidado, el fileOut de lo que hagan
>> se pueda ejecutar en Node.js o en el browser si lo necesitan.
>>
>> Bueno, no se si se entendio, pero cualquier cosa, preguntan
>>
>> Nos leemos!
>>
>> Angel "Java" Lopez
>> http://www.ajlopez.com
>> http://twitter.com/ajlopez
>>
>>
>> 2012/6/29 Alexandre Bergel <[hidden email]>
>>
>>> Hola Angel,
>>>
>>> No he mirado los detailes, pero cual es la differencia con Amber?
>>>
>>> Saludos,
>>> Alexandre
>>>
>>>
>>> On Jun 28, 2012, at 11:41 AM, Angel Java Lopez wrote:
>>>
>>> > Jajaja!
>>> >
>>> >
>>> > Si, tienen el repo
>>> > https://github.com/ajlopez/AjTalkJs
>>> > (ver examples)
>>> >
>>> > Una simple demo (cuatro metodos locos, pero dos con interaccion nativa
>>> con Javascript) en linea
>>> > http://ajlopez.github.com/AjTalkJs/demo.html#
>>> > tambien funciona desde el servidor, invocado desde Node.js
>>> >
>>> > Pero esta verde todavia ;-)
>>> >
>>> > Quiero ponerle compileMethod: a nivel de objeto. Asi un objeto puede
>>> tener metodos propios. Pero vere si vale el trabajo.
>>> >
>>> > Lo quiero extender para tener objetos Smalltalk distribuidos, sobre
>>> nodos Node.js. No se si me atrevo a tener cliente Pharo... no soy
>>> programador Smalltalk, yet. Seria lo que quiero presentar este anio en
>>> Smalltalks 2012 (si puedo abatir el efecto Coto
>>> > http://ajlopez.zoomblog.com/archivo/2008/10/17/el-Efecto-Coto.html
>>> > y acercarme a Puerto Madryn)
>>> >
>>> > Oia, ahora que busco, no veo que este publicado la fecha de Smalltalks
>>> 2012
>>> > y no pude entrar a
>>> > http://www.fast.org.ar/
>>> >
>>> > como es? que dia es? Quisiera saber ya para esta altura, si se
>>> superpone con Ruby Conf AR, o con PyCon AR
>>> >
>>> > Nos leemos!
>>> >
>>> > Angel "Java" Lopez
>>> > http://ajlopez.wordpress.com
>>> > http://twitter.com/ajlopez
>>> >
>>> >
>>> > 2012/6/28 Edgar J. De Cleene <[hidden email]>
>>> >
>>> > > Individual Pharo Association Member: Yearly fee 40 Euros
>>> > > Golden Individual Pharo Association Member: Yearly fee 99 Euros
>>> >
>>> > Es lo que veo
>>> >
>>> > Tambien veo que a 1.4 la bola que se le da no sirve si todos estan
>>> pensando
>>> > (y trabajando como vos Guille y muchos mas) en 2.0 , que es casi
>>> > incompatible...
>>> >
>>> > Y del otro lado (Squeak) , parecen estar contentos con la paz de los
>>> > cementerios
>>> >
>>> > Menos mal que Angel nos va a convencer a todos que nos dediquemos a
>>> > JavaScript :=)
>>> >
>>> > Edgar
>>> >
>>> >
>>> >
>>> >
>>>
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>>
>>>
>>> ------------------------------------
>>>
>>>
>>> correo electrónico a: [hidden email]
>>>
>>>
>>> correo electrónico a: [hidden email]
>>>
>>> Enlaces a Yahoo! Grupos
>>>
>>>
>>>
>>>
>>>
>>>
>>
>  
>
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk en Javascript Re: [squeakRos] Pharo 1.4

Alexandre Bergel-5
In reply to this post by Angel Java Lopez
Ok, gracias,

Alexandre


On Jun 29, 2012, at 1:17 PM, Angel Java Lopez wrote:

>
> Gracias Alexander, por el interes en este proyecto!
>
> Ah! Bien, no se mucho de Amber ... pero lo vi para presentarlo en Smalltalks 2011, como implementacion adicional de Smalltalk en Javascript. Amber esta MUCHISISISIMO mas terminado.
>
> Primero, lo hice para entrenarme en escribir una VM/Interpreter, cosa que no podria hacer com Amber, donde ya casi todo estaba hecho.
>
> Segundo, nacio de AjTalk, que es una VM en C#, que tiene un AST en memoria y visitors que lo transforman en algo ejecutable (presentada en Smalltalks 2010, solo C#). El primer caso: transformar ese AST en Javascript, asi fue naciendo AjTalkJs. Pendiente: transformarlo a Ruby o Python, como prueba de concepto. Es decir, AjTalk (en C#) leia un .st y genera un .js, si quiero. Es lo que presente en Smalltalks 2011 (ahora Javascript).
>
> Tercero, nacio AjTalkJs por su cuenta, es decir, sin depender de AjTalk en C#. Esto fue DESPUES de Smalltalks 2011. Y aca aparecio algo, que no vi tanto en Amber: soporte desde el comienzo de Node.js (la ultima vez que me fije, Amber apenas tenia un sample de Node.js). El codigo de AjTalkJs hasta ahora, funciona en el servidor Node.js y en el browser. Solo cambia las variables globales: en el browser tengo disponible document, etc, y en Node.js tengo otro global. Pero el .js a usar es el mismo.
>
> Una diferencia con Amber, que no se si voy a mantener: AjTalkJs, cuando hace compileMethod:,  compila un metodo a bytecodes, y luego un interprete de bytecodes en Javascript va, los lee y los ejecuta. En Amber, se compila a Javascript.
>
> Ahora, para confundirlos un poco mas :-) AjTalk (C#), lee .st y produce .js (mas a la Amber, sin bytecodes) y AjTalkJs todavia sobrevive y ejecuta esos .js.
>
> A ver si puedo ser algo mas claro. En Smalltalks 2011, la version que presente, hacia
>
> myobj foo: 'bar'
>
> algo como
>
> send(myobj, 'foo:', ['bar']);
>
> es decir, habia un metodo global que enviaba a un objecto un selector y un arreglo de argumentos.
>
> Ahora, tengo algo como
>
> myobj.foo_('bar');
>
> El .foo_ puede ser tanto una funcion Javascript que es la traduccion de su codigo Smalltalk a Javascript, O PUEDE SER, una funcion Javascript que tiene adendro una serie de bytecodes y va y los ejecuta.
>
> No los quiero aburrir, pero un tema a resolver (que estaba resuelto con el send(..) de arriba) es el :doesNotUnderstand. No puedo poner tan facil en Javascript
>
> myobj.foooo_('bar')
>
> y capturar que .foooo_ no exista (ya va a venir eso, en Ecmascript 6 creo)
>
> Todo esto lo hago para poder experimentar estos distintos approaches, sin tener a un Amber ya estructurado, todo armado, etc.
>
> Le tengo mucha esperanza a que ejecute tranquilamente en Node.js (como escribir arriba, me parece que Amber no tiene mucho de interes en eso). Y tambien es la idea que se pueda desarrollar en Pharo, en lo que quiera, exportan con un fileOut, y lo levantan en Node.js. No es mi idea embarcarme en un entorno de desarrollo: mas bien prefiero que sigan usando los entornos de siempre, y con un poco de cuidado, el fileOut de lo que hagan se pueda ejecutar en Node.js o en el browser si lo necesitan.
>
> Bueno, no se si se entendio, pero cualquier cosa, preguntan
>
> Nos leemos!
>
> Angel "Java" Lopez
> http://www.ajlopez.com
> http://twitter.com/ajlopez
>
>
> 2012/6/29 Alexandre Bergel <[hidden email]>
> Hola Angel,
>
> No he mirado los detailes, pero cual es la differencia con Amber?
>
> Saludos,
> Alexandre
>
>
> On Jun 28, 2012, at 11:41 AM, Angel Java Lopez wrote:
>
> > Jajaja!
> >
> >
> > Si, tienen el repo
> > https://github.com/ajlopez/AjTalkJs
> > (ver examples)
> >
> > Una simple demo (cuatro metodos locos, pero dos con interaccion nativa con Javascript) en linea
> > http://ajlopez.github.com/AjTalkJs/demo.html#
> > tambien funciona desde el servidor, invocado desde Node.js
> >
> > Pero esta verde todavia ;-)
> >
> > Quiero ponerle compileMethod: a nivel de objeto. Asi un objeto puede tener metodos propios. Pero vere si vale el trabajo.
> >
> > Lo quiero extender para tener objetos Smalltalk distribuidos, sobre nodos Node.js. No se si me atrevo a tener cliente Pharo... no soy programador Smalltalk, yet. Seria lo que quiero presentar este anio en Smalltalks 2012 (si puedo abatir el efecto Coto
> > http://ajlopez.zoomblog.com/archivo/2008/10/17/el-Efecto-Coto.html
> > y acercarme a Puerto Madryn)
> >
> > Oia, ahora que busco, no veo que este publicado la fecha de Smalltalks 2012
> > y no pude entrar a
> > http://www.fast.org.ar/
> >
> > como es? que dia es? Quisiera saber ya para esta altura, si se superpone con Ruby Conf AR, o con PyCon AR
> >
> > Nos leemos!
> >
> > Angel "Java" Lopez
> > http://ajlopez.wordpress.com
> > http://twitter.com/ajlopez
> >
> >
> > 2012/6/28 Edgar J. De Cleene <[hidden email]>
> >
> > > Individual Pharo Association Member: Yearly fee 40 Euros
> > > Golden Individual Pharo Association Member: Yearly fee 99 Euros
> >
> > Es lo que veo
> >
> > Tambien veo que a 1.4 la bola que se le da no sirve si todos estan pensando
> > (y trabajando como vos Guille y muchos mas) en 2.0 , que es casi
> > incompatible...
> >
> > Y del otro lado (Squeak) , parecen estar contentos con la paz de los
> > cementerios
> >
> > Menos mal que Angel nos va a convencer a todos que nos dediquemos a
> > JavaScript :=)
> >
> > Edgar
> >
> >
> >
> >
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
> ------------------------------------
>
>
> correo electrónico a: [hidden email]
>
>
> correo electrónico a: [hidden email]
>
> Enlaces a Yahoo! Grupos
>
>
>
>
>
>
>
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





------------------------------------


correo electrónico a: [hidden email]


correo electrónico a: [hidden email]

Enlaces a Yahoo! Grupos

<*> Para visitar tu grupo en la web, ve a:
    http://ar.groups.yahoo.com/group/squeakRos/

<*> La configuración de tu correo:
    Mensajes individuales  | Tradicional

<*> Para modificar la configuración desde la Web, visita:
    http://ar.groups.yahoo.com/group/squeakRos/join
    (ID de Yahoo! obligatoria)

<*> Para modificar la configuración mediante el correo:
    [hidden email]
    [hidden email]

<*> Para cancelar tu suscripción en este grupo, envía
    un mensaje en blanco a:
    [hidden email]

<*> El uso que hagas de Yahoo! Grupos está sujeto a
    las Condiciones del servicio de Yahoo!:
    http://ar.docs.yahoo.com/info/utos.html