RV: DNG-Win32 Bit VM

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

Re: RV: DNG-Win32 Bit VM

Jose Gregoris
jajja nunca !
Pero tendre paciencia  jajajja



--- El sáb 31-jul-10, GallegO <[hidden email]> escribió:

De: GallegO <[hidden email]>
Asunto: Re: [clubSmalltalk] Re: RV: DNG-Win32 Bit VM
Para: [hidden email]
Fecha: sábado, 31 de julio de 2010, 12:14

Jaja... pense que te habías olvidado, pero si estamos con mucho laburo!

El 31 de julio de 2010 11:11, Jose Gregoris <kikodelphi@...> escribió:
Hola gaita !

Ahora recuerdo que me prometiste algo sobre GUI dínamica don Dolphin!
Ya se que debes tener mucho laburo, pero si tenes un rato y ganas me gustaría que muestres algo sobre el tema.
Si es posible con un videito o lo que vos quieras

saludos kiko

--- El mié 28-jul-10, GallegO <fxgallego@...> escribió:

De: GallegO <fxgallego@...>

Asunto: Re: [clubSmalltalk] Re: RV: DNG-Win32 Bit VM
Para: clubsmalltalk@...
Fecha: miércoles, 28 de julio de 2010, 18:38


Hola:

Bueno es que los videos de Andy Bower estan buenos porque justo muestran la programación (y cambio) mientras el programa esta ejecutando. Es una pabada pero para alguien que labura en un ambiente no dinamico por ahi llama la atencion.

Para quienes no lo vieron es algo como el ejemplo del autito de Squeak pero sin usar etoys, programando en Smalltalk con lo que uno puede ver tambien como se usan browsers, senders, implementors y como se programa desde el debugger usando mensajes que aún no han sido implementados...

Saludos
  GallegO

El 28 de julio de 2010 18:31, Andres Valloud <andres.valloud@...> escribió:
La verdad de estos videos no tengo mucha idea porque en general no miro esas cosas.  Lamento haberte mandado a mirar algo que no te sirvio.  Ahora, que se yo, desarrollo dinamico... en su momento me grabe programando el concurso de Smalltalks 2008, y la verdad lo unico que se ve es a alguien que se la pasa escribiendo codigo... cada tanto una pausa para pensar algo o ir a mirar alguna cosa, y sigue la escritura...

No se, a mi me parece que lo mejor es pensar todo en la cabeza primero porque ahi se piensa mas rapido.  A mi gusto, si te la pasas usando los botoncitos y las ventanitas y todo eso, es como estar usando el pagefile en vez de pensar con la cache...

Andres.


2010/7/28 Jose Gregoris <kikodelphi@...>
Hola Andres

Gracias, los he visto y  a mi modesto entender no me parecen de gran ayuda :(, pero agradezco su esfuerzo.
Lo mejor que pude ver sobre desarrollo dínamico son los videos de Andy bowen.

Son completos y explica bien las cosas.
Hay algo más de este estilo ?
Es así como ven el desarrollo dínamico dentro de smalltalk ?

saludos kiko




--- El mié 28-jul-10, Andres Valloud <andres.valloud@...> escribió:

De: Andres Valloud <andres.valloud@...>
Asunto: Re: [clubSmalltalk] Re: RV: DNG-Win32 Bit VM
Para: clubsmalltalk@...
Fecha: miércoles, 28 de julio de 2010, 16:23


James Robertson se la pasa haciendo screencasts...

2010/7/28 Jose Gregoris <kikodelphi@...>
Hola Diego , Andres , gente

A mi me gustaría que tengamos videos tutorial, sobre como utilizar un smalltalk.
Todos hablan de las bondades de ST , pero pocos muestran como usar esas bondades para beneficio del programador y del desarrollo de una aplicación .
Ejemplos:
-GUI en tiempo real.
-Uso de los browser y desarrollo dinámico de una aplicación


saludos kiko 

--- El mar 27-jul-10, dcoronel32@... <dcoronel32@...> escribió:

De: dcoronel32@... <dcoronel32@...>
Asunto: [clubSmalltalk] Re: RV: DNG-Win32 Bit VM
Para: "ClubSmalltalk" <clubsmalltalk@...>
Fecha: martes, 27 de julio de 2010, 17:39


Hola,
Respecto a los libros, no me he topado con ninguno de Smalltalk que me
haya servido (no leí los tuyos), creo que escribir sobre Smalltalk es
como una utopía muy loable pero tiene como un problema de fondo. A
veces pueden ser interesantes esos libros por otro motivos, pero no
veo que funcionen con la misma efectividad que los libros de lenguages
de programación mas formales. Salvando las distancias, creo que es
como intentar escribir un libro para aprender guitarra o jugar al
tenis (que lo hay). No logro imaginarme cómo sería un buen libro de
Smalltalk, por lo cual lo imagino que es un desafío muy interesante
para todo aquel que se anime a escribirlo.

Un libro sobre VMs creo que sería algo muy distinto, mas lleno de
formalidades, de conocimiento muy específico, muy técnico. Acá creo
que el desafío es saber mucho de lo que se está escribiendo, ya que
hay tantos niveles de calidad para resolver una VM, que solo poca
gente lo podría hacer bien. Parece lógico que te tomes el tiempo para
sentirte seguro antes de arrancar, incluso cuando ya sepas muchisimo
del tema. Y me agrada mucho saber que tenés pensado encarar ese tema a
futuro, seré un agradecido mas por tener acceso a información de
dificil acceso.

Diego Coronel

On Jul 26, 8:45 pm, Andres Valloud <andres.vall...@...> wrote:
> Con respecto a los libros, mi experiencia es que hay un monton de
> informacion en la gente que ya sabia mucho mas o menos en 1995, pero
> que por la razon que quieras no escribieron al respecto.  A mi gusto,
> hay un vacio en la literatura de Smalltalk... o sea, abundan las
> introducciones y libros para empezar con temas muy diversos, pero los
> libros mas avanzados parecen escasear.  Creo que es importante que
> haya cosas escritas que te lleven mas alla de lo de todos los dias, me
> parece que es un buen camino para ir desafiandose a uno mismo con
> cosas cada vez mas dificiles.
>
> Espero estar haciendo un trabajo razonable para tapar el (que a mi
> gusto es un) bache con lo que escribo.  Eventualmente me pasare a
> escribir libros acerca de VMs.  Me parece que voy a escribir de eso
> cuando sienta que lo que tenga para decir este maduro.  Quiza el libro
> de AGC este mas cerca, pero me gustaria terminar el segundo (y quiza
> tercer) volumen de Fundamentals antes, y tambien otro libro acerca de
> usos del patron de percepcion.  Ya con eso me parece que puedo
> escribir el libro de AGC mas tranquilo.  Y despues de eso no se,
> tendre que ver que escribo despues.
>
> Andres.
>
> 2010/7/26 dcorone...@... <dcorone...@...>:
>
>
>
> > Coincido con Gerardo, muy bueno el correo de Andrés, muchas gracias.
> > Sería bueno que alguna vez alguien documentara o publicara algo acerca
> > de VMs de calidad, hay poca gente que lo podría hacer bien,  y ese
> > material aportaría a la continuidad de Smalltalk como plataforma a
> > largo plazo. Todo smalltalker alguna vez tiene su época de querer
> > hacerse la VM, yo la pasé y si me distraigo un poco supongo que
> > volveré a lo mismo, es como recurrente el tema. Coincido en que hacer
> > algo que ande es relativamente sencillo y hacer algo que ande bien es
> > extremadamente complejo. Además la problemática a resolver tiene poco
> > que ver con Smalltalk (lo cual no lo hace menos divertido). Me parecen
> > válidos todos los enfoques, desde los que arrancan del assembler mas
> > crudo hasta los que se suben arriba de otra VM o lenguaje de alto
> > nivel, cada uno en su lugar y contexto no deja de ser interesante.
> > Entre las cosas que hoy le pediría a un VM es en que aumenten los
> > límites en cantidad de objetos, que soporten 64 bits y algo que
> > siempre quisiera tener es mucho mas control sobre el method lookup,
> > que a mi entender es la principal limitación de Smalltalk.
>
> > Pero insisto en que sería bueno, que quienes saben del tema, alguna
> > vez publiquen y/o hagan docencia sobre el tema, al menos a modo de
> > memorias antes de retirarse. Creo que muchos pagaríamos gustosos un
> > libro sobre eso, porque nos ahorraría tiempo en lo que igual queremos
> > o vamos a hacer. Y además, difundir esto podría tener un efecto
> > positivo y podría originar la aparición de mas alternativas que las
> > que existen hoy, que son pocas.
>
> > Saludos y gracias por la información.
>
> > Diego Coronel
>
> > On Jul 26, 2:41 pm, Gerardo Richarte <g...@...> wrote:
> >> excelente andres!!!
>
> >> espero que todo esto tambi n lo tengas en formato powerpoint :)
>
> >> ya sab s que a unos cuantos nos interesa, ponele una tonelada de
> >> detalles t cnicos, y agregale una pizca de rant tambi n :)
> >> listo! receta perfecta :)
>
> >>     en un rato vuelvo a leer el mail y mando algunas preguntas tambi n
>
> >>     saludos!
>
> > --
> > To post to this group, send email to clubSmalltalk@...
> > To unsubscribe from this group, send email to clubSmalltalk+unsubscribe@...
>
> >http://www.clubSmalltalk.org- Hide quoted text -
>
> - Show quoted text -

