Por qué Squeak/Smalltalk entonces?
glpunzi | 11 Marzo, Martes, 2008 | 10:41 amDigamos que esta entrada es para complementar un poco la anterior en contestación a Pablo. Voy a comentar muy por encima Smalltalk y en mi línea (es decir, desordenado y faltando cosas :P).
Instalación y archivos.
Digamos que, una instalación de Squeak, y con unas definiciones cuestionables, cuenta de 4 archivos.
- La máquina Virtual: Escrito en C, tiene el código mínimo para levantar una imágen.
- El archivo .sources: Contiene el código en Smalltalk de todas las partes de Squeak que no suelen sufrir cambios a menudo.
- Los archivos .image y .changes: .Image es una “criogenización” de todos los objetos del sistema, y .changes es un log de los cambios realizados en ésta.
Ya está. En Squeak, no se usan archivos fuente como tal. Están los changesets, que son trozos de código que pueden ser insertados en una imágen (File In), inclusive puedes usarlos para distribuir tu aplicación, pero no es la opción más acertada.
En Macos y Windows, la instalación es tan sencilla como colocar la VM en una carpeta, y asociar el archivo .image a ésta. O bien, arrastrando el archivo .image sobre el ejecutable (para que la abra como parámetro). Si ejecutamos la VM tal cual, buscará una imágen en su carpeta y la abrirá por defecto, si no encuentra ninguna, nos preguntará por una imágen a abrir.
Sigo sin entender el .image
Una imágen de Squeak, es un “mundo”. Es un entorno que ya lo lleva todo integrado. Es el IDE, el depurador, y la aplicación en sí misma a distribuir. Es un conjunto de objetos vivos que nos ofrece un amplio abanico de posibilidades para trabajar. Podríamos definirlo, como un sistema operativo sobre el que trabajamos, donde tenemos nuestros inspectores de clases, System Browser, Depurador, SUnit, e incluso, cliente de correo, servidor web, cliente IRC, VNC, etc………En este “mundo”, es donde creamos nuestros objetos, instancias de clase, y “enviamos mensajes”. Aquí, una clase, no es un archivo MiClase.extensión, que compilar y demás. En Squeak no hay ciclo de compilación. En todo momento estamos editando, compilando y ejecutando al mismo tiempo, ya que, como he dicho, es un entorno de objetos vivos que modificamos en tiempo real.

En la anterior imágen, se puede observar una imágen de Squeak, con un System Browser, navegando por la implementación del objeto True (si, porque aquí, True o False, son objetos que heredan de Boolean, y podemos modificarlos a placer), en el mensaje ifTrue:ifFalse: (condiciones en Squeak). Justo debajo, un WorkSpace (pequeño editor donde poder evaluar pequeños trozos de código), donde se está escribiendo una pequeña sentencia.
Control de Versiones, paquetes, etc..
En Squeak, existe el SqueakMap, una especie de catálogo de librerías/aplicaciones por internet. Desde éste, podemos buscar por el paquete irce (un cliente de irc integrado en la imágen), YAXO (que es un parser de xml), o Comanche (uno de los varios servidores web para Squeak) por poner simples ejemplos.

Por otro lado también existe Monticello, que es el sistema de control de versiones de Squeak, y cómo no, totalmente integrado en la imágen.

Y también existe Universes, aunque la definición prefiero dejarlar para vuestros traductores Inglés-Español. Éste además resuelve dependencias y demás.
Look & Feel
Éste es uno de los puntos que más echan para atrás a los nuevos. El UI de Squeak no es muy “profesional” a la vista digamos. Aunque hay esfuerzos que intentan mejorarlo día a día. Como por ejemplo:

Por supuesto, hay mucho de lo que hablar, y no cabe en un sólo post. Para otro momento dejamos la persistencia, el desarrollo web y demás. Otro día más.
Mientras, dejo unos enlaces:
Blog en 15 minutos: Ramón Leon hizo un screecast donde nuestra como desarrollar un blog en 15 minutos en Squeak. Video altamente recomendable.
Seaside: FrameWork para desarrollo web.
DabbleDB: Una Base De Datos Online desarrollada en Squeak.
.
Entradas relacionados:






Comentarios recientes