Yo no lo vi implementado, aunque alguien me dijo alguna vez que
Smalltalk 74 era asi, y coincido en que estas cosas hay que probarlas,
tal vez durante un largo tiempo, de hecho llevó mucho tiempo darse
cuenta de los problemas de la herencia mútiple. En C++ ni siquiera hay
mensajes, yo diría que son llamadas a métodos. Además el punto es
que la delegación sea dinámica, no bastaría con hacer una
delegación arbitraria pero estática, o sea que de antemano se sepa a
quién se va a delegar.

DIego

On Nov 6, 6:45 pm, "Guillermo Schwarz" <[EMAIL PROTECTED]>
wrote:
> ¿Pero eso está implementado en alguna parte?
>
> No es por ser abogado del diablo, pero creo que habría que partir por un
> prototipo, por ejemplo en Squeak, para ver si efectivamente tiene buen
> desempeño o sólo es wishful thinking...
>
> ¿Es idea mía o eso de delegar a cualquier otro método de cualquier otra
> clase ya está implementado en C#?
>
> Saludos,
> Guillermo.
>
> On 11/6/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
> > Guillermo,
> > No es que tenga que ser una cosa o la otra, si la resolución de los
> > mensajes fuese algo flexible y no prefijado en la VM entonces esas
> > técnicas que nombras serían solo patterns. Esto es bueno porque no
> > hay que bancárselo en todo el sistema como una regla general, pero
> > principalmente porque aparecerían muchas alternativas mas. Suponer que
> > la herencia mútiple o los traits son buenos o malos es una
> > consecuencia de la limitación que recalco.
> > Saludos,
> > Diego
>
> > On Nov 5, 7:11 pm, "Guillermo Schwarz" <[EMAIL PROTECTED]>
> > wrote:
> > > Me parece limpia la implementación de proxies usando #doesNotUnderstand.
>
> > > En Java existe lo mismo usando la interfaz InvocationHandler, pero el
> > > usuario debe definir una interfaz para cada clase que desea proxear, el
> > paso
> > > de parámetros y la instanciación son sintáticamente difíciles de
> > entender
> > > (en promedio les toma entre 3 meses y 1 año entenderlo).
>
> > > No entiendo la ventaja de que todas las clases estuvieran
> > automáticamente
> > > proxiadas. ¿Sería para evitarse en #doesNotUnderstand? Creo que es muy
> > > limpio que sólo se deba implementar un único método, además es mucho más
> > > eficiente que sólo se porxee las clases que lo necesitan.
>
> > > Por otro lado ¡qué tienen de malo los traits?
>
> > > On 11/4/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
> > > > Cuando queremos que un objeto responda a mensajes que no están en su
> > > > protocolo, implementamos el método #doesNotUnderstand: (dnu) y ahi
> > > > agregamos comportamiento. Eso es típico en proxies. IMHO esto se
> > > > vería muy mejorado si todos los mensajes del sistemas pasaran por un
> > > > dispatcher previo, que no solo hiciera evitar este truco del dnu, sino
> > > > que también pudiera delegar la resolución del mensaje a cualquier
> > > > otro método de cualquier otra clase.
> > > > Ni mixins, ni traits, ni herencia mútiple a la C++ me convencieron
> > > > nunca. Comparto la idea de que el problema existe y que jerarquías
> > > > como Stream lo demuestran, pero creo que la solución es mas simple que
> > > > las sofisticaciones que se proponen. Simplemente sacando esta
> > > > funcionalidad de la VM tendríamos todo sin alterar la esencia del
> > > > ambiente. En la soluciones tradicionales a este problema se tiende a
> > > > hacer mas complejo el lookup, en cambio creo que habría que
> > > > orientarnos a desacoplar mas el mensaje del método, los objetos
> > > > deberían contestar mas seguido a mensajes que no son parte de su
> > > > protocolo.
>
> > > > Saludos,
> > > > Diego
>
> > > > On Nov 3, 7:06 pm, "Guillermo Schwarz" <[EMAIL PROTECTED]>
> > > > wrote:
> > > > > ¿Qué es dnu?
>
> > > > > No conozco un lenguaje OO que implemente bien la herencia múltiple.
> > Ni
> > > > C++
> > > > > ni Eifel caen en esa categoría.
>
> > > > > Para implementar alternativas a la herencia múltiple en Smalltalk
> > > > existen:
>
> > > > > 1. Los mixins.
> > > > > 2. Los traits.
>
> > > > > Hasta donde he visto los mixins no funcionan tan bien como los
> > traits.
>
> > > > > Saludos,
> > > > > Guillermo.
>
> > > > > On 11/3/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
> > > > > > El hecho de que #lookup no esté implementado fuera de la VM es una
> > da
> > > > > > las grandes falencias de Smalltalk a mi entender. Si eso fuera asi
> > > > > > tendríamos herencia mútiple (mas sofisticada), no haríamos abuso
> > de
> > > > > > dnu, no usaríamos proto-objects para hacer proxies, los proxies
> > > > > > podrían ser mas sofisticados, bajaríamos la cantidad de argumentos
> > en
> > > > > > muchos métodos y principalmente habría muchas mas opciones de
> > diseño
> > > > > > que hoy no existen por esa fuerte y prohibitiva relación entre
> > > > > > mensajes y métodos. Hay buenas razones relacionadas con los
> > actuales
> > > > > > diseños de VMs para que eso no sea como quisiera, supongo que
> > habría
> > > > > > que modificar muy a fondo las cosas para repararlo.
>
> > > > > > Diego- Hide quoted text -- Show quoted text -- Hide quoted text --
> > Show quoted text -- Hide quoted text -- Show quoted text -


--~--~---------~--~----~------------~-------~--~----~
  Ha recibido este mensaje porque está 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íe un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups-beta.google.com/group/clubSmalltalk?hl=es.

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

Responder a