--
To post to this group, send email to clubSmalltalk@...
To unsubscribe from this group, send email to clubSmalltalk+unsubscribe@...

http://www.clubSmalltalk.org

 

--
To post to this group, send email to clubSmalltalk@...
To unsubscribe from this group, send email to clubSmalltalk+unsubscribe@...
 
http://www.clubSmalltalk.org

--
To post to this group, send email to clubSmalltalk@...
To unsubscribe from this group, send email to clubSmalltalk+unsubscribe@...
 
http://www.clubSmalltalk.org

 

--
To post to this group, send email to clubSmalltalk@...
To unsubscribe from this group, send email to clubSmalltalk+unsubscribe@...
 
http://www.clubSmalltalk.org

--
To post to this group, send email to clubSmalltalk@...
To unsubscribe from this group, send email to clubSmalltalk+unsubscribe@...
 
http://www.clubSmalltalk.org

--
To post to this group, send email to clubSmalltalk@...
To unsubscribe from this group, send email to clubSmalltalk+unsubscribe@...
 
http://www.clubSmalltalk.org

 

--
To post to this group, send email to clubSmalltalk@...
To unsubscribe from this group, send email to clubSmalltalk+unsubscribe@...
 
http://www.clubSmalltalk.org

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org

 

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: RV: DNG-Win32 Bit VM

Hernan Wilkinson-3
In reply to this post by Gaboto
Alejandra De Bonnis es su tesis de licenciatura reifico el method lookup de tal manera que cada objeto podía definir cómo buscar un método a partir de un mensaje. De esta manera teníamos en el mismo ambiente prototipos y clases por ejemplo. Haciendo esto usar dnu o method wrappers, etc. dejó de tener sentido... imaginense, cada OBJETO puede definir que hacer cuando recibe un mensaje (delegarlo, buscar su método, tomarlo prestado, etc). 
Como dice Gaby, el problema de la regresión existió pero lo resolvirmos fácil jeje... o sea, los objetos que se usaban para reificar el method lookup no podía reificar su method lookup jeje, pero igual había que trabajar un poco más en cómo estaba implementado.
A mi entender fue un trabajo muy pero muy interesante, lástima que como muchas cosas quedó ahí muerto por falta de tiempo para investigar, guita para invertir, etc. 
En fin, si alguien tiene ganas de verlo avise

Hernán.

2010/7/27 Gabriel Brunstein <[hidden email]>
Diego, en realidad el method dictionary se puede modificar, y se pueden usar wrappers bastante sofisticados, como method wrappers o instance wrappers (con clases anónimas). Creo que vos te referís a tener reificado en Smalltalk el algoritmo de method lookup, cosa que sería muy interesante de ver como se resolvería (hay un problema de regresión infinita, ya que el propio algoritmo tendría que evaluarse utilizándose, algo loco..). Si esto se logra sería muy interesante para experimentar, pero no hay que subestimar el problema de performance que podría ocasionar.
Por otro lado, según entiendo, lo que vos decías es tener un modelo de prototipos y delegación como el de Self (de donde se influenció NewtonScript). Yo también creo que sería más natural partir de un esquema de ese tipo y luego agregarle el esquema de clasificación como el de Smalltalk, así podrías combinar ambos. 
Pero creo que estos cambios implicarían un nuevo ambiente, ya no sería Smalltalk. Estaría muy bueno todo esto, pero por como están las cosas después de 35 años no creo que pase nada...

2010/7/27 [hidden email] <[hidden email]>

Hola Andrés
Contesto entre líneas...

On Jul 26, 8:57 pm, Andres Valloud <[hidden email]> wrote:
> > Coincido en que hacer algo que ande es relativamente sencillo y hacer algo que ande bien es extremadamente complejo.
>
> Y si... tal cual.
>
> > Entre las cosas que hoy le pediría a un VM es en que aumenten los límites en cantidad de objetos, que soporten 64 bits
>
> No es por ser pretencioso, pero VisualWorks tiene VMs de 64 bits para
> Linux en x86, Solaris en x86, y Solaris en SPARC.  Trabajamos mucho
> con las VMs y las imagenes de 64 bits en este tiempo, y las versiones
> que estan a punto de salir son muchisimo mejores que lo que teniamos
> hace unos años (esto no lo digo yo o nosotros (Cincom)... lo puso por
> escrito gente de GemStone en la lista de VisualWorks acerca de 7.7).
>
> Tambien estamos trabajando en un port a Windows 64 bits.  Esto ultimo
> es mas dificil de lo que parece.  Por ejemplo, al contrario de mas o
> menos todo el mundo, en Windows de 64 bits un long tiene 32 bits.  Asi
> que si, digamos, tenes codigo multiplataforma que habla de longs todo
> el tiempo porque hasta ahora siempre (la VM de VisualWorks tiene cerca
> de 30 años encima) en 64 bits un long tenia 64 bits, y en 32 bits un
> long tenia 32 bits... hmmm...
Si, puedo imaginar a VW y Gemstone muy bien armados en todo eso, en mi
caso uso Dolphin o Squeak por motivos comerciales.



