Hola Andrés! 
        Con respecto al volumen, probablemente en la arquitectura de las
redes de hoy tenga un límite, pero pensando que ya se están evaluando las
redes varias veces más rápidas que las de hoy en día, no habría problema en
desarrollar este tipo de framework. Está pensado para aplicaciones web 2.0,
que hoy, se resuelven con flash, applets y AJAX, haciendo que sea más
complicado que nunca desarrollar. Creo que este tipo de aplicaciones (que no
todos entienden[1]) son las que Smalltalk nos ayuda a ofrecer. Una vez más,
dando ese paso que en la tecnología tradicional es casi imposible lograr por
una sola persona. 
        En cuanto a lo que están haciendo no logré entender bien, pero creo
que deberías pegarle un vistazo al ST2JS. Resuelve cosas no tan triviales.
El framework en total tiene un trabajo de más de 2 años por parte de Diego,
y tiene resueltas cosas complejas. Supongo que para tu desarrollo te será de
utilidad el pegarle un vistazo. 

Saludos,
Hernán.-

[1] Porque ni siquiera Ruby on rails es popular en las empresas hoy en día
para el desarrollo de aplicaciones web, que un clon de Seaside sobre Ruby. 

-----Mensaje original-----
De: [email protected] [mailto:[EMAIL PROTECTED]
En nombre de Andres Fortier
Enviado el: lunes, 28 de abril de 2008 12:02 p.m.
Para: [email protected]
Asunto: [clubSmalltalk] Re: Nuevo Framework para desarrollo Web sobre
Smalltalk (Squeak)


Hernán,
              que tal? super interesante el trabajo. 
Casualmente en este momento estoy trabajando sobre un 
proyecto en Seaside que se toca en muchos puntos con lo 
SWT. En si hay dos cosas con las que estaba jugando:

1. Envío de mensajes al cliente. La idea es que viajen 
en forma de commands o como eventos, pero que el 
cliente tenga la posibilidad de hacer algo en base a un 
cambio en el server. Claramente el objetivo de todo 
esto es lograr un MVC como la gente, donde la página 
web + browser cumplen el rol de V/C. El problema a usar 
cosas como Comet es que, por lo que llegué a ver, no 
escala muy bien que digamos en términos de la cantidad 
de clientes, por estar obligado a mantener un caño 
abierto en el server por cada cliente. Te hago una 
pregunta: hicieron pruebas con N clientes al mismo 
tiempo (con N medianamente grande :))?.

2. Envío de mensajes javascript desde St. Todo comenzó 
con un port de la API de google maps para seaside y ahí 
surgió la necesidad de enviar mensajes al mapa. Una 
opción posible en Seaside es embeber código javascript, 
pero eso me resultaba un moco. Por otro lado no quería 
tener que traducir todo el código St a javascript, 
porque en realidad mi objetivo es un poco la inversa, 
esto es, dado un objeto que ya existe en javascipt, 
poder mandarle mensajes "a la Smalltalk". Ejemplo:

channel:=(html messageChannel
                            callback: [self showBar
                                                        ifTrue: [self map
enableGoogleBar]
                                                        ifFalse:[self map
disableGoogleMap].
                                            ].
y:
html checkbox
        ...
         value: (self map isEnabled: anItemName);
         onChange: channel.

Lo que sucede en este caso es que, al interpretar el 
bloque de callback uso un BlockContext modificado que 
captura en envío de un mensaje y, si el receptor está 
registrado como objeto javascrip [*], traduce el envío 
del mensaje y lo interpreta en la página. Lo 
interesante es que en el ejemplo que puse no se traduce 
todo el código compilado en forma estática, sino sólo 
lo que se evalúa. De hecho, en este caso habría tres 
mensajes para evaluar (asumiendo la rama del ifTrue):

self showBar (self no es un objeto javascript => 
ejecución normal)
aBool ifTue:[] ifFalse:[] (idem al anterior)
self map enableGoogleBar (el mapa si es un objeto 
javascript, luego, aparte de enviar el mensaje en st se 
genera algo de la pinta de 
'google_map_3619.enableGoogleBar();' Esto luego se pasa 
al channel, que no es mas que un div con un id 
determinado el cual al refrescarse reinterpreta el script).

Hasta el momento el approach me resultó cómodo, aunque 
le encuentro tres (potenciales) problemas:

1. Viendo el código uno no puede discernir si el objeto 
es javascript o no. Esto puede ser bueno a nivel de 
transparencia, pero confuso a la hora de debuggear.
2. El mismo bloque, ejecutado fuera de un 
messageChannel es código St común y corriente. 
Nuevamente, esto puede llegar a ser confuso.
3. Es posible que se generen mensajes en javascript de 
gusto; ejemplo:

self map isGoogleBarEnabled
                                        ifTrue: [self map enableGoogleBar]
                                        ifFalse:[self map disableGoogleMap].

el código resultante es (asumiendo la rama del ifTrue):

google_map_3619.isEnabled();
google_map_3619.enableGoogleBar();

En este caso el primer mensaje es de gusto, pero en 
principio no hay forma de saberlo. Se podría taggear a 
los mensajes como "idempotentes" en términos de los 
cambios que producen para evitar generar código de mas, 
pero me parece una cosa muy compleja si el costo no es 
mucho.

Igual el trabajo esta verde todavía (lo arranqué hace 
una semana). Cualquier comentario es bienvenido.

Saludos,
              Andrés

Hernán Galante escribió:
> Estimados,
>                Tengo el agrado de invitarlos a probar y ver un nuevo
> framework para desarrollo web llamado Smalltalk Web Toolkit. El padre del
> mismo es un amigo conocido por todos, Diego Gomez Deck.
> 
> ¿Cuáles son las cualidades de este nuevo framework?
> SWT rompe con la asimetría del protocolo HTTP, es decir, a través del hack
> Comet, ahora el servidor puede enviar contenido a los clientes conectados.
> Esto hace que se quiebre la barrera impuesta por el protocolo HTTP y el
> servidor no solamente pueda enviar contenido solo con un pedido del
cliente,
> sino que a través de esto, en cualquier evento que se produzca en el
> servidor pueden ser informados los clientes (o los navegadores).
> 
> ¿Cuál es su arquitectura?
> SWT consta de una parte cliente y una servidora. Es decir, el
comportamiento
> del cliente lo desarrollamos íntegramente sobre Smalltalk. Gracias a un
> framework que traduce de Smalltalk a Javascript contamos con un
> mini-ambiente Smalltalk del lado del navegador. A partir de este esquema,
se
> puede contar con un MVC (Model-View-Controller) distribuido. Este MVC
logra
> ciertas optimizaciones para presevar el recurso más limitado, la red.
> 
> ¿De donde obtengo más información?
> En el blog ceibo.wordpress.com podrán encontrar información de cómo
usarlo,
> ejemplos, links a downloads, tutoriales, etc.
> Ceibo es un proyecto de barajas 3D sobre la web que usará SWT como
> arquitectura.
> 
> Gracias!
> 
> > 
> 



--~--~---------~--~----~------------~-------~--~----~
Has recibido este mensaje porque estás suscrito a Grupo "ClubSmalltalk" de 
Grupos de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a [email protected]
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/clubSmalltalk?hl=es.

-~----------~----~----~----~------~----~------~--~---

Responder a