El día 30 de octubre de 2012 18:16, Guillermo Schwarz
<[email protected]> escribió:
> Hasta donde sé para el caso de Smalltalk, todo es asíncrono. De hecho para
> hacer que no sea asíncrono hay que hacer algún tipo de esfuerzo.

No, no es asincrónico, a menos que exista un fork en el medio, y la
concurrencia se maneja con semáforos y mutexes.

> Por ejemplo para ejecutar un ciclo:
> [ condicion ] whileTrue: [ bloque ].

> El bloque por lo tanto se ejecuta de manera asíncrona (en la práctica cada
> ejecución del bloque no es asíncrona, pero podría hacerse asíncronamente sin
> ningún problema).

Entonces siempre es, y a la vez podría hacerse sin ningun problema?
Alguna de las dos partes no es correcta. Si es no hay nada que deba
hacerse para que siga siendo.

> Luego puedes hacer que todas las operaciones se vuelvan
> asíncronas de la misma manera que se hacía con WinSocks en Smalltalk
> Express. Simplemente entregas un bloque como parámetro cuando el subsistema
> está listo para escribir un socket o leerlo. Lo mismo se puede hacer para
> leer y escribir archivos, conversar con BD, etc.

Sí, en lo que es sockets y algunas implementaciones de drivers de BD
se usa mucho la de pasar un block como callback.
No hay implementación para file I/O que trabaje de esa manera.

Quizas wrappeando libuv (https://github.com/joyent/libuv) pueda
obtenerse esa funcionalidad, sin tener que tocar la VM.

> Quiźas es la mayor problema de Smalltalk es que se asume que todos los
> objetos no ejecutan en paralelo, ya que hay un sólo thread en todo el
> sistema. Coo lo resuelve Lisp es decir: no hay objetos globales. En
> Smalltalk todas las clases son globales y algunos objetos como el
> SystemDictionary Smalltalk tendrían que ser "synchronized".

Aca no te entendí, no entiendo del todo en que afecta el asincronismo a eso.
La concurrencia es una cosa, y el asincronismo otra, que puedan darse
ambas. Node no soluciona los conflictos de la concurrencia,
simplemente permite que haya más clientes de manera concurrente
haciendo que las tareas no sean bloqueantes (o lo sean lo menos
posible).

Saludos.

Esteban A. Maringolo

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]

http://www.clubSmalltalk.org

Responder a