> > y algo que siempre quisiera tener es mucho mas control sobre el method lookup, que a mi entender es la principal limitación de Smalltalk.
>
> Podrias contar mas de esto?  Donde le ves la limitacion?  Que te
> gustaria que hubiera pero no hay?

Cuando envío un mensaje a un objeto, este busca en la clase,
superclases, etc. y ejectua el método. Toda esta convención es
invariable y define, sin posibilidad de modificar nada, cosas muy
importantes como la herencia y otras yerbas. Esta convención nos
parece bien a todos porque nos parece bien que si mando el mensaje
#print se ejecute el método #print, y también nos parece bien a todos
utilizar herencia simple, y también a casi todos nos parecen bien las
clases, metaclases y todo lo que defendemos desde la practicidad. Sin
embargo, no poder modificar esta convención, trae mas limitaciones de
las que generalmente pensamos (porque nos acostumbramos y nos gusta la
convención) y usualmente resolvemos de manera sucia y limitada. Son
conocidos los casos no muy bien resueltos con herencia simple (como la
jerarquia de Stream), son conocidos los trucos de usar #dnu para
activar métodos que no están presentes en la clase del receptor (como
en los proxies) y personalmente me molesta que esté conceptualmente
tan acoplado el método con el mensaje, dos cosas muy distintas. Una
solución que me suena factible, y tal vez compleja de implementar
decentemente, sería que el methodLookup estuviera implementado en
Smalltalk, en Object supongo. La implementación default podría ser una
primitiva que hiciera lo mismo que esperamos hoy en día, pero que al
modificarla en subclases nos abriera un campo de posibilidades muy
amplias y muy peligrosas (tan peligrosas como cualquier otra de
Smalltalk). Sería trivial implementar proxies, hacer delegaciones mas
sofisticadas y generar diseños hoy imposibles, de manera muy clara.
Por ejemplo, hoy es común ver que los proxies para persistencia en
bases de datos, o para sistemas distribuidos se hacen heredando de
ProtoObject, o de clases con pocos métodos, cosa que ya es sucia de
entrada, luego se agregan #dnu que son mas sucios. No sería mas
adecuado que la clase de un proxy fuera el misma que la del subject?
al menos parecida?, de esta manera se podrían delegar en el subject la
resolución de algunos métodos y en el proxy la resolución de otros,
podría incluso haber cooperación entre estos objetos. Esto es largo de
explicar, pero creo qeu se podría resolver mucho, programando poco,
mas claro y simple de debuggear. Otro ejemplo sería la herencia
múltiple, quedaría de una manera muy prolija, porque se podría acotar
a una parte muy pequeña del sistema, no estaría condicionada por otra
convención (como en c++), no tendría porqué tener que limitarse a
clases, podría ser entre objetos (como en la herencia de prototipos
que usaba en el NewtonScript de Apple). Es mas el polimorfismo se
ampliaría porque un objecto podría resolver mensajes que hoy no
entendería. Creo que también desaparecerían los intentos de solucionar
estos problemas mediante traits o cosas similares. Todo esto, tal vez
genere mas incertidumbre, pero creo que sería muy interesante TENERLO,
ir usándolo con mucho cuidado, y posiblemente aparezcan patterns que
mejoren sustancialmente las recetas actuales. Entiendo, no estoy
seguro, que las primeras versiones de la VM de Smalltalk tenían algo
similar y que luego se descartó por temas de perfomance, supongo que
35 años mas tarde se podría tratar de resolver ese "problemita".

Saludos

Diego Coronel

> Andres.
>
> 2010/7/26 [hidden email] <[hidden email]>:
>
>
>
> > Coincido con Gerardo, muy bueno el correo de Andrés, muchas gracias.
> > Sería bueno que alguna vez alguien documentara o publicara algo acerca
> > de VMs de calidad, hay poca gente que lo podría hacer bien,  y ese
> > material aportaría a la continuidad de Smalltalk como plataforma a
> > largo plazo. Todo smalltalker alguna vez tiene su época de querer
> > hacerse la VM, yo la pasé y si me distraigo un poco supongo que
> > volveré a lo mismo, es como recurrente el tema. Coincido en que hacer
> > algo que ande es relativamente sencillo y hacer algo que ande bien es
> > extremadamente complejo. Además la problemática a resolver tiene poco
> > que ver con Smalltalk (lo cual no lo hace menos divertido). Me parecen
> > válidos todos los enfoques, desde los que arrancan del assembler mas
> > crudo hasta los que se suben arriba de otra VM o lenguaje de alto
> > nivel, cada uno en su lugar y contexto no deja de ser interesante.
> > Entre las cosas que hoy le pediría a un VM es en que aumenten los
> > límites en cantidad de objetos, que soporten 64 bits y algo que
> > siempre quisiera tener es mucho mas control sobre el method lookup,
> > que a mi entender es la principal limitación de Smalltalk.
>
> > Pero insisto en que sería bueno, que quienes saben del tema, alguna
> > vez publiquen y/o hagan docencia sobre el tema, al menos a modo de
> > memorias antes de retirarse. Creo que muchos pagaríamos gustosos un
> > libro sobre eso, porque nos ahorraría tiempo en lo que igual queremos
> > o vamos a hacer. Y además, difundir esto podría tener un efecto
> > positivo y podría originar la aparición de mas alternativas que las
> > que existen hoy, que son pocas.
>
> > Saludos y gracias por la información.
>
> > Diego Coronel
>
> > On Jul 26, 2:41 pm, Gerardo Richarte <[hidden email]> wrote:
> >> excelente andres!!!
>
> >> espero que todo esto tambi n lo tengas en formato powerpoint :)
>
> >> ya sab s que a unos cuantos nos interesa, ponele una tonelada de
> >> detalles t cnicos, y agregale una pizca de rant tambi n :)
> >> listo! receta perfecta :)
>
> >>     en un rato vuelvo a leer el mail y mando algunas preguntas tambi n
>
> >>     saludos!
>
> > --
> > To post to this group, send email to [hidden email]
> > To unsubscribe from this group, send email to [hidden email]
>
> >http://www.clubSmalltalk.org- Hide quoted text -
>
> - Show quoted text -

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

http://www.clubSmalltalk.org

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org



--
Hernán Wilkinson
Agile Software Development, Teaching & Coaching
Mobile: +54 - 11 - 4470 - 7207
email: [hidden email]
site: http://www.10Pines.com

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: RV: DNG-Win32 Bit VM

