jueves, 18 de septiembre de 2008

Smalltalks 2008 - Novedades

Por si no se enteraron por otro medio, ya está disponible en el sitio de Smalltalks 2008 la registración para charlas y tutorials! No dejen de presentar sus ideas!.  Ah, la fecha tope se movió al 13 de Octubre, así tienen dos semanas más para pensar.... y no se olviden del concurso... tenemos a varios craniotecas pensando y trabajando en el mismo :-)
Acá está el mail con el anuncio:
-----------------------------
Por medio del presente mail queremos informarles las novedades de la
conferencia:

1. Se encuentra habilitado el envío de propuestas de charlas en
http://neuquina.lifia.info.unlp.edu.ar:8001/Smalltalks-2008 sección
"Charlas". Aquí se podrán presentar distintos tipos de trabajos, ya
sea de industria, investigación o educación. La fecha tope para enviar
es el 13 de Octubre.

2. Se encuentra habilitado el envío de propuestas de tutorials en
http://neuquina.lifia.info.unlp.edu.ar:8001/Smalltalks-2008 sección
"Tutorials". La fecha tope para enviar es el 13 de Octubre.

3. Asimismo les recordamos que el 1ro de Octubre publicaremos el
enunciado del concurso de programación. Para mas información ver la
sección del "Concurso de Programación" en
http://neuquina.lifia.info.unlp.edu.ar:8001/Smalltalks-2008

Esperamos verlos a todos en la conferencia!
Comité Organizador de Smalltalks 2008.

OOPSLA 2008 - 50 años de Lisp

Ya escribí sobre este tema en otro post, pero ya se está formalizando. Miren este mail sino:
Lisp50@OOPSLA
...celebrating the 50th birthday of Lisp at OOPSLA 2008

Monday, October 20, 2008
Nashville, Tennessee, USA
co-located with OOPSLA 2008
participation is free for all OOPSLA participants
registration for at least one conference day at OOPSLA is required

URL: http:www.lisp50.org
Feed: http://lisp50.blogspot.com


Invited Speakers

+ William Clinger, Northeastern University, USA
+ Pascal Costanza, Vrije Universiteit Brussel, Belgium
+ Richard Gabriel, IBM Research, USA
+ Rich Hickey, Independent Consultant, USA
+ Alan Kay, Viewpoints Research Institute, USA
+ Fritz Kunze, USA
+ Ora Lassila, Nokia Research Center, USA
+ John McCarthy, USA
+ Kent Pitman, PTC, USA
+ Guy Steele, Sun Microsystems Laboratories, USA
+ Herbert Stoyan, University of Erlangen, Germany
+ Warren Teitelman, Google Inc., USA
+ JonL White, USA

Titles, abstracts, biographies and schedule will be announced at the
Lisp50 webpage and blog in the coming days and weeks.


Abstract

In October 1958, John McCarthy published one in a series of reports about
his then ongoing effort for designing a new programming language that
would be especially suited for achieving artificial intelligence. That
report was the first one to use the name LISP for this new programming
language. 50 years later, Lisp is still in use. This year we are
celebrating Lisp's 50th birthday. OOPSLA 2008 is an excellent venue for
such a celebration, because object-oriented programming benefited heavily
from Lisp ideas and because OOPSLA 2008 takes place in October, exactly
50 years after the name Lisp has been used publicly for the first time.
We will have talks by John McCarthy himself, and numerous other
influential Lispers from the past five decades. We will also take a look
at the next 50 years of Lisp.


Organizers

+ Pascal Costanza, Vrije Universiteit Brussel, Belgium
+ Richard Gabriel, IBM Research, Hawthorne, NY, USA
+ Robert Hirschfeld, Hasso-Plattner-Institut, Potsdam, Germany
+ Guy Steele, Sun Microsystems Laboratories, Burlington, MA, USA

Sponsored by ACM SIGPLAN

Supported by
+ IBM Research
+ LispWorks Ltd
+ Franz Inc.
+ Clozure Associates

viernes, 12 de septiembre de 2008

Presentación de Tesis Licenciatura - Tema: Refactoring de Traits

