Las 5 características de Smalltalk

Cuando me inicié trabajando en Java, leí un fragmento del libro "Thinking in Java" (TIJ) de Bruce Eckel que me gustó ya que también empezaba a programar con objetos:

Alan Kay resumió las cinco características básicas de Smalltalk, el primer lenguaje de programación orientado a objetos que tuvo éxito, además de uno de los lenguajes en los que se basa Java. Estas características constituyen un enfoque puro a la programación orientada a objetos:

1) Todo es un objeto. Piense en cualquier objeto como una variable: almacena datos, permite
que se le "hagan peticiones", pidiéndole que desempeñe por sí mismo determinadas operaciones, etc. En teoría, puede acogerse cualquier componente conceptual del problema a resolver (bien sean perros, edificios, servicios, etc.) y representarlos como objetos dentro de un programa.

2) Un programa es un cúmulo de objetos que se dicen entre sí lo que tienen que hacer mediante el envío de mensajes. Para hacer una petición a un objeto, basta con "enviarle un mensaje". Más concretamente, puede considerarse que un mensaje en sí es una petición para solicitar una llamada a una función que pertenece a un objeto en particular.

3) Cada objeto tiene su propia memoria, constituida por otros objetos. Dicho de otra manera, uno crea una nueva clase de objeto construyendo un paquete que contiene objetos ya
existentes. Por consiguiente, uno puede incrementar la complejidad de un programa, ocultándola tras la simplicidad de los propios objetos.

4) Todo objeto es de algún tipo. Cada objeto es un elemento de una clase, entendiendo por "clase" un sinónimo de "tipo". La característica más relevante de una clase la constituyen "el conjunto de mensajes que se le pueden enviar".

5) Todos los objetos de determinado tipo pueden recibir los mismos mensajes. Ésta es una afirmación de enorme trascendencia como se verá más tarde. Dado que un objeto de tipo "círculo" es también un objeto de tipo "polígono", se garantiza que todos los objetos "círculo" acepten mensajes propios de "polígono". Esto permite la escritura de código que haga referencia a polígonos, y que de manera automática pueda manejar cualquier elemento que encaje con la descripción de "polígono". Esta capacidad de suplantación es uno de los conceptos más potentes de la POO.


Sin embargo, Alan Kay se habrá sentido traicionado por java, ya que una de sus frases dice:
"Java es lo más penoso que le ha ocurrido a la informática desde MS-DOS"

Comentarios