dcoronel32@gmail.com
Hola Hernán, una pregunta, esto lo implementaron o es un trabajo
teórico? (de cualquier manera me parece muy interesante)

Diego

On Aug 2, 7:36 am, Hernan Wilkinson <[hidden email]>
wrote:

> Alejandra De Bonnis es su tesis de licenciatura reifico el method lookup de
> tal manera que cada objeto podía definir cómo buscar un método a partir de
> un mensaje. De esta manera teníamos en el mismo ambiente prototipos y clases
> por ejemplo. Haciendo esto usar dnu o method wrappers, etc. dejó de tener
> sentido... imaginense, cada OBJETO puede definir que hacer cuando recibe un
> mensaje (delegarlo, buscar su método, tomarlo prestado, etc).
> Como dice Gaby, el problema de la regresión existió pero lo resolvirmos
> fácil jeje... o sea, los objetos que se usaban para reificar el method
> lookup no podía reificar su method lookup jeje, pero igual había que
> trabajar un poco más en cómo estaba implementado.
> A mi entender fue un trabajo muy pero muy interesante, lástima que como
> muchas cosas quedó ahí muerto por falta de tiempo para investigar, guita
> para invertir, etc.
> En fin, si alguien tiene ganas de verlo avise
>
> Hernán.
>
> 2010/7/27 Gabriel Brunstein <[hidden email]>
>
>
>
> > Diego, en realidad el method dictionary se puede modificar, y se pueden
> > usar wrappers bastante sofisticados, como method wrappers o instance
> > wrappers (con clases anónimas). Creo que vos te referís a tener reificado en
> > Smalltalk el algoritmo de method lookup, cosa que sería muy interesante de
> > ver como se resolvería (hay un problema de regresión infinita, ya que el
> > propio algoritmo tendría que evaluarse utilizándose, algo loco..). Si esto
> > se logra sería muy interesante para experimentar, pero no hay que subestimar
> > el problema de performance que podría ocasionar.
> > Por otro lado, según entiendo, lo que vos decías es tener un modelo de
> > prototipos y delegación como el de Self (de donde se influenció
> > NewtonScript). Yo también creo que sería más natural partir de un esquema
> > de ese tipo y luego agregarle el esquema de clasificación como el de
> > Smalltalk, así podrías combinar ambos.
> > Pero creo que estos cambios implicarían un nuevo ambiente, ya no sería
> > Smalltalk. Estaría muy bueno todo esto, pero por como están las cosas
> > después de 35 años no creo que pase nada...
>
> > 2010/7/27 [hidden email] <[hidden email]>
>
> > Hola Andrés
> >> Contesto entre líneas...
>
> >> On Jul 26, 8:57 pm, Andres Valloud <[hidden email]> wrote:
> >> > > Coincido en que hacer algo que ande es relativamente sencillo y hacer
> >> algo que ande bien es extremadamente complejo.
>
> >> > Y si... tal cual.
>
> >> > > Entre las cosas que hoy le pediría a un VM es en que aumenten los
> >> límites en cantidad de objetos, que soporten 64 bits
>
> >> > No es por ser pretencioso, pero VisualWorks tiene VMs de 64 bits para
> >> > Linux en x86, Solaris en x86, y Solaris en SPARC.  Trabajamos mucho
> >> > con las VMs y las imagenes de 64 bits en este tiempo, y las versiones
> >> > que estan a punto de salir son muchisimo mejores que lo que teniamos
> >> > hace unos años (esto no lo digo yo o nosotros (Cincom)... lo puso por
> >> > escrito gente de GemStone en la lista de VisualWorks acerca de 7.7).
>
> >> > Tambien estamos trabajando en un port a Windows 64 bits.  Esto ultimo
> >> > es mas dificil de lo que parece.  Por ejemplo, al contrario de mas o
> >> > menos todo el mundo, en Windows de 64 bits un long tiene 32 bits.  Asi
> >> > que si, digamos, tenes codigo multiplataforma que habla de longs todo
> >> > el tiempo porque hasta ahora siempre (la VM de VisualWorks tiene cerca
> >> > de 30 años encima) en 64 bits un long tenia 64 bits, y en 32 bits un
> >> > long tenia 32 bits... hmmm...
> >> Si, puedo imaginar a VW y Gemstone muy bien armados en todo eso, en mi
> >> caso uso Dolphin o Squeak por motivos comerciales.
>
> >> > > y algo que siempre quisiera tener es mucho mas control sobre el method
> >> lookup, que a mi entender es la principal limitación de Smalltalk.
>
> >> > Podrias contar mas de esto?  Donde le ves la limitacion?  Que te
> >> > gustaria que hubiera pero no hay?
>
> >> Cuando envío un mensaje a un objeto, este busca en la clase,
> >> superclases, etc. y ejectua el método. Toda esta convención es
> >> invariable y define, sin posibilidad de modificar nada, cosas muy
> >> importantes como la herencia y otras yerbas. Esta convención nos
> >> parece bien a todos porque nos parece bien que si mando el mensaje
> >> #print se ejecute el método #print, y también nos parece bien a todos
> >> utilizar herencia simple, y también a casi todos nos parecen bien las
> >> clases, metaclases y todo lo que defendemos desde la practicidad. Sin
> >> embargo, no poder modificar esta convención, trae mas limitaciones de
> >> las que generalmente pensamos (porque nos acostumbramos y nos gusta la
> >> convención) y usualmente resolvemos de manera sucia y limitada. Son
> >> conocidos los casos no muy bien resueltos con herencia simple (como la
> >> jerarquia de Stream), son conocidos los trucos de usar #dnu para
> >> activar métodos que no están presentes en la clase del receptor (como
> >> en los proxies) y personalmente me molesta que esté conceptualmente
> >> tan acoplado el método con el mensaje, dos cosas muy distintas. Una
> >> solución que me suena factible, y tal vez compleja de implementar
> >> decentemente, sería que el methodLookup estuviera implementado en
> >> Smalltalk, en Object supongo. La implementación default podría ser una
> >> primitiva que hiciera lo mismo que esperamos hoy en día, pero que al
> >> modificarla en subclases nos abriera un campo de posibilidades muy
> >> amplias y muy peligrosas (tan peligrosas como cualquier otra de
> >> Smalltalk). Sería trivial implementar proxies, hacer delegaciones mas
> >> sofisticadas y generar diseños hoy imposibles, de manera muy clara.
> >> Por ejemplo, hoy es común ver que los proxies para persistencia en
> >> bases de datos, o para sistemas distribuidos se hacen heredando de
> >> ProtoObject, o de clases con pocos métodos, cosa que ya es sucia de
> >> entrada, luego se agregan #dnu que son mas sucios. No sería mas
> >> adecuado que la clase de un proxy fuera el misma que la del subject?
> >> al menos parecida?, de esta manera se podrían delegar en el subject la
> >> resolución de algunos métodos y en el proxy la resolución de otros,
> >> podría incluso haber cooperación entre estos objetos. Esto es largo de
> >> explicar, pero creo qeu se podría resolver mucho, programando poco,
> >> mas claro y simple de debuggear. Otro ejemplo sería la herencia
> >> múltiple, quedaría de una manera muy prolija, porque se podría acotar
> >> a una parte muy pequeña del sistema, no estaría condicionada por otra
> >> convención (como en c++), no tendría porqué tener que limitarse a
> >> clases, podría ser entre objetos (como en la herencia de prototipos
> >> que usaba en el NewtonScript de Apple). Es mas el polimorfismo se
> >> ampliaría porque un objecto podría resolver mensajes que hoy no
> >> entendería. Creo que también desaparecerían los intentos de solucionar
> >> estos problemas mediante traits o cosas similares. Todo esto, tal vez
> >> genere mas incertidumbre, pero creo que sería muy interesante TENERLO,
> >> ir usándolo con mucho cuidado, y posiblemente aparezcan patterns que
> >> mejoren sustancialmente las recetas actuales. Entiendo, no estoy
> >> seguro, que las primeras versiones de la VM de Smalltalk tenían algo
> >> similar y que luego se descartó por temas de perfomance, supongo que
> >> 35 años mas tarde se podría tratar de resolver ese "problemita".
>
> >> Saludos
>
> >> Diego Coronel
>
> >> > Andres.
>
> >> > 2010/7/26 [hidden email] <[hidden email]>:
>
> >> > > Coincido con Gerardo, muy bueno el correo de Andrés, muchas gracias.
> >> > > Sería bueno que alguna vez alguien documentara o publicara algo acerca
> >> > > de VMs de calidad, hay poca gente que lo podría hacer bien,  y ese
> >> > > material aportaría a la continuidad de Smalltalk como plataforma a
> >> > > largo plazo. Todo smalltalker alguna vez tiene su época de querer
> >> > > hacerse la VM, yo la pasé y si me distraigo un poco supongo que
> >> > > volveré a lo mismo, es como recurrente el tema. Coincido en que hacer
> >> > > algo que ande es relativamente sencillo y hacer algo que ande bien es
> >> > > extremadamente complejo. Además la problemática a resolver tiene poco
> >> > > que ver con Smalltalk (lo cual no lo hace menos divertido). Me parecen
> >> > > válidos todos los enfoques, desde los que arrancan del assembler mas
> >> > > crudo hasta los que se suben arriba de otra VM o lenguaje de alto
> >> > > nivel, cada uno en su lugar y contexto no deja de ser interesante.
> >> > > Entre las cosas que hoy le pediría a un VM es en que aumenten los
> >> > > límites en cantidad de objetos, que soporten 64 bits y algo que
> >> > > siempre quisiera tener es mucho mas control sobre el method lookup,
> >> > > que a mi entender es la principal limitación de Smalltalk.
>
> >> > > Pero insisto en que sería bueno, que quienes saben del tema, alguna
> >> > > vez publiquen y/o hagan docencia sobre el tema, al menos a modo de
> >> > > memorias antes de retirarse. Creo que muchos pagaríamos gustosos un
> >> > > libro sobre eso, porque nos ahorraría tiempo en lo que igual queremos
> >> > > o vamos a hacer. Y además, difundir esto podría tener un efecto
> >> > > positivo y podría originar la aparición de mas alternativas que las
> >> > > que existen hoy, que son pocas.
>
> >> > > Saludos y gracias por la información.
>
> >> > > Diego Coronel
>
> >> > > On Jul 26, 2:41 pm, Gerardo Richarte <[hidden email]> wrote:
> >> > >> excelente andres!!!
>
> >> > >> espero que todo esto tambi n lo tengas en formato powerpoint :)
>
> >> > >> ya sab s que a unos cuantos nos interesa, ponele una tonelada de
> >> > >> detalles t cnicos, y agregale una pizca de rant tambi n :)
> >> > >> listo! receta perfecta :)
>
> >> > >>     en un rato vuelvo a leer el mail y mando algunas preguntas tambi
> >> n
>
> >> > >>     saludos!
>
> >> > > --
> >> > > To post to this group, send email to [hidden email]
> >> > > To unsubscribe from this group, send email to
>
> ...
>
> read more »- Hide quoted text -
>
> - Show quoted text -

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

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: RV: DNG-Win32 Bit VM