Seguramente también se hayan enterado de este evento, pero de la misma manera que con la charla, me parece importante publicarlo acá. La realidad es que estoy muy contento con el avance que estoy teniendo con el grupo de tesistas de la UBA. Estamos haciendo trabajos muy interesante.... bue, en realidad ellos están trabajando mucho, yo solo puse las ideas iniciales y de vez en cuando nos reunimos, pero la verdad que estar trabajando con gente motivada, autónoma y con espíritu de investigación es muy reconfortante. Lástima que tenga tan poco tiempo para dedicarles... si le dedicase más tiempo creo que ni mi perro me reconocería!.
En particular,Alejandro ha hecho un trabajo excepcional con esta investigación y la ha presentado en Smalltalks 2007 cuando aún estaba trabajando en ella. Esta presentación será aún mejor, se los puedo asegurar, si tienen la oportunidad de venir no se van a arrepentir. De vuelta, es un trabajo muy interesante y Alejandro ha trabajado muy bien y con mucha fuerza. Además tendremos un jurado de lujo! Máximo Prieto y Gabriela Arévalo! ¿Qué más se puede pedir?
También me emociona pensar que otros grupos estarán exponiendo para fin de este año si Dios quiere, o principo del que viene, uno también sobre traits y otro sobre ambientes de enseñanza con objetos, así que estén atentos!
Ahora les transcribo el mail que mandé invitando a la presentación de tesis:
-----------------------------
Que tal, 
 el miércoles 17 de Septiembre a las 10 hrs. (aula a determinar), Alejandro Gonzalez presentará su trabajo de Tesis de Licenciatura que trata sobre el estudio e implementación de "Refactorings para Traits".
 El mismo se basó en realizar cambios a jerarquías de clases existentes utilizando un nuevo elemento de representación de conocimiento denominado Trait (o Rasgo en castellano). Al ir realizando estos cambios se tomó nota de aquellos procesos comunes que pudiesen ser creados como Refactorings, para luego implementarlos como tal.
 El trabajo se realizó con Squeak (una implementación open source de Smalltalk) y se amplió la funcionalidad del Refactoring Browser. El mismo se encuentra disponible para ser utilizado en SqueakSource.

 Esta es la primer presentación de un conjunto de tesis que tratan sobre la utilización de Traits en ambientes de objetos que utilizan clasificación como metodología de representación de conocimiento. El resto de los trabajos se irán presentando en los próximos meses.
 El jurado estará compuesto por Máximo Prieto, Gabriela Arévalo 
 Director: Hernán Wilkinson

 A continuación se adjunta un resumen:
---
Traits es un nuevo concepto para estructurar programas orientados a objetos.
Este concepto, permite que el comportamiento total de una clase pueda ser construido
composicionalmente a partir de pequeños rasgos de comportamientos llamados traits.

Traits complementa a la herencia simple y es por esto,
que su inclusión conlleva la necesidad de querer refactorizar nuestros diseños,
ya que con ellos ahora se pueden resolver cuestiones antes no resueltas, o mal resueltas, por la herencia.
En particular, aquellas jerarquías cuestionadas por hacer un fuerte uso de la herencia
como único mecanismo para compartir comportamiento, son las que se convierten en candidatas a ser refactorizadas con traits.
Pero estas refactorizaciones no pueden ser realizadas eficientemente sin la asistencia de una herramienta apropiada.

Muchos ambientes de desarrollo incluyen herramientas para refactorizar código.
Éstas soportan, a menudo, refactorings típicos que pueden realizarse en forma semi-automática,
como por ejemplo Push up method y Rename method.
El problema es que, éstas operan sobre conceptos conocidos del paradigma:
jerarquía de clases, métodos, variables de instancia, etc.
Actualmente, ninguna brinda soporte para la refactorización con este nuevo concepto, traits.

En este trabajo se investigan, tanto desde un punto de vista conceptual como implementativo, nuevos refactorings para traits.
El resultado es un nuevo conjunto de operaciones de refactorings que,
inicialmente surgieron de ideas básicas y operaciones típicas al programar con traits,
pero que luego fueron refinándose a medida que las comenzamos a utilizar para realizar diferentes refactorizaciones.

