<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>^[:Il &#124; Messaggero := non: 'è importante'] &#187; Smalltalk</title>
	<atom:link href="http://www.lordzealon.com/category/programacion/smalltalk-programacion/feed" rel="self" type="application/rss+xml" />
	<link>http://www.lordzealon.com</link>
	<description>Un blog de Giuseppe Luigi Punzi, sobre programación, sistemas, idas de cabeza, y mis cosas en general, porque un sitio debía tener...</description>
	<pubDate>Sun, 04 Jan 2009 12:38:09 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Squeak 4 se construirá sobre Spoon</title>
		<link>http://www.lordzealon.com/2008/07/02/squeak-4-se-construira-sobre-spoon/</link>
		<comments>http://www.lordzealon.com/2008/07/02/squeak-4-se-construira-sobre-spoon/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 09:59:15 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Smalltalk]]></category>

		<category><![CDATA[Squeak]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=102</guid>
		<description><![CDATA[Según puedo leer en los últimos mails de Squeak-Dev, al parecer, el Squeak Board, ha decidido que Squeak 4 estará basado en Spoon, para conseguir un entorno totalmente modular.
Spoon, según la definición que dá Craig Latta en su web (ya que no he encontrado nada en el Swiki oficial), 
&#8220;Spoon, es un sistema de programación [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Squeak 4 se construirá sobre Spoon", url: "http://www.lordzealon.com/2008/07/02/squeak-4-se-construira-sobre-spoon/" });</script>]]></description>
			<content:encoded><![CDATA[<p>Según puedo leer en los últimos mails de <a href="http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev">Squeak-Dev</a>, al parecer, el Squeak Board, ha decidido que Squeak 4 estará basado en <a href="http://netjam.org/spoon/">Spoon</a>, para conseguir un entorno totalmente modular.</p>
<p>Spoon, según la definición que dá <a href="http://netjam.org/">Craig Latta</a> en su web (ya que no he encontrado nada en el <a href="http://wiki.squeak.org/squeak">Swiki oficial</a>), </p>
<blockquote><p>&#8220;Spoon, es un sistema de programación mínimo de Objetos, con nuevos enfoques a la organización, colaboración y despliegue&#8221;.</p></blockquote>
<p>Supongo, pues todavía no han dado muchas más noticias, éste sistema, junto a los <a href="http://wiki.squeak.org/squeak/6001">DeltaStreams</a>, o <a href="http://wiki.squeak.org/squeak/674">ChangeSets</a>, o <a href="http://installer.pbwiki.com/">Installer scripts</a>, o/y mezcla de todos y demás parafernalias, nos montaríamos, partiendo de una imágen mínima, nuestro entorno.</p>
<p>A ver que se va cociendo en los próximos días.</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=e8936754-b8a0-4ad9-8c39-31671b1293c5&amp;title=Squeak+4+se+construir%C3%A1+sobre+Spoon&amp;url=http%3A%2F%2Fwww.lordzealon.com%2F2008%2F07%2F02%2Fsqueak-4-se-construira-sobre-spoon%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2008/07/02/squeak-4-se-construira-sobre-spoon/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Regreso al futuro de Smalltalk</title>
		<link>http://www.lordzealon.com/2008/06/26/regreso-al-futuro-de-smalltalk/</link>
		<comments>http://www.lordzealon.com/2008/06/26/regreso-al-futuro-de-smalltalk/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 13:20:23 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Smalltalk]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=101</guid>
		<description><![CDATA[A través de PlanetSmalltalk, leo un post de Rob Vens, donde habla un poco de los inicios de la concepción de Smalltalk.
Es una pequeña entrada interesante de leer, donde como conclusión, y de acuerdo con él, podríamos decir que éste, es el año de Smalltalk, el año de reinventar el futuro.
No dejéis de echarle una [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Regreso al futuro de Smalltalk", url: "http://www.lordzealon.com/2008/06/26/regreso-al-futuro-de-smalltalk/" });</script>]]></description>
			<content:encoded><![CDATA[<p>A través de <a href="http://planet.smalltalk.org/">PlanetSmalltalk</a>, leo <a href="http://www.robvens.nl/lang-en/blog/blog-overzicht/1-blog/88-back-to-the-future-for-smalltalk">un post de Rob Vens</a>, donde habla un poco de los inicios de la concepción de Smalltalk.</p>
<p>Es una pequeña entrada interesante de leer, donde como conclusión, y de acuerdo con él, podríamos decir que éste, es el año de Smalltalk, el año de reinventar el futuro.</p>
<p>No dejéis de echarle una ojeada.</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=e8936754-b8a0-4ad9-8c39-31671b1293c5&amp;title=Regreso+al+futuro+de+Smalltalk&amp;url=http%3A%2F%2Fwww.lordzealon.com%2F2008%2F06%2F26%2Fregreso-al-futuro-de-smalltalk%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2008/06/26/regreso-al-futuro-de-smalltalk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pegando código desde Squeak al blog</title>
		<link>http://www.lordzealon.com/2008/06/23/pegando-codigo-desde-squeak-al-blog/</link>
		<comments>http://www.lordzealon.com/2008/06/23/pegando-codigo-desde-squeak-al-blog/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 11:03:58 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Smalltalk]]></category>

		<category><![CDATA[Squeak]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=100</guid>
		<description><![CDATA[La verdad, llevo varias semanas dándole vueltas buscando un plugin para poder pegar código smalltalk.
Vueltas y más vueltas, cuando la solución, la tenía ahí delante, Squeak mismo me la proporciona.

Para poner en antecedentes a aquellos que se incorporen recientemente al blog, desde hace bastante tiempo, llevo buscando un plugin que me permitiese mostrar código coloreado [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Pegando código desde Squeak al blog", url: "http://www.lordzealon.com/2008/06/23/pegando-codigo-desde-squeak-al-blog/" });</script>]]></description>
			<content:encoded><![CDATA[<p>La verdad, llevo varias semanas dándole vueltas buscando un plugin para poder pegar código smalltalk.</p>
<p>Vueltas y más vueltas, cuando la solución, la tenía ahí delante, Squeak mismo me la proporciona.<br />
<span id="more-100"></span><br />
Para poner en antecedentes a aquellos que se incorporen recientemente al blog, desde hace bastante tiempo, llevo buscando un plugin que me permitiese mostrar código coloreado en el blog, y por supuesto, indentado. Probé distintos plugins, como WP-CodeBox, CodeColorer, y demás, pero, o no me hacían el retorno de carro, o mostraban bloques sin sentido donde se veía de todo menos el código.</p>
<p>Hoy, retomando InciGest para ver por donde lo dejé (ya que tuve un pequeño problema estúpido y no me dejaba grabar el paquete con monticello, y he preferido no seguir modificando), me he dado cuenta de una opción que nos ofrece el menú contextual de Squeak. Se llama Copy HTML.</p>
<p>Es decir, que los trozos de código que veo, los puedo copiar directamente como HTML, y pegarlos aquí al tuntun, y me hace un pegado perfecto (además del coloreado).</p>
<p>Por ejemplo, el método que muestra las compañías en InciGest:<br />
IncigestApp>>viewMain<br />
<b>viewMain</b><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#7F7F7F">|</font><font color="#000000"> </font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#7F7F7F">|</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><b>:=</b><font color="#000000"> </font><font color="#000000"><b>WebElement</font></b><font color="#000000"> </font><font color="#00007F">new</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">addTextH1:</font><font color="#000000"> </font><font color="#7F007F">&#8216;Company data &#8216;</font><font color="#000000"> </font><font color="#00007F">,</font><font color="#000000"> </font><font color="#7F0000"><b>self</font></b><font color="#000000"> </font><font color="#00007F">observee</font><font color="#000000"> </font><font color="#00007F">companyName</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">add:</font><font color="#000000"> </font><font color="#7F0000"><b>self</font></b><font color="#000000"> </font><font color="#00007F">hierarchyLinks</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">addBreak</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">addBreak</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">table</font><font color="#000000"> </font><font color="#00007F">class:</font><font color="#000000"> </font><font color="#00007F"><b>#webGrid</font></b><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">cell</font><font color="#000000"> </font><font color="#00007F">addText:</font><font color="#000000"> </font><font color="#7F007F">&#8216;C.I.F.: &#8216;</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">newCell</font><font color="#000000"> </font><font color="#00007F">addTextBold:</font><font color="#000000"> </font><font color="#7F0000"><b>self</font></b><font color="#000000"> </font><font color="#00007F">observee</font><font color="#000000"> </font><font color="#00007F">cif</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">newRow</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">cell</font><font color="#000000"> </font><font color="#00007F">addText:</font><font color="#000000"> </font><font color="#7F007F">&#8216;Address: &#8216;</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">newCell</font><font color="#000000"> </font><font color="#00007F">addTextBold:</font><font color="#000000"> </font><font color="#7F0000"><b>self</font></b><font color="#000000"> </font><font color="#00007F">observee</font><font color="#000000"> </font><font color="#00007F">address</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">newRow</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">cell</font><font color="#000000"> </font><font color="#00007F">addText:</font><font color="#000000"> </font><font color="#7F007F">&#8216;City: &#8216;</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">newCell</font><font color="#000000"> </font><font color="#00007F">addTextBold:</font><font color="#000000"> </font><font color="#7F0000"><b>self</font></b><font color="#000000"> </font><font color="#00007F">observee</font><font color="#000000"> </font><font color="#00007F">city</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#7F0000"><b>self</font></b><font color="#000000"> </font><font color="#00007F">add:</font><font color="#000000"> </font><font color="#6B6B6B"><i>e</font></i></p>
<p>Si bien no es la manera más elegante, funciona! y a la perfección.</p>
<p>Ahora sólo queda tomar aire, y re-pegar todo el código (al menos el del tutorial de Aida), con este nuevo sistema.</p>
<p>Madre mía, anda que no le he dado vueltas&#8230;.y lo tenía ahí delante&#8230;..</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=e8936754-b8a0-4ad9-8c39-31671b1293c5&amp;title=Pegando+c%C3%B3digo+desde+Squeak+al+blog&amp;url=http%3A%2F%2Fwww.lordzealon.com%2F2008%2F06%2F23%2Fpegando-codigo-desde-squeak-al-blog%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2008/06/23/pegando-codigo-desde-squeak-al-blog/feed/</wfw:commentRss>
		</item>
		<item>
		<title>InciGest: Software de Gestión de Incidencias</title>
		<link>http://www.lordzealon.com/2008/06/05/incigest-software-de-gestion-de-incidencias/</link>
		<comments>http://www.lordzealon.com/2008/06/05/incigest-software-de-gestion-de-incidencias/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 21:21:08 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Smalltalk]]></category>

		<category><![CDATA[Squeak]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=94</guid>
		<description><![CDATA[Actualmente, estoy desarrollando una pequeña aplicación para controlar las incidencias que realizamos a nuestros clientes.
Es una pequeña web, sencilla, y con 4 cosillas de momento, pero gracias a las facilidades que nos ofrece Smalltalk, podríamos ampliarlo fácilmente.
De momento, para los curiosos, quiero compartir como está diseñada. No entraremos en sí el modelo es bueno o [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "InciGest: Software de Gestión de Incidencias", url: "http://www.lordzealon.com/2008/06/05/incigest-software-de-gestion-de-incidencias/" });</script>]]></description>
			<content:encoded><![CDATA[<p>Actualmente, estoy desarrollando una pequeña aplicación para controlar las incidencias que realizamos a nuestros clientes.</p>
<p>Es una pequeña web, sencilla, y con 4 cosillas de momento, pero gracias a las facilidades que nos ofrece Smalltalk, podríamos ampliarlo fácilmente.</p>
<p>De momento, para los curiosos, quiero compartir como está diseñada. No entraremos en sí el modelo es bueno o malo, es algo que estoy haciendo para aprender el framework <a href="http://www.aidaweb.si">Aida/Web</a> a la par de Smalltalk, y me estoy basando sobre todo en el tutorial que ya traduje, y que que podéis mirar <a href="http://www.lordzealon.com/aidaweb-tutorial/">aquí</a>. <span id="more-94"></span></p>
<p><strong>Poniendo en antecedentes</strong><br />
La función de la aplicación, es, que los técnicos registren las incidencias que se realizan a los clientes de la empresa. Actualmente, el modelo está pensado con idea que distintas empresas compartan la misma aplicación, pero no olvidar, que es una simple web que se ha hecho con métodos didácticos.</p>
<p><strong>Comenzando</strong><br />
El proyecto lo he dividido en 3 categorías.<br />
<strong>InciGest-Aida:</strong> Contiene los objetos &#8220;Aida&#8221; para su representación web.<br />
<strong>InciGest-Core:</strong> Contiene el modelo principal del sistema.<br />
<strong>InciGest-Test:</strong> Contiene los test de los objetos.</p>
<p>:InciGest-Core:<br />
IGObjeto: Ésta, es una clase abstracta, hereda directamente de Object, y su función, es servir como capa entre Object y todos los objetos de la aplicación, por si se necesitase añadir algo común a todos.</p>
<p>InciGest: Es el manejador de la aplicación. Es un singleton, y es el encargado de realizar las tareas principales del sistema.</p>
<p>IGEmpresa: Las instancias de esta clase, representan cada una de las empresas dadas de alta en  sistema.</p>
<p>De momento existen más objetos, pero iré diciéndolos según avancemos en el proyecto, y vayamos usándolos. Mañana, como funcionan los objetos internamente y como vincularlos con el framework web Aida.</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=e8936754-b8a0-4ad9-8c39-31671b1293c5&amp;title=InciGest%3A+Software+de+Gesti%C3%B3n+de+Incidencias&amp;url=http%3A%2F%2Fwww.lordzealon.com%2F2008%2F06%2F05%2Fincigest-software-de-gestion-de-incidencias%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2008/06/05/incigest-software-de-gestion-de-incidencias/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GNU Smalltalk II</title>
		<link>http://www.lordzealon.com/2008/06/02/gnu-smalltalk-ii/</link>
		<comments>http://www.lordzealon.com/2008/06/02/gnu-smalltalk-ii/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 09:25:22 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Smalltalk]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=93</guid>
		<description><![CDATA[A raíz de mi anterior entrada, un tal Pablo se puso en contacto conmigo, interesado en obtener más información sobre GST.
Intentaré explicar un poco mejor lo que ya dije.
GNU Smalltalk, es una implementación de Smalltalk concebida para funcionar en modo scripting.
Cuando ejecutamos &#8216;gst&#8217;, carga en memoria una imágen base sobre la que trabajar con los [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "GNU Smalltalk II", url: "http://www.lordzealon.com/2008/06/02/gnu-smalltalk-ii/" });</script>]]></description>
			<content:encoded><![CDATA[<p>A raíz de mi anterior <a href="http://www.lordzealon.com/2008/05/31/gnu-smalltalk/">entrada</a>, un tal Pablo se puso en contacto conmigo, interesado en obtener más información sobre <acronym title="GNU Smalltalk">GST</acronym>.</p>
<p>Intentaré explicar un poco mejor lo que ya dije.<span id="more-93"></span></p>
<p>GNU Smalltalk, es una implementación de Smalltalk concebida para funcionar en modo scripting.</p>
<p>Cuando ejecutamos &#8216;gst&#8217;, carga en memoria una imágen base sobre la que trabajar con los Objetos básicos para poder comenzar a hacer algo, y nos ofrece una shell interactiva, como la que puede ofrecernos <a href="http://www.python.org">Python</a>, o <a href="http://www.ruby-lang.org/es/">Ruby</a>, etc&#8230;.</p>
<p>A partir de aquí, podemos, desde esta shell, crear nuevas clases, instanciarlas etc.. Digamos, que sería un workspace en linea de comandos y sin nada más.</p>
<p>Ahora, que esté concebido como scripting, no implica que sólo funcione así. Este concepto se escapa un poco de la filosofía Smalltalk, ya que éste es más que sólo un lenguaje de programación. Una de las cosas más importantes de Smalltalk, es su <em>entorno</em>. En el mundo smalltalk, entendemos como <em>entorno</em>, un &#8220;mundo&#8221; donde los objetos conviven y se envían mensajes los unos a los otros. Este &#8220;mundo&#8221;, también es un objeto, como todo en Smalltalk.</p>
<p>En el caso de <a href="http://www.squeak.org">Squeak</a>, cuando lo iniciamos, éste, levanta todo el sistema de Objetos, incluido su sistema <em>visual</em>. Desde ese entorno, es desde donde accedemos a las poderosas herramientas que Smalltalk nos provee, como los distintos <em>Browsers </em> para poder navegar por los objetos del sistema,  los inspectores, el catálogo online de paquetes Squeakmap o Universes, el poderoso depurador integrado, la interfaz para SUnit, y un largo etcétera que hace el desarrollo de Smalltalk, distinto a todo lo demás.</p>
<p><strong>¿Pero entonces, en qué se distingue GST de Squeak?</strong><br />
Como ya he dicho, la concepción de GST, fué proveer de un smalltalk de scripting. Un smalltalk al que le pasamos código incrustado en un archivo, y éste lo evalúa como pueda hacer Python, pero realmente, no hace las cosas muy distintas a como las hace Squeak.</p>
<p>En Squeak, cuando abrimos la imágen, en ésta, ya está por defecto todas las herramientas &#8220;visuales&#8221; a nuestro alcance, puesto como ya he dicho, sin ellas, Smalltalk no es más que un simple lenguaje de programación y no tiene <em>nada especial</em>. En GST, la imágen base, sólo levanta los objetos básicos y el sistema que permite que puedan enviarse mensajes los unos a los otros, y no levanta por defecto ningún subsistema visual, ya que éste, es un paquete aparte. En cambio, con un script, podríamos cargar Blox (la parte <em>visual</em> de GST), Swazzo, Seaside y dependencias, y grabar ese estado de la memoria en un archivo de <em>imágen</em>, para que al volver a ejecutar, todo estuviese cargado de igual manera que hace Squeak.</p>
<p>De hecho, el script Browser.st, lo único que hace es lo siguiente.</p>
<blockquote><p>Siento que el código no esté indentado ni coloreado, pero estoy teniendo problemas con el plugin de wordpress que hace ésto</p></blockquote>
<p>(Smalltalk includesKey: #BLOX) ifFalse: [<br />
    PackageLoader fileInPackage: 'Browser'.<br />
    ObjectMemory snapshot<br />
]!</p>
<p>(Smalltalk includesKey: #BLOX)<br />
    ifFalse: [<br />
        stdout nextPutAll: 'BLOX not loaded, is Tcl/Tk installed?'; nl<br />
    ]<br />
    ifTrue: [<br />
        stdout nextPutAll: 'Starting window environment...'; nl.<br />
        BLOX.BLOXBrowser.BrowserMain new initialize<br />
    ]!</p>
<p>ObjectMemory quit!</p>
<p>Si miráis las primeras líneas, comprueba si Blox ya está cargado, y si no, carga el paquete Browser para que levante el sistema, y lo graba como imágen. Si ya existe, entonces carga el Browser principal. Es decir, la parte visual de GST existe, y si ésto lo grabásemos no habría diferencia con Squeak (menuda herejía acabo de soltar), salvo la más importante de todas.</p>
<p>Repidiéndome hasta la saciedad, lo más importante de un sistema Smalltalk es su <em>entorno</em>. Y el problema de GST, es que su <em>entorno</em> está muy muy verde. Apenas contiene un par de Browsers, éstos no funcionan al 100% como deberían, y encima en TCL/TK. Faltan muchas herramientas como interfaz para SUnit, o más importante aún, como dice mi querido amigo Notxor, mejorar el <em>debugger</em>, que es una de las herramientas más importantes en Smalltalk. Ésto obliga a que practicamente, tengas que desarrollar apoyado en un simple editor de texto (y los que conozcan smalltalk, por muy potente que sea un editor, saben porqué digo &#8220;simple&#8221;), y trabajar &#8220;a pelo&#8221;, y de ésta manera, pierdes toda la potencia que Smalltalk puede ofrecer, pero Roma, no se construyó en un día.</p>
<p>Si es cierto que como dije, existen muchos paquetes de acceso a Datos, para trabajar a través de la red, está portado el servidor web Swazzo y el framework web Seaside, pero repito, volviendo a lo dicho, sin las herramientas básicas <em>&#8220;smalltalkrianas&#8221;</em>, todo ésto, en mi humilde opinión, no sirve para nada.</p>
<p>No quiero decir con ésto que GST no sirva para nada, todo lo contrario. De los pocos días que llevo mirando GST, basta que se terminase y mejorase un poco el Browser, para que ya se pudiese trabajar directamente sobre él sin depender de un editor, y a partir de ahí, hacer y mejorar todo lo demás, sería &#8220;coser y cantar&#8221;. Pero se necesita ayuda (ya dije ésto antes no? :D )</p>
<p>Paolo, además, comentó que se podría portar Morphic sobre SDL para usarlo como base en la parte <em>visual</em> de GST, pero como ya comenté en mi anterior entrada, para esto, hace falta gente que colabore en el proyecto (esto también lo dije no? :D )</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=e8936754-b8a0-4ad9-8c39-31671b1293c5&amp;title=GNU+Smalltalk+II&amp;url=http%3A%2F%2Fwww.lordzealon.com%2F2008%2F06%2F02%2Fgnu-smalltalk-ii%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2008/06/02/gnu-smalltalk-ii/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GNU Smalltalk</title>
		<link>http://www.lordzealon.com/2008/05/31/gnu-smalltalk/</link>
		<comments>http://www.lordzealon.com/2008/05/31/gnu-smalltalk/#comments</comments>
		<pubDate>Sat, 31 May 2008 10:15:28 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Smalltalk]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=92</guid>
		<description><![CDATA[Cuando uno se lanza a desarrollar en Smalltalk, una de las primeras decisiones que debe tomar, es, que Smalltalk usar.
Existen distintas variedades de Smalltalk, pasando por implementaciones comerciales, gratuitas, y/u OpenSource. Yo hablaré de las opciones OpenSource, ya que las comerciales o gratuitas como VisualWorks, VisualSmalltalk, Smalltalk/X etc.. O no corren fuera de Windows y/o [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "GNU Smalltalk", url: "http://www.lordzealon.com/2008/05/31/gnu-smalltalk/" });</script>]]></description>
			<content:encoded><![CDATA[<p>Cuando uno se lanza a desarrollar en <a href="http://en.wikipedia.org/wiki/Smalltalk">Smalltalk</a>, una de las primeras decisiones que debe tomar, es, que Smalltalk usar.</p>
<p>Existen distintas variedades de Smalltalk, pasando por implementaciones comerciales, gratuitas, y/u OpenSource. Yo hablaré de las opciones OpenSource, ya que las comerciales o gratuitas como VisualWorks, VisualSmalltalk, Smalltalk/X etc.. O no corren fuera de Windows y/o Linux, o sus licencias se escapan a mi presupuesto, o las dos cosas etc&#8230; Pero éso, no significa que no sean verdaderos monstruos del desarrollo, usados en la actualidad en Bancos, empresas de servicios financieros, y la lista podría continuar.<span id="more-92"></span></p>
<p>Bajo OpenSource, podríamos decir que tenemos tres opciones principales (ya que las demás, parece no estar demasiado activas ahora mismo.</p>
<ul>
<li><a href="http://www.squeak.org">Squeak</a>: Del que siempre he hablado y el que hizo que me enamorara de Smalltalk.</li>
<li><a href="http://smalltalk.gnu.org">GNU Smalltalk</a>: Una opción con un futuro prometedor</li>
<li><a href="http://code.google.com/p/syx/">SYX</a>: La implementación que se está desarrollando Luca Bruno, creador de SqueakGTK</li>
</ul>
<p>Actualmente, Squeak, es estable, y usado en varios proyectos comerciales de gran envergadura. Es el que siempre he seguido y sigo más de cerca.</p>
<p>SYX, es en lo que anda trabajando Luca Bruno. Un smalltalk con soporte nativo para GTK, y que ya se ejecuta en plataformas como Windows Mobile.</p>
<p>GNU Smalltalk (GST a partir de ahora), actualmente mantenido por Paolo Bonzini, es del que hablaré en esta entrada.<br />
<img src="http://upload.wikimedia.org/wikipedia/commons/0/08/GNU_Smalltalk_logo.svg" alt="Logo en formate SVG de GNU Smalltalk" /><br />
<em>Si no ves el logotipo, es porque tu navegador no lee archivos SVG.</em></p>
<p>La razón por la que GST ha atraido mi atención estos días, no la sé explicar. Quizás es por estar a medias, y sentirme útil. O quizás porque llevo 3 años ojeando Squeak, pero por falta de tiempo no hacer nada en él. Necesito algo nuevo. Aire fresco, y siempre me han atraido los proyectos raros. </p>
<p>Hasta ahora siempre había ojeado Squeak, ya que es quizás, la única implementación opensource estable (al menos que yo conozca) que funciona en los &#8220;tres grandes&#8221; (Windows, Linux y MacOS). Además, una de las principales ventajas de Smalltalk, es el concepto de <em>imágen</em> o <em>entorno</em>, como queráis llamarlo, donde todos los objetos conviven en memoria y las utilidades (Browsers, inspectores de código etc..), se encuentran a mano a golpe de click y que al grabar,y volver abrir, todo sigue igual, con todos los objetos corriendo como si hubiésemos hecho una foto. </p>
<p>En cambio, la filosofía de GST es funcionar principalmente como lenguaje de scripting, algo, que en principio, no tiene sentido en Smalltalk, ya que éste, más que un lenguaje de programación, hay que verlo como una plataforma con su entorno y demás donde desarrollar.</p>
<p>El tema, es que GST, también entiende el concepto de <em>imágen</em>. Podemos arrancarlo, cargar algunos paquetes, y hacer una &#8220;foto&#8221; de esos objetos en un archivo de imágen, que posteriormente podemos cargar. Sólamente, que hay ciertas utilidades que o están incompletas, o no existen todavía, como por ejemplo, una Interfaz para SUnit, o un Depurador y Browsers mejorados.</p>
<p>Por defecto, GST levanta un sistema con los objetos mínimos para que funcione, Object, Collections etc.. A partir de ahí, podemos cargar los objetos que necesitamos y luego guardar ese estado de memoria.</p>
<p><a href="http://www.seaside.st">Seaside</a> y <a href="http://www.swazoo.org/">Swazzo</a> por ejemplo, ya funcionan sobre GST, y hay librerías de acceso para PostgreSQL, MySQL, SQLITE, bindings para OpenGL, Cairo, etc&#8230;</p>
<p>No es que GST sea mejor, o con mejores perspectivas que Squeak, ni mucho menos, GST, es simplemente una alternativa para aquellos, que quieren aprovecharse de la Orientación a Objetos de Smalltalk, sin tener que lidiar por narices con la <em>imágen</em>. O simplemente gente que quiere aprender a desarrollar máquinas virtuales o colaborar creando un entorno para GST. O quiera crear aplicaciones obre TCL/TK sin morir en el intento</p>
<p>Obviamente, en comparación con Squeak por ejemplo, le falta mucho camino. Squeak tiene una extensa librería de objetos y paquetes. Mientras que GST sólo tiene portados algunos, y le falta un depurador en condiciones, una interfaz para SUnit, un catálogo online estilo Universes o SqueakMap,  y mucho trabajo por hacer. Aunque igualmente , existe una aplicación para portar código smalltalk a GST.</p>
<p>Que perfiles harían falta? Yo diría que por un lado, se necesita gente con experiencia en C que ayude a Paolo con la parte de la VM, mejorándola, creando código más portable, etc&#8230; Gente con experiencia en Smalltalk para ayudar a ampliar los paquetes disponibles y crear nuevas utilidades gráficas, y gente, con o sin experiencia para colaborar probando, reportando errores, traduciendo etc.. En definitiva, gente con ganas de colaborar en un proyecto interesante..sea usándolo o desarrollando desde sus entrañas la VM. Aunque no tengas experiencia, aprendiendo y sobre la marcha puedes colaborar de mil maneras.</p>
<p>Nos vemos por IRC (freenode.net) en #gnu-smalltalk, o en la lista de correo <a href="http://smalltalk.gnu.org/community/ml">Help-Smalltalk</a></p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=e8936754-b8a0-4ad9-8c39-31671b1293c5&amp;title=GNU+Smalltalk&amp;url=http%3A%2F%2Fwww.lordzealon.com%2F2008%2F05%2F31%2Fgnu-smalltalk%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2008/05/31/gnu-smalltalk/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