Hernan Wilkinson-3
Se implementó. Para ello modificamos el header de todos los objetos y le agregamos una word para que referencie al objeto que reificaba el method lookup. Por default utilizaba el method lookup definido en la clase del objeto que por default era el method lookup que todos conocemos :-)
Había algunos objetos donde esto no se podía hacer como los small integer por no tener "header" y otros detalles de implementación que no recuerdo, pero andaba bastante bien.


2010/8/2 [hidden email] <[hidden email]>
Hola Hernán, una pregunta, esto lo implementaron o es un trabajo
teórico? (de cualquier manera me parece muy interesante)

Diego

On Aug 2, 7:36 am, Hernan Wilkinson <[hidden email]>
wrote:
> Alejandra De Bonnis es su tesis de licenciatura reifico el method lookup de
> tal manera que cada objeto podía definir cómo buscar un método a partir de
> un mensaje. De esta manera teníamos en el mismo ambiente prototipos y clases
> por ejemplo. Haciendo esto usar dnu o method wrappers, etc. dejó de tener
> sentido... imaginense, cada OBJETO puede definir que hacer cuando recibe un
> mensaje (delegarlo, buscar su método, tomarlo prestado, etc).
> Como dice Gaby, el problema de la regresión existió pero lo resolvirmos
> fácil jeje... o sea, los objetos que se usaban para reificar el method
> lookup no podía reificar su method lookup jeje, pero igual había que
> trabajar un poco más en cómo estaba implementado.
> A mi entender fue un trabajo muy pero muy interesante, lástima que como
> muchas cosas quedó ahí muerto por falta de tiempo para investigar, guita
> para invertir, etc.
> En fin, si alguien tiene ganas de verlo avise
>
> Hernán.
>
> 2010/7/27 Gabriel Brunstein <[hidden email]>
>
>
>
> > Diego, en realidad el method dictionary se puede modificar, y se pueden
> > usar wrappers bastante sofisticados, como method wrappers o instance
> > wrappers (con clases anónimas). Creo que vos te referís a tener reificado en
> > Smalltalk el algoritmo de method lookup, cosa que sería muy interesante de
> > ver como se resolvería (hay un problema de regresión infinita, ya que el
> > propio algoritmo tendría que evaluarse utilizándose, algo loco..). Si esto
> > se logra sería muy interesante para experimentar, pero no hay que subestimar
> > el problema de performance que podría ocasionar.
> > Por otro lado, según entiendo, lo que vos decías es tener un modelo de
> > prototipos y delegación como el de Self (de donde se influenció
> > NewtonScript). Yo también creo que sería más natural partir de un esquema
> > de ese tipo y luego agregarle el esquema de clasificación como el de
> > Smalltalk, así podrías combinar ambos.
> > Pero creo que estos cambios implicarían un nuevo ambiente, ya no sería
> > Smalltalk. Estaría muy bueno todo esto, pero por como están las cosas
> > después de 35 años no creo que pase nada...
>
> > 2010/7/27 [hidden email] <[hidden email]>
>
> > Hola Andrés
> >> Contesto entre líneas...
>
> >> On Jul 26, 8:57 pm, Andres Valloud <[hidden email]> wrote:
> >> > > Coincido en que hacer algo que ande es relativamente sencillo y hacer
> >> algo que ande bien es extremadamente complejo.
>
> >> > Y si... tal cual.
>
> >> > > Entre las cosas que hoy le pediría a un VM es en que aumenten los
> >> límites en cantidad de objetos, que soporten 64 bits
>
> >> > No es por ser pretencioso, pero VisualWorks tiene VMs de 64 bits para
> >> > Linux en x86, Solaris en x86, y Solaris en SPARC.  Trabajamos mucho
> >> > con las VMs y las imagenes de 64 bits en este tiempo, y las versiones
> >> > que estan a punto de salir son muchisimo mejores que lo que teniamos
> >> > hace unos años (esto no lo digo yo o nosotros (Cincom)... lo puso por
> >> > escrito gente de GemStone en la lista de VisualWorks acerca de 7.7).
>
> >> > Tambien estamos trabajando en un port a Windows 64 bits.  Esto ultimo
> >> > es mas dificil de lo que parece.  Por ejemplo, al contrario de mas o
> >> > menos todo el mundo, en Windows de 64 bits un long tiene 32 bits.  Asi
> >> > que si, digamos, tenes codigo multiplataforma que habla de longs todo
> >> > el tiempo porque hasta ahora siempre (la VM de VisualWorks tiene cerca
> >> > de 30 años encima) en 64 bits un long tenia 64 bits, y en 32 bits un
> >> > long tenia 32 bits... hmmm...
> >> Si, puedo imaginar a VW y Gemstone muy bien armados en todo eso, en mi
> >> caso uso Dolphin o Squeak por motivos comerciales.
>
> >> > > y algo que siempre quisiera tener es mucho mas control sobre el method
> >> lookup, que a mi entender es la principal limitación de Smalltalk.
>
> >> > Podrias contar mas de esto?  Donde le ves la limitacion?  Que te
> >> > gustaria que hubiera pero no hay?
>
> >> Cuando envío un mensaje a un objeto, este busca en la clase,
> >> superclases, etc. y ejectua el método. Toda esta convención es
> >> invariable y define, sin posibilidad de modificar nada, cosas muy
> >> importantes como la herencia y otras yerbas. Esta convención nos
> >> parece bien a todos porque nos parece bien que si mando el mensaje
> >> #print se ejecute el método #print, y también nos parece bien a todos
> >> utilizar herencia simple, y también a casi todos nos parecen bien las
> >> clases, metaclases y todo lo que defendemos desde la practicidad. Sin
> >> embargo, no poder modificar esta convención, trae mas limitaciones de
> >> las que generalmente pensamos (porque nos acostumbramos y nos gusta la
> >> convención) y usualmente resolvemos de manera sucia y limitada. Son
> >> conocidos los casos no muy bien resueltos con herencia simple (como la
> >> jerarquia de Stream), son conocidos los trucos de usar #dnu para
> >> activar métodos que no están presentes en la clase del receptor (como
> >> en los proxies) y personalmente me molesta que esté conceptualmente
> >> tan acoplado el método con el mensaje, dos cosas muy distintas. Una
> >> solución que me suena factible, y tal vez compleja de implementar
> >> decentemente, sería que el methodLookup estuviera implementado en
> >> Smalltalk, en Object supongo. La implementación default podría ser una
> >> primitiva que hiciera lo mismo que esperamos hoy en día, pero que al
> >> modificarla en subclases nos abriera un campo de posibilidades muy
> >> amplias y muy peligrosas (tan peligrosas como cualquier otra de
> >> Smalltalk). Sería trivial implementar proxies, hacer delegaciones mas
> >> sofisticadas y generar diseños hoy imposibles, de manera muy clara.
> >> Por ejemplo, hoy es común ver que los proxies para persistencia en
> >> bases de datos, o para sistemas distribuidos se hacen heredando de
> >> ProtoObject, o de clases con pocos métodos, cosa que ya es sucia de
> >> entrada, luego se agregan #dnu que son mas sucios. No sería mas
> >> adecuado que la clase de un proxy fuera el misma que la del subject?
> >> al menos parecida?, de esta manera se podrían delegar en el subject la
> >> resolución de algunos métodos y en el proxy la resolución de otros,
> >> podría incluso haber cooperación entre estos objetos. Esto es largo de
> >> explicar, pero creo qeu se podría resolver mucho, programando poco,
> >> mas claro y simple de debuggear. Otro ejemplo sería la herencia
> >> múltiple, quedaría de una manera muy prolija, porque se podría acotar
> >> a una parte muy pequeña del sistema, no estaría condicionada por otra
> >> convención (como en c++), no tendría porqué tener que limitarse a
> >> clases, podría ser entre objetos (como en la herencia de prototipos
> >> que usaba en el NewtonScript de Apple). Es mas el polimorfismo se
> >> ampliaría porque un objecto podría resolver mensajes que hoy no
> >> entendería. Creo que también desaparecerían los intentos de solucionar
> >> estos problemas mediante traits o cosas similares. Todo esto, tal vez
> >> genere mas incertidumbre, pero creo que sería muy interesante TENERLO,
> >> ir usándolo con mucho cuidado, y posiblemente aparezcan patterns que
> >> mejoren sustancialmente las recetas actuales. Entiendo, no estoy
> >> seguro, que las primeras versiones de la VM de Smalltalk tenían algo
> >> similar y que luego se descartó por temas de perfomance, supongo que
> >> 35 años mas tarde se podría tratar de resolver ese "problemita".
>
> >> Saludos
>
> >> Diego Coronel
>
> >> > Andres.
>
> >> > 2010/7/26 [hidden email] <[hidden email]>:
>
> >> > > Coincido con Gerardo, muy bueno el correo de Andrés, muchas gracias.
> >> > > Sería bueno que alguna vez alguien documentara o publicara algo acerca
> >> > > de VMs de calidad, hay poca gente que lo podría hacer bien,  y ese
> >> > > material aportaría a la continuidad de Smalltalk como plataforma a
> >> > > largo plazo. Todo smalltalker alguna vez tiene su época de querer
> >> > > hacerse la VM, yo la pasé y si me distraigo un poco supongo que
> >> > > volveré a lo mismo, es como recurrente el tema. Coincido en que hacer
> >> > > algo que ande es relativamente sencillo y hacer algo que ande bien es
> >> > > extremadamente complejo. Además la problemática a resolver tiene poco
> >> > > que ver con Smalltalk (lo cual no lo hace menos divertido). Me parecen
> >> > > válidos todos los enfoques, desde los que arrancan del assembler mas
> >> > > crudo hasta los que se suben arriba de otra VM o lenguaje de alto
> >> > > nivel, cada uno en su lugar y contexto no deja de ser interesante.
> >> > > Entre las cosas que hoy le pediría a un VM es en que aumenten los
> >> > > límites en cantidad de objetos, que soporten 64 bits y algo que
> >> > > siempre quisiera tener es mucho mas control sobre el method lookup,
> >> > > que a mi entender es la principal limitación de Smalltalk.
>
> >> > > Pero insisto en que sería bueno, que quienes saben del tema, alguna
> >> > > vez publiquen y/o hagan docencia sobre el tema, al menos a modo de
> >> > > memorias antes de retirarse. Creo que muchos pagaríamos gustosos un
> >> > > libro sobre eso, porque nos ahorraría tiempo en lo que igual queremos
> >> > > o vamos a hacer. Y además, difundir esto podría tener un efecto
> >> > > positivo y podría originar la aparición de mas alternativas que las
> >> > > que existen hoy, que son pocas.
>
> >> > > Saludos y gracias por la información.
>
> >> > > Diego Coronel
>
> >> > > On Jul 26, 2:41 pm, Gerardo Richarte <[hidden email]> wrote:
> >> > >> excelente andres!!!
>
> >> > >> espero que todo esto tambi n lo tengas en formato powerpoint :)
>
> >> > >> ya sab s que a unos cuantos nos interesa, ponele una tonelada de
> >> > >> detalles t cnicos, y agregale una pizca de rant tambi n :)
> >> > >> listo! receta perfecta :)
>
> >> > >>     en un rato vuelvo a leer el mail y mando algunas preguntas tambi
> >> n
>
> >> > >>     saludos!
>
> >> > > --
> >> > > To post to this group, send email to [hidden email]
> >> > > To unsubscribe from this group, send email to
>
> ...
>
> read more »- Hide quoted text -
>
> - Show quoted text -

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