Estos nuevos refactorings se implementaron en Squeak, un dialecto open-source de Smalltalk,
dado que éste es el único ambiente que incluye una implementación sólida de ambos,
el nuevo concepto de traits y una herramienta de refactorings conocida como refactoring browser.

Charla sobre Smalltalk/X y Model Base Testing

Seguramente ya se entereron de esta charla por las listas de mails de Smalltalk, la facultad, etc. Sin embargo me parecía útil comunicarla acá también. Les transcribo el mail que envié sobre la misma:
--------
Que tal,
 el comité organizador de "Smalltalks 2008" tiene el agrado de anunciar la charla que dará Claus Gittinger, co-fundador de eXept Software AG y creador de Smalltalk/X el viernes 19 de Septiembre, a las 19 hrs. en Ciudad Universitaria (los detalle del aula serán dados más adelante).
 La misma será una exposición técnica sobre la implementación de Smalltalk/X en primera instancia, para luego incursionar en el tema de "Model Base Testing" en donde mostrará un ejemplo real de uso utilizando la herramienta denominada "Expecco", la cual fue desarrollada por eXept justamente con Smalltalk/X

 Para más información sobre eXept y Smalltalk/X pueden visitar: http://www.exept.de/en/home
 Para más información sobre "Model Base Testing" y Expecco, pueden visitar: http://www.exept.de/en/products/expecco
 Para más información sobre "Smalltalks 2008" pueden visitar: http://neuquina.lifia.info.unlp.edu.ar:8001/Smalltalks-2008

 A continuación se detalla el profile de Claus Gittinger:
 Claus Gittinger has a 22-year background as a software architect for object oriented software. He is
the creator of the Smalltalk/X programming system.
 As a co-founder of eXept Software AG he was defining and supervising development and testing
processes with various customers in telecommunication-, factory automization and automotive
projects.
 He is responsible for strategic product planning and the further development of the eXept's expecco
quality management and test automation tool.
 He is part-time teaching computer science at the Hochschule der Medien in Stuttgart.

 Los esperamos!
 Saludos,
 Hernán Wilkinson.

miércoles, 10 de septiembre de 2008

Clojure - On state and Identity

Este paper sobre el lenguaje Clojure me pareció muy interesante. Está muy clara la problemática de los lenguajes actuales (tanto procedurales como funcionales como de objetos) y provee una solución implementativa muy interesante. 
Lo que me parece más intersante de la solución que propone es que es fácilmente ampliable para mantener la historia de los objetos y así no tener más la limitación de que los sistemas reflejen sólo un snapshot de la realidad. 
Hacer que un lenguaje de objetos soporte la historia de los mismos es un lindo tema de tesis que tengo pendiente. Imaginensé si a ese lenguaje le agregamos persistencia automática en una base relacional (puesto que la gente aún se asusta de las bases de objetos), ¿no tendríamos el COBOL del siglo XXI? :-)

V8 - La Virtual Machine de JavaScript de Google

Como todos deben estar al tanto, Google sacó un nuevo Browser llamado Chrone que incluye la VM de JavaScript más rápida hasta ahora (http://code.google.com/p/v8/)
Lo interesante de esta VM es que fue hecha por gente que trabajó en la VM de Self y de Strongtalk, ambas VMs famosas por sus aportes a la materia en cuestión. 
En particular Self aportó mucho sobre como mejorar la performance en el algoritmo de method lookup, implementando algo que se llama PIC (polimorphic inline cache), utilizado actualmente en la VM de VisualWorks por ejemplo. V8 utiliza una versión simplificada de PIC que es IC (inline cache únicamente). La técnica de PIC también fue utlizada por Strontalk, la VM de Smalltalk más rápida hasta ahora (aunque no realiza garbage collection...).
En fin, me parece que desde el punto de vista técnico es muy interesante leer sobre como funciona esta VM, ver cómo está implementada puesto que el código es open source, etc. Y desde el punto de vista de marketing, es muy bueno tener uno de los grander players apostando en un lenguaje dinámico, lástima que sea JavaScript. Sin embargo lo bueno es que en la página de V8 se hace referencia a Self y Smalltalk, lo cual no es poco.