http://www.clubSmalltalk.org



--
Hernán Wilkinson
Agile Software Development, Teaching & Coaching
Mobile: +54 - 11 - 4470 - 7207
email: [hidden email]
site: http://www.10Pines.com

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: RV: DNG-Win32 Bit VM

Gerardo Richarte
In reply to this post by Angel "Java" Lopez
vengo      con el mail, perdón!

On 07/26/2010 05:28 PM, Angel "Java" Lopez wrote:
> Gerardo (creo que nos habremos cruzado en alguna reunión de Sugar en Buenos
> Aires, en 1997), gracias por el comentario. Hmmm, algunas aclaraciones:
>  
Sip, me acuerdo perfectamente, sos el que tiene "java" en el nombre en
las listas de Smalltalk, jue :) (y suficiente coraje como para bancársela!)
> - Mi pet project [1] es un interprete,
>  
Interesantísimo la verdad, un aproach totalmente distinto a, erm, otro
experimento que presentaremos en la Smalltalks este año, que aunque
quizás deje algunas cosas afuera, permite enseguida experimentar con
algunas otras que de otra forma tardan mucho en llegar (como las que vos
dijiste). Contanos como sigue cada tanto!

    Solo un comentario, que no estoy de acuerdo que no implementes
primitivas, como decis, si no que tus primitivas, como siempre, se
implementan en el lenguaje de abajo (que en este caso es .NET por
ejemplo), creo que también son primitivas, uhm... con la salvedad que es
más fácil hacerlas, y consecuentemente, más fácil tentarse a ir
agregando demasiadas :)

    saludos!

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

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: RV: DNG-Win32 Bit VM

Gerardo Richarte
In reply to this post by dcoronel32@gmail.com
On 07/27/2010 05:32 PM, [hidden email] wrote:
> Hola Andrés
> Contesto entre líneas...
>  
yo no, solo por esta vez :)
> Cuando envío un mensaje a un objeto, este busca en la clase,
> superclases, etc. y ejectua el método.
>  
pegale una mirada a Visual Smalltalk, desde siempre tuvo algo que
permite cambiar
un poco la semántica del message send (del lookup) desde Smalltalk.

Básicamente, el lookup no se hace por clases y jerarquías, si no que
*cada objeto* tiene algo así como un array con los diccionarios donde se
hace el lookup. El orden de los diccionarios es el orden del lookup.
Obviamente por default este array esta armado según la jerarquía de la
clase del objeto, y es compartido el mismo por todos los objetos de la
misma clase, pero esto no tiene por que ser así.

Y de esta forma se pueden usar métodos de instancia (y se usan en
sistemas comerciales), se puede implementar fácilmente cosas como
traits, hernecia múltiple, etc. Lo único que no se puede hacer es
cambiar que el matching de los métodos se haga por el selector, para eso
hay que caer en el doesNotUnderstand:

    saludos!

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

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: RV: DNG-Win32 Bit VM

Gerardo Richarte
In reply to this post by Hernan Wilkinson-3
On 08/02/2010 11:08 AM, Hernan Wilkinson wrote:
> Se implementó. Para ello modificamos el header de todos los objetos y
> le agregamos una word para que referencie al objeto que reificaba el
> method lookup. Por default utilizaba el method lookup definido en la
> clase del objeto que por default era el method lookup que todos
> conocemos :-)
interesantísimo!
me imagino que esto fue en Squeak, no?
te acordás como era el truco para llamar a Smalltalk desde el momento
del lookup? es posible hacer callbacks en cualquier momento? o pausaban
el proceso que estaba por hacer el send-con-lookup-raro, despertaban
otro proceso que hacie el lookup adentro, y después volvian al proceso
pausado?

    saludos!

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

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: RV: DNG-Win32 Bit VM

Andres Valloud-5
In reply to this post by Gerardo Richarte
En otros Smalltalks, *cada objeto* tiene un puntero a su clase
(excepto los inmediatos como los caracteres, small integers y small
doubles).  Es lo mismo en lo que al puntero respecta, salvo que en VSE
el puntero es a una cosa que no es una clase.  En otros Smalltalks,
superficialmente, nada impide hacer clases fantasma que cambien los
mensajes a los que responde un objeto, o que hagan que la herencia
pase por clases tuyas antes etc.  Sin embargo, es de andar pidiendo
que se te cuelgue la imagen.  De cualquier modo es medio un garron.

A primera vista parece que el enfoque de VSE tiene que ser obviamente
superior, pero seguramente debe haber algun costo u otra cosa que se
complica al tener que andar escarbando entre los arrays de method
dictionaries para encontrar la clase del objeto... por ejemplo,
probablemente para VSE sea bueno tener acceso mas rapido a los method
dictionaries porque no tiene PICs.  Si tuviera PICs, los lookups
serian mucho menos frecuentes y entonces no importaria tanto tener la
doble indireccion a traves de la clase para encontrar el method
dictionary.  Que se yo, no me parece que sea tan facil.

2010/8/7 Gerardo Richarte <[hidden email]>:

> On 07/27/2010 05:32 PM, [hidden email] wrote:
>> Hola Andrés
>> Contesto entre líneas...
>>
> yo no, solo por esta vez :)
>> Cuando envío un mensaje a un objeto, este busca en la clase,
>> superclases, etc. y ejectua el método.
>>
> pegale una mirada a Visual Smalltalk, desde siempre tuvo algo que
> permite cambiar
> un poco la semántica del message send (del lookup) desde Smalltalk.
>
> Básicamente, el lookup no se hace por clases y jerarquías, si no que
> *cada objeto* tiene algo así como un array con los diccionarios donde se
> hace el lookup. El orden de los diccionarios es el orden del lookup.
> Obviamente por default este array esta armado según la jerarquía de la
> clase del objeto, y es compartido el mismo por todos los objetos de la
> misma clase, pero esto no tiene por que ser así.
>
> Y de esta forma se pueden usar métodos de instancia (y se usan en
> sistemas comerciales), se puede implementar fácilmente cosas como
> traits, hernecia múltiple, etc. Lo único que no se puede hacer es
> cambiar que el matching de los métodos se haga por el selector, para eso
> hay que caer en el doesNotUnderstand:
>
>    saludos!
>
> --
> To post to this group, send email to [hidden email]
> To unsubscribe from this group, send email to [hidden email]
>
> http://www.clubSmalltalk.org

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

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

RE: RV: DNG-Win32 Bit VM

Angel "Java" Lopez
In reply to this post by Gerardo Richarte
Hola gente!

Gracias, Gerardo, por tu interés en el proyecto. Interesante, van a
presentar en este año? Algún adelanto?

Yo puede que presente eso que estoy haciendo. Veo si llego a tener algo
presentable.

Ah! Con respecto a las primitivas, a ver: tengo bytecodes (que podría
considerar las primitivas básicas). Tuve tentado a no tener bytecodes y
seguir un patrón interpreter (un árbol de nodos a ir ejecutando), pero me
pareció ya demasiado radical con todo lo que estoy haciendo. Veré si algún
día vuelvo a esa idea.

A lo que voy, que no voy a escribir algo de soporte para cosas como:

<# primitive 50 >  (no recuerdo la notación de Smalltalk ahora)

En el medio del código de un método. La idea es que si alguien quiere algo
mas, puede poner

@System.IO.Directory !exists: 'MiDirectorio'

Es decir, invocar métodos de cualquier librería .NET que este cargada. (El !
avisa que es un método nativo).

Si alguien implementa, digamos, números complejos en AjTalk (el "Smalltalk
de arriba"), lo puede hacer. Pero si luego quiere implementarlo en clases
nativas (.NET, el "underlying" language), lo puede hacer.

En estos días estoy agregando cosas como (escribo de memoria, disculpen si
yerro en la notación)

Collection subclass: #List
     nativeType: 'System.Collections.ArrayList'

Entonces, List new, en vez de devolver un objeto AjTalk, devuelve un new
ArrayList() nativo. Self es directamente ese objeto. La clase List de
arriba, sigue siendo una clase normal de Smalltalk, con diccionario de
métodos y tutti li fiocci, pero cambia el behavior de new. Permite escribir
un método como

add: element
   self !add: element


Es decir, puedo poner métodos en AjTalk, sobre objetos nativos.

Con todo esto de arriba, creo que "zafo" de poner <# primitive 50 > y esas
cosas. La extensión esta directamente en acceder al underlying language. Por
ejemplo, Clojure (Lisp y mucho mas, concurrencia, estructuras persistentes,
software transactional memory, en Java y en CLR) es asi: tiene un nucleo de
special forms "hardcodeadas", y luego, el programador de Clojure puede ir
construyendo nuevas formas y macros, y ahí acceder con una notación especial
a métodos en Java. Con eso, el ecosistema de Clojure ha crecido (heredado)
todo lo que ya hay hecho en Java, y a mucha gente le gusto: tiene un
lenguaje dinamico, funcional, arriba, y aprovecha librerías de acceso a
datos, graficos 3D, sockets, web, etc.... que ya viene, o la mejora en Java,
o la reescribe en Clojure, a gusto y piaccere. Lo bueno de Clojure, que
también compila, no es solo interprete. Como mencione, no creo que "me de el
cuero" para hacer eso con mi proyecto, pero si lo hiciera, un camino a
seguir es http://dlr.codeplex.com

Volviendo a AjTalk, podría crear ventanas, botones .NET desde métodos en
AjTalk. Podria implementar clases Form, Button, etc... que sean wrappers
sobre los nativos (es decir, tengan una variable de instancia que apunte al
objeto real) o que sean realmente el nativo (que self ya sea una referencia
al nativo). Me falta implementar listeners de eventos: la idea es poner como
listener a un bloque con variables tipo button onClick: [ :sender
:eventparameter | .....]  o anyobj addHandler: [....] for: 'CancelEvent'

No entendí que es "callback" en Smalltalk, es parecido a eso? Supongo que
eso de listener de eventos debe ser lo que tengo que implementar para
completar la integración con el underlying language (siempre con el objetivo
de diseño que es que puedo cambiar todo a Java en cualquier momento).

Todo BitBlt, Form, Pen, etc.. podría mapearlo al namespace de .NET que se
ocupa de eso (System.Graphics?) Aunque no creo que intente eso, por ahora.

Ah! No hizo falta coraje para poner Java, aca en esta lista no me hicieron
problema nunca, creo. Me tratan bien! ;-)

Nos leemos!

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



-----Mensaje original-----
De: [hidden email] [mailto:[hidden email]]
En nombre de Gerardo Richarte
Enviado el: Sunday, August 08, 2010 3:14 AM
Para: [hidden email]
Asunto: Re: [clubSmalltalk] RV: DNG-Win32 Bit VM

vengo      con el mail, perdón!

On 07/26/2010 05:28 PM, Angel "Java" Lopez wrote:
> Gerardo (creo que nos habremos cruzado en alguna reunión de Sugar en
Buenos
> Aires, en 1997), gracias por el comentario. Hmmm, algunas aclaraciones:
>  
Sip, me acuerdo perfectamente, sos el que tiene "java" en el nombre en
las listas de Smalltalk, jue :) (y suficiente coraje como para bancársela!)
> - Mi pet project [1] es un interprete,
>  
Interesantísimo la verdad, un aproach totalmente distinto a, erm, otro
experimento que presentaremos en la Smalltalks este año, que aunque
quizás deje algunas cosas afuera, permite enseguida experimentar con
algunas otras que de otra forma tardan mucho en llegar (como las que vos
dijiste). Contanos como sigue cada tanto!

    Solo un comentario, que no estoy de acuerdo que no implementes
primitivas, como decis, si no que tus primitivas, como siempre, se
implementan en el lenguaje de abajo (que en este caso es .NET por
ejemplo), creo que también son primitivas, uhm... con la salvedad que es
más fácil hacerlas, y consecuentemente, más fácil tentarse a ir
agregando demasiadas :)

    saludos!

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

http://www.clubSmalltalk.org

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

http://www.clubSmalltalk.org
1234