<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Angel "Java" Lopez : Smalltalk</title><link>http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx</link><description>Tags: Smalltalk</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Smalltalks 2009 en Buenos Aires: Una conferencia pensada para vos</title><link>http://msmvps.com/blogs/lopez/archive/2009/11/12/smalltalks-2009-en-buenos-aires-una-conferencia-pensada-para-vos.aspx</link><pubDate>Thu, 12 Nov 2009 11:02:43 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1739209</guid><dc:creator>lopez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1739209</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2009/11/12/smalltalks-2009-en-buenos-aires-una-conferencia-pensada-para-vos.aspx#comments</comments><description>&lt;p&gt;Ya había publicado el anuncio de este evento en:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2009/11/01/smalltalks-2009-en-buenos-aires.aspx" target="_blank"&gt;Smalltalks 2009 en Buenos Aires&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Puede ver más detalle en el sitio del evento:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.fast.org.ar/smalltalks2009"&gt;Smalltalks 2009&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Y en mi post, encontrarán enlaces y detalles de algunos de los participantes de esta tercera edición de estas conferencias y reuniones, armadas por la comunidad smalltalkera de Argentina.&lt;/p&gt;  &lt;p&gt;Me pareció interesante publicar este email que recibí en una lista, donde la gente organizadora explica más en detalle los eventos, y el interés que tienen para los desarrolladores de software, sean o no del ambiente Smalltalk:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;¿Querés conocer cómo se gestó la programación orientada a Objetos? ¿Te gustaría conocer en persona a uno de aquellos locos que revolucionaron la computación en la década del 70 en Xerox Parc junto al Turing Award Alan Kay?, entonces tenés que venir a Smalltalks 2009 a ver la charla de Dan Ingalls sobre &amp;quot;40 Years of Fun with Computers&amp;quot; y la sesión de preguntas y respuestas denominada &amp;quot;A fireside chat with Dan Ingalls&amp;quot;&lt;/p&gt;    &lt;p&gt;¿Querés conocer qué es lo último que se está haciendo de investigación en objetos, realmente distinto y novedoso?, entonces tenés que venir a Smalltalks 2009 y ver la presentación de Stephane Ducasse &amp;quot;I have a dream... let&amp;#39;s make it came true&amp;quot; y la presentación de Alex Warth&amp;#160; &amp;quot;&lt;a name="124de675c5e9d19d_124dd8549b88a0f0_124dd8270abdaf63_13644"&gt;Implementing programming languages for fun and profit with OMeta&amp;quot;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;¿Estas interesado en entender un poco más que es la meta-programación y para que sirve? ¿Querés entender qué significa que un ambiente sea Meta-Circular? ¿No te cierra la herencia múltiple, te parece que las interfaces de Java o .Net se quedan cortas, tenés dudas sobre los mix-ins y sentís que debe haber una mejor manera para compartir código?, entonces tenés que venir a&amp;#160; Smalltalks 2009 y ver las charlas de &amp;quot;Glamour&amp;quot;&amp;#160; y &amp;quot;Helvetia&amp;quot; de Jorge Ressia, &amp;quot;Mejorando las herramientas de desarrollo de Smalltalk&amp;quot; de Diego Geffner y &amp;quot;Traits at Work&amp;quot; de Stephane Ducasse.&lt;/p&gt;    &lt;p&gt;¿Alguna vez te preguntaste cómo funciona una base de objetos, qué diferencias tienen con una base de datos relacional, son más rápidas, son más lentas?... no quiero sonar repetitivo pero no puedo evitarlo, ¡¡¡tenés que venir a Smalltalks 2009!!! hay una charla dada por James Foster denominada &amp;quot;Introduction to GemStone&amp;quot; y un tutorial de un día enteramente dedicado a este tópico, ¡no te lo podés perder!&lt;/p&gt;    &lt;p&gt;¿Alguna vez te preguntaste si es posible manejar hardware en tiempo real con objetos y con un lenguaje dinámico? ... hmmm... entonces no te queda otra que venir a Smalltalks 2009 y ver la charla de Gonzalo Zabala sobre &amp;quot;Physical EToys&amp;quot; y la de Andrés Otaduy sobre &amp;quot;Sistema Rul@&amp;quot;&lt;/p&gt;    &lt;p&gt;¿Tenés dudas sobre si es posible diseñar y escribir con objetos buenos algoritmos genéticos o modelos matemáticos?, si lo tuyo va por ese lado, entonces tenés que venir a Smalltalks 2009 y ver la chala de Maximiliano Tabacman sobre &amp;quot;Genetic Algorithm Framework&amp;quot; y la de Leandro Caniglia sobre &amp;quot;Homological Algebra in Smalltalks&amp;quot;&lt;/p&gt;    &lt;p&gt;¿Estás interesado en conocer los detalles de implementación de una Virtual Machine de objetos o saber qué tan seguras o inseguras son? jeje, ¡¡también tenemos dos charlas para vos!!. &amp;quot;Virtual Machine, Invisible Machine&amp;quot; de Andrés Valloud (programador de la VM más rápida de Smalltalk) y &amp;quot;Security on JIT VMs&amp;quot; de Gerardo Richarte (un experto en seguridad... ¿o inseguridad?)&lt;/p&gt;    &lt;p&gt;¿Lo tuyo va por asegurar la calidad de los sistemas? ¿Te pega todo lo ágil, TDD, etc?... no quiero sonar repetitivo pero me es imposible... ¡tenés que venir a Smalltalks 2009! y ver las charlas de Tim Mackinnon sobre &amp;quot;Agile Planning&amp;quot; y &amp;quot;Expressive Testing&amp;quot; y la de Nicolas Chillo y Gabriel Burnstein sobre &amp;quot;Mutation Testing&amp;quot;.&lt;/p&gt;    &lt;p&gt;¿Estás cansado de tener que subir y bajar el server cada vez que modificas tu aplicación web, pensás que deben haber maneras más sencillas de hacerlo? ¿Estás cansado de recompilar tu aplicación Java u ObjectiveC para poder ver un pequeño cambio que hiciste en tu aplicación de iPhone?, no queda otra que vengas a Smalltalks 2009 y veas las charlas de Germán Arduino sobre &amp;quot;SWT&amp;quot;, la de Santiago Robles y Lautaro Fernandez sobre &amp;quot;Meteorid: Un MVC real para la Web&amp;quot; y la de Esteban Lorenzano sobre &amp;quot;Smalltalk in the pocket: Building applications for the iPhone&amp;quot;&lt;/p&gt;    &lt;p&gt;O por el contrario, ¿no te gustan la charlas, te aburre esto de escuchar hablar gente todo el día, lo tuyo va por la acción, por construir cosas en serio que aporten a la comunidad, por codear, y no me refiero a pegar codazos :-)? o por ahí siempre escuchaste de Smalltalk pero nunca tuviste el tiempo o la ayuda para meter las manos en la masa? hmm, que se yo, podés darte una vuelta el sábado por Smalltalks 2009 y participar del Pharo Sprint!, una sesión de programación de todo un día que sirve para mejorar y ampliar Pharo, un Smalltalk open-source.&lt;/p&gt;    &lt;p&gt;¿Siempre escuchaste o creíste que los lenguajes dinámicos no sirven para desarrollar aplicaciones grandes, o que Smalltalk sólo se usa en la universidad para enseñar? Entonces te conviene venir a Smalltalks 2009 y ver &amp;quot;XTrade - Risk and Yield Analisis&amp;quot; de Maximiliano Tabacman, &amp;quot;Expecco&amp;quot; de Felix Madrir e &amp;quot;iBizLog&amp;quot; de Jose Bretti. &lt;/p&gt;    &lt;p&gt;¿Tu especialidad es el User Interface, gráficos 3D, etc.?... también tenemos algo para vos como &amp;quot;Un ambiente visual para desarrollar software&amp;quot; de Adian Soma, &amp;quot;Cuis and Morphic 3&amp;quot; de Juan Vuletich, &amp;quot;Desarrollo de un engine 3D: Experiencias de un neófito&amp;quot; de Andrés Fortier y &amp;quot;#{Open.Source.Graphics} bindTo: {Cincom.Smalltalk}&amp;quot; de Travis Griggs&lt;/p&gt;    &lt;p&gt;¿Te hace falta un iPod? ¿Querés regalarle una cámara digital a tu novia/o, o a tu vieja?... es fácil, anotate en el concurso de programación de Smalltalks, te vas a divertir haciéndolo... y si no lograste ganar nada, no llegaste a hacerlo, podés escuchar a Carlos Ferro, creador del concurso explicando cómo fue desarrollado el mismo en la charla de &amp;quot;Smalltalks 2009 Coding Contest&amp;quot;&lt;/p&gt;    &lt;p&gt;Y si sos profesor de programación orientada a objetos y querés obtener información, material de enseñanza y compartir tu dudas y experiencias con otros profesores, tenés que venir a Smalltalks 2009 y ver la charla &amp;quot;Enseñanza de programación orientada a objetos con Smalltalk y prácticas ágiles&amp;quot; de Nicolás Paez o pasar unos minutos con Stephane Ducasse quién compartirá con nosotros todo el material que usan en Suiza y Francia para enseñar objetos.&lt;/p&gt;    &lt;p&gt;¿Te cansaste de leer este mail tan largo? ¿te divertiste leyéndolo? ¿querés formar parte de un congreso hecho por programadores para programadores que ya lleva más de 300 inscriptos, divirtiéndote y aprendiendo en el camino? jeje, ¡¡tenés que venir a Smalltalks 2009!!&lt;/p&gt;    &lt;p&gt;No dejes de anotarte gratis en &lt;a href="http://www.fast.org.ar/"&gt;www.fast.org.ar&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Es del jueves 19 al sábado 21 de Noviembre de este año. Podes ver el detalle de las charlas en la sección &amp;quot;Charlas&amp;quot; o &amp;quot;Talks&amp;quot; de la página web, seguro la vas a pasar bien.&lt;/p&gt;    &lt;p&gt;Comite Organizador de Smalltalks 2009&lt;/p&gt;    &lt;p&gt;Cualquier duda manda un mail a &lt;a href="mailto:info@fast.org.ar"&gt;info@fast.org.ar&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Nos leemos!&lt;/p&gt;  &lt;p&gt;Angel “Java” Lopez   &lt;br /&gt;&lt;a href="http://www.ajlopez.com"&gt;http://www.ajlopez.com&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1739209" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category></item><item><title>Smalltalks 2009 en Buenos Aires</title><link>http://msmvps.com/blogs/lopez/archive/2009/11/01/smalltalks-2009-en-buenos-aires.aspx</link><pubDate>Sun, 01 Nov 2009 14:41:03 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1736768</guid><dc:creator>lopez</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1736768</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2009/11/01/smalltalks-2009-en-buenos-aires.aspx#comments</comments><description>&lt;p&gt;La comunidad Smalltalk de Argentina ha vuelto a tener actividad en estos últimos años. Ejemplo reciente fue su activa participación en el &lt;a href="http://www.esug.org/Conferences/2009" target="_blank"&gt;ESUG: 2009 International Smalltalk Conference&lt;/a&gt;. Y como prueba están las dos ediciones de las conferencias Smalltalks. Se viene la tercera edición:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.fast.org.ar/smalltalks2009" target="_blank"&gt;Smalltalks 2009&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/smalltalks200902.png" alt="" /&gt; &lt;/p&gt;  &lt;p&gt;Se realizará del jueves 19 al sábado 21 de Noviembre, en la Facultad de Ciencias Exactas y Naturales de la Universidad de Buenos Aires. Tienen que visitar el enlace e inscribirse. Hay invitados especiales, a destacar (copiado “sin vergüenza” :-) desde esa página):&lt;/p&gt;  &lt;h5&gt;&lt;em&gt;Dan Ingalls&lt;/em&gt;&lt;/h5&gt;  &lt;p&gt;&lt;em&gt;&lt;img alt="" src="http://slice.caesarsystems.com/smalltalks2009/img/speakers/Dan_Ingalls.jpg" width="147" /&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Is a pioneer of object-oriented computer programming and the principal architect, designer and implementor of five generations of Smalltalk environments. He designed the bytecoded virtual machine that made Smalltalk practical in 1976. He also invented Bit blit, the general-purpose graphical operation that underlies most bitmap graphics systems today, and pop-up menus. He designed the generalizations of BitBlt to arbitrary color depth, with built-in scaling, rotation, and anti-aliasing. His major contributions to the Squeak system include the original concept of a Smalltalk written in itself and made portable and efficient by a Smalltalk-to-C translator.&amp;#160; &lt;/em&gt;&lt;a href="http://en.wikipedia.org/wiki/Daniel_Henry_Holmes_Ingalls,_Jr."&gt;&lt;em&gt;Read more&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;¿Qué podría agregar a Dan Ingalls? Vean &lt;a href="http://research.sun.com/people/mybio.php?c=394" target="_blank"&gt;su trabajo de investigación reciente en Sun&lt;/a&gt;, por ejemplo, el &lt;a href="http://research.sun.com/techrep/2008/abstract-175.html" target="_blank"&gt;Web Browser as an Application Platform: The Lively Kernel Experience&lt;/a&gt;. Pueden seguirlo en Twitter como &lt;a href="http://twitter.com/daningalls" target="_blank"&gt;@daningalls&lt;/a&gt; pero no escribe mucho. Aunque no relacionado tanto con Smalltalks, no puedo dejar pasar el video sobre Lively Kernel:&lt;/p&gt;  &lt;p&gt;(Please visit the site to view this media)&lt;/p&gt;  &lt;h5&gt;&lt;em&gt;Stephane Ducasse&lt;/em&gt;&lt;/h5&gt;  &lt;p&gt;&lt;em&gt;&lt;img alt="" src="http://slice.caesarsystems.com/smalltalks2009/img/speakers/stefSmiling.jpg" width="147" /&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Since September 2007, He is research director at INRIA Lille leading the RMoD Team. He was the leader of the RECAST Project. He was co-responsible of the version 3.9 of Squeak the open-source Smalltalk developed by the team of A. Kay (Turing award 2003). He is the president of ESUG. He is developing Moose an open-source reengineering platform. He is co-responsible of Pharo an open-source Smalltalk. &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://stephane.ducasse.free.fr/"&gt;&lt;em&gt;Read more&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;&lt;em&gt;Alex Warth&lt;/em&gt;&lt;/h5&gt;  &lt;p&gt;&lt;em&gt;&lt;img alt="" src="http://slice.caesarsystems.com/smalltalks2009/img/speakers/alex.jpg" width="147" /&gt;Alessandro Warth is a computer scientist at the Viewpoints Research Institute, where he is working on the &amp;quot;Steps Toward the Reinvention of Programming&amp;quot; project. His current research interests include tools for rapid language prototyping, and improving the modularity of dynamic languages.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Pueden visitar &lt;a href="http://www.tinlizzie.org/~awarth/" target="_blank"&gt;la página del bueno de Alessandro&lt;/a&gt; y seguirlo en Twitter como &lt;a href="http://twitter.com/alexwarth" target="_blank"&gt;@alexwarth&lt;/a&gt;.&lt;/p&gt;  &lt;h5&gt;&lt;em&gt;Tim Mackinnon&lt;/em&gt;&lt;/h5&gt;  &lt;p&gt;&lt;em&gt;&lt;img alt="" src="http://slice.caesarsystems.com/smalltalks2009/img/speakers/TimMackinnon.jpg" width="147" /&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Tim has been programming with objects for 15 years, however it was when he heard Kent Beck describe Extreme Programming at OOPSLA 98 and again at OT99 that he found a process that balances quality, delivery and happiness. Tim was a member of the team that created UML Modeler for VisualAge Smalltalk, he has also worked at Dashboards Software where he pioneered their use of Extreme Programming. He then built up the XP team at Connextra and was responsible for techniques such as Mock Objects and Heartbeat retrospectives. He is now a senior developer at ThoughtWorks where he is mentoring teams on XP and Retrospectives.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;No escribe mucho, pero puede leer su blog &lt;a href="http://pintside.blogspot.com/" target="_blank"&gt;Pintside Thoughts&lt;/a&gt;.&lt;/p&gt;  &lt;h5&gt;&lt;em&gt;James Foster&lt;/em&gt;&lt;/h5&gt;  &lt;p&gt;&lt;em&gt;&lt;img alt="" src="http://slice.caesarsystems.com/smalltalks2009/img/speakers/James.jpeg" width="147" /&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;As a junior-high student in 1971, James discovered the local university&amp;#39;s computer lab and learned Basic, Fortran, and assembly. After trying other careers (commercial aviation and law), he returned to computer programming and was introduced to OOP on the Macintosh in the 1980s. Since then James has worked on large systems (primarily in healthcare) and introduced agile practices to the teams he has lead. James Foster is on the Smalltalk Engineering Team at GemStone Systems, Inc. and is an evangelist for the Seaside web framework.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Pueden seguir su blog &lt;a href="http://programminggems.wordpress.com/" target="_blank"&gt;Programming Gems (on Gem Stone) James’s comments on programming GemStone/S, Seaside and Smalltalk&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Y por supuesto, gran parte de los smalltalkers de Argentina (algunos esparcidos por el mundo, otros trabajando en empresas locales, otros en emprendimientos personales) asistirán al evento. Hace dos años escribí sobre la actividad de desarrollo y empresas: &lt;a href="http://msmvps.com/blogs/lopez/archive/2007/03/14/creando-con-smalltalk-en-argentina.aspx" target="_blank"&gt;Creando con Smalltalk en Argentina&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Más información sobre el evento en &lt;a href="http://news.squeak.org/2009/09/23/smalltalks-2009/" target="_blank"&gt;Smalltalks 2009 Squeak News&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Para los interesados en la actividad Smalltalk en español, y en especial en Argentina, ver:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.fast.org.ar/" target="_blank"&gt;Fundación Argentina de Smalltalk&lt;/a&gt; (Sitio soportado por plataforma GLASS (Gemstone/Linux/Apache/Squeak/Seaside)).    &lt;br /&gt;&lt;a href="http://www.clubsmalltalk.org/web/" target="_blank"&gt;Club Smalltalk&lt;/a&gt; (vean ahí la participación argentina en la ESUG 2009)&lt;/p&gt;  &lt;p&gt;y participen de la lista:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://groups.google.com/group/clubsmalltalk" href="http://groups.google.com/group/clubsmalltalk"&gt;http://groups.google.com/group/clubsmalltalk&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/smalltalks200901.png" alt="" /&gt; &lt;/p&gt;  &lt;p&gt;Mi colección de enlaces:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://delicious.com/ajlopez/smalltalk"&gt;http://delicious.com/ajlopez/smalltalk&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://delicious.com/ajlopez/squeak"&gt;http://delicious.com/ajlopez/squeak&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://delicious.com/ajlopez/seaside"&gt;http://delicious.com/ajlopez/seaside&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Me hubiera gustado participar (por ejemplo, presentando lo &lt;a href="http://msmvps.com/blogs/lopez/archive/2008/07/15/ajtalk-un-int-233-rprete-tipo-smalltalk.aspx" target="_blank"&gt;que estoy haciendo como máquina virtual en .NET&lt;/a&gt;, o revivir algo de lo que hice &lt;a href="http://msmvps.com/blogs/lopez/archive/2009/01/26/presentando-ajsoda.aspx" target="_blank"&gt;tratando de emular a Piumarta&lt;/a&gt;), pero en estos días estoy bastante concentrado, en muchos cursos, poca programación, luchando con el &lt;a href="http://ajlopez.zoomblog.com/archivo/2008/10/17/el-Efecto-Coto.html" target="_blank"&gt;“Efecto Coto”&lt;/a&gt; (si ni siquiera tendré &lt;a href="http://msmvps.com/blogs/lopez/archive/2009/03/30/primera-semana-sab-225-tica-del-a-241-o.aspx" target="_blank"&gt;Semana Sabática&lt;/a&gt; este semestre… snif… :-).&lt;/p&gt;  &lt;p&gt;(Nota adicional: &lt;a href="http://ajlopez.zoomblog.com/archivo/2009/10/25/apologia-del-enlace.html" target="_blank"&gt;el por qué de tantos enlaces en cada post mío&lt;/a&gt; ;-)&lt;/p&gt;  &lt;p&gt;Nos leemos!&lt;/p&gt;  &lt;p&gt;Angel “Java” Lopez   &lt;br /&gt;&lt;a href="http://www.ajlopez.com"&gt;http://www.ajlopez.com&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1736768" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Argentina/default.aspx">Argentina</category></item><item><title>Explorando objetos con Smalltalk</title><link>http://msmvps.com/blogs/lopez/archive/2009/09/24/explorando-objetos-con-smalltalk.aspx</link><pubDate>Thu, 24 Sep 2009 09:33:50 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1726240</guid><dc:creator>lopez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1726240</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2009/09/24/explorando-objetos-con-smalltalk.aspx#comments</comments><description>&lt;p&gt;Estoy siguiendo a &lt;a href="http://twitter.com/jarober" target="_blank"&gt;@jarober&lt;/a&gt; (James A. Robertson) en Twitter. El es el Cincom Smalltalk Product Evangelist. Postea enlaces, recursos y novedades sobre Smalltalk, en particular sobre los productos Cincom. Escribe un blog:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.cincomsmalltalk.com/blog/View.ssp" href="http://www.cincomsmalltalk.com/blog/View.ssp"&gt;http://www.cincomsmalltalk.com/blog/View.ssp&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;que corre sobre Smalltalk. Si visitan ese blog, encontrarán varios posts con videas sobre Smalltalk. Hace poco, Robertson publicó:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.cincomsmalltalk.com/blog/blogView?entry=3430713089" target="_blank"&gt;Smalltalk Daily: Exploring Objects&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Este es el video:&lt;/p&gt;  &lt;p&gt;(Please visit the site to view this media)&lt;/p&gt;  &lt;p&gt;Robertson escribe:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Many times, you want to do something, know that it can be done - but just aren&amp;#39;t sure how to construct the code to do it. If you have an object, you can usually solve that problem by drilling into it with the inspector and looking at it. Today we learn how to programmatically change workspace page text by drilling into a workspace.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Es refrescante ver este tipo de interacción con objetos, tan “a la Smalltalk”.&lt;/p&gt;  &lt;p&gt;Debo reanudar mi trabajo en mi &lt;a href="http://ajlopez.wordpress.com/category/ajtalk/" target="_blank"&gt;Smalltalk VM (intérprete) AjTalk&lt;/a&gt;, pueden leer&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/07/15/ajtalk-un-int-233-rprete-tipo-smalltalk.aspx" target="_blank"&gt;AjTalk, un intérprete tipo Smalltalk&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Le tendría que agregar soporte visual. Mi idea, como en otros intérpretes que estoy escribiendo, es interactuar con el framework de base, en este caso, .NET con su CLR. De esta forma, puedo sacar provecho de todo lo que está armado en ese framework. En estos días, todo lenguaje debería tomar ventaja de un framework de clases ya armado: .NET y Java son las opciones obvias a tomar (ver &lt;a href="http://clojure.org" target="_blank"&gt;Clojure&lt;/a&gt; como un ejemplo “moderno” de esta estrategia) (o &lt;a href="http://msmvps.com/blogs/lopez/archive/2009/09/22/ajsharp-un-lenguaje-din-225-mico-en-c.aspx" target="_blank"&gt;AjSharp&lt;/a&gt;… :-)&lt;/p&gt;  &lt;p&gt;Nos leemos!&lt;/p&gt;  &lt;p&gt;Angel “Java” Lopez    &lt;br /&gt;&lt;a href="http://www.ajlopez.com"&gt;http://www.ajlopez.com&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1726240" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Lenguajes+de+Programaci_26002300_243_3B00_n/default.aspx">Lenguajes de Programaci&amp;#243;n</category></item><item><title>Popularidad de Lenguajes de Programación</title><link>http://msmvps.com/blogs/lopez/archive/2009/07/08/popularidad-de-lenguajes-de-programaci-243-n.aspx</link><pubDate>Wed, 08 Jul 2009 09:50:06 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1698705</guid><dc:creator>lopez</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1698705</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2009/07/08/popularidad-de-lenguajes-de-programaci-243-n.aspx#comments</comments><description>&lt;p&gt;Me temo que &lt;a href="http://en.wordpress.com/tag/ajlisp/" target="_blank"&gt;AjLisp&lt;/a&gt; y &lt;a href="http://en.wordpress.com/tag/ajbasic" target="_blank"&gt;AjBasic&lt;/a&gt; lo usamos yo y nadie más… snif… :-). Pero hay lenguajes más populares que esos. Ya es clásica la lista de TIOBE Software:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html" href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html"&gt;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/langpop01.png" alt="" /&gt; &lt;/p&gt;  &lt;p&gt;donde aparece Java como el lenguaje más popular, lo que no me asombra. Pero sí me llama la atención la popularidad de C y C++, que deben tener su gran uso en el ambiente Unix, Linux, y otros. Como cuarto, encuentro hoy, Julio de 2009, a PHP, que lo entiendo: la mayor parte del código de sitios dinámicos está en PHP, lejos quedaron los años del predominio del venerable Perl. Y recién en sexto y séptimo lugar, está Visual Basic (parece que agrupan el de .NET y el clásico), y C#. Vean que al final de la lista, aparecen lenguajes con mínimos porcentajes, pero aparecen: RPG, Pascal, Abap, Lisp/Scheme. Más abajo, en la misma página encontraran la lista de posición 21 a 50, donde aparecen COBOL, Objective-C, Fortran, Logo, Prolog, Ada (todavía anda por ahí? :-), Scala, Erlang…. y esta es la lista de 51 a 100:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;ABC, AD, Algol, Alpha, Applescript, Beta, Boo, C shell, cg, Clean, Cobra, cT, Curl, Dylan, Eiffel, Euphoria, Factor, Fan, Icon, IDL, Inform, Io, Lingo, MAD, Magic, Maple, Mathematica, MAX/MSP, MOO, MUMPS, Natural, Oberon, Occam, Oz, PL/I, Postscript, PowerBuilder, Progress, Q, R, Revolution, REXX, S-lang, SIGNAL, SPSS, SuperCollider, VBScript, Verilog, VHDL, XSLT&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Notable lista, recomendaría tantos lenguajes de esa lista, simplemente para aprender nuevas formas de programar (notable que aparezca todavía MUMPS, REXX, tendría que ver con más detalle a Io). Esta lista de popularidad se basa en el examen de búsquedas en Google, hace un tiempo pasaron a agregar MSN y Yahoo.&lt;/p&gt;  &lt;p&gt;Pero en estos días, encontré otra página:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://langpop.com/" href="http://langpop.com/"&gt;http://langpop.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/langpop02.png" alt="" /&gt; &lt;/p&gt;  &lt;p&gt;con información de ranking de popularidad, pero con agrupadas con distintas fuentes, como Yahoo Search, search en Google Code, Freshmeat, Craiglist, Amazon.&lt;/p&gt;  &lt;p&gt;En lo que veo hoy ahí, julio de 2009, según Yahoo Search C es más popular que Java. Pero para Craiglist, primero PHP, segundo SQL (!!!), en Amazon ganan C, C++ y C#, por encima de Java. Y así, noto dispersión de los resultados, dependiendo de la fuente.&lt;/p&gt;  &lt;p&gt;La popularidad de un lenguaje importa. No tanto para entender el lenguaje (muchos lenguajes “boutique” tienen interesantes conceptos, a estudiar con detalle), sino para tener una idea de qué tecnología ha sido adoptada por la comunidad, pero habría que ver más allá: por qué la eligieron, y en qué tipo de proyectos. Dudo que haya muchas aplicaciones desktop, en PHP.&lt;/p&gt;  &lt;p&gt;Resumen: gran cantidad de lenguajes, hay lenguajes viejos, desde COBOL y Smalltalk, y más “nuevos” como Boo, Ruby, Python. Y `cuatros grandes grupos: Java, C/C++, lenguajes .NET (VB.NET, C#), PHP, como claros grupos líderes.&lt;/p&gt;  &lt;p&gt;Pienso que, como desarrolladores de software, debemos tener contacto con esos cuatro grupos, y además, con alguno de los “otros”, para aprender otras ideas y formas de programar.&lt;/p&gt;  &lt;p&gt;No&amp;#160; me enojo si intentan ver &lt;a href="http://en.wordpress.com/tag/ajlisp" target="_blank"&gt;AjLisp&lt;/a&gt; o &lt;a href="http://en.wordpress.com/tag/ajbasic" target="_blank"&gt;AjBasic&lt;/a&gt;… :-)&lt;/p&gt;  &lt;p&gt;Nos leemos!&lt;/p&gt;  &lt;p&gt;Angel “Java” Lopez   &lt;br /&gt;&lt;a href="http://www.ajlopez.com"&gt;http://www.ajlopez.com&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1698705" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Java/default.aspx">Java</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/PHP/default.aspx">PHP</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/C+Sharp/default.aspx">C Sharp</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/AjLisp/default.aspx">AjLisp</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/AjBasic/default.aspx">AjBasic</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Lenguajes+de+Programaci_26002300_243_3B00_n/default.aspx">Lenguajes de Programaci&amp;#243;n</category></item><item><title>Presentando AjSoda</title><link>http://msmvps.com/blogs/lopez/archive/2009/01/26/presentando-ajsoda.aspx</link><pubDate>Mon, 26 Jan 2009 08:46:29 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1665967</guid><dc:creator>lopez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1665967</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2009/01/26/presentando-ajsoda.aspx#comments</comments><description>&lt;p&gt;Hace un año, escribí un post, comentando el trabajo de &lt;a href="http://piumarta.com/" target="_blank"&gt;Ian Piumarta&lt;/a&gt; work:&lt;/p&gt; &lt;p&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/01/14/self-sustaining-systems-cola-pepsi-coke-y-mate.aspx" target="_blank"&gt;Self-sustaining sysmtes, Cola, Pepsi y Mate&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Proponía que una implementación de las ideas Ian Piumarta y Warth, era posible en .NET o en Java. En vez de usar C como lenguaje base, se podría implementar todo sobre un lenguaje con máquina virtual, con un framework rico de clases de base, y con un garbage collector automático. Para mí, era una interesante idea, que merecía algo de atención.&lt;/p&gt; &lt;p&gt;Para entender las ideas ideas de Piumarta y Warth, lean lo que describieron sobre una implementación mínima en:&lt;/p&gt; &lt;p&gt;&lt;a href="http://piumarta.com/pepsi/objmodel2.pdf"&gt;http://piumarta.com/pepsi/objmodel2.pdf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://piumarta.com/pepsi/objmodel.pdf"&gt;http://piumarta.com/pepsi/objmodel.pdf&lt;/a&gt;  &lt;p&gt;Encontrarán el código de una implementación en C, en esos papers. Un diagrama aclaratorio:  &lt;p&gt;(tomado de&lt;a href="http://www.swa.hpi.uni-potsdam.de/dls/dls06/presentations/IanPiumarta_2006_OpenExtensibleDynamicProgrammingSystems_Dls.pdf" target="_blank"&gt;Open Extensible Dynamic Programming Systems Dls&lt;/a&gt; )  &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/ajsodaobj.png" alt="" /&gt;  &lt;p&gt;Esta semana pasada, puse manos a la obra, y estuve trabajando en una implementación en C# de esas ideas. Publiqué mi código en my&amp;nbsp; &lt;a href="http://code.google.com/p/ajcodekatas/" target="_blank"&gt;Proyecto Google Code AjCodeKatas&lt;/a&gt;,&amp;nbsp;dentro de:  &lt;p&gt;&lt;a title="http://code.google.com/p/ajcodekatas/source/browse#svn/trunk/AjSoda" href="http://code.google.com/p/ajcodekatas/source/browse#svn/trunk/AjSoda"&gt;http://code.google.com/p/ajcodekatas/source/browse#svn/trunk/AjSoda&lt;/a&gt;  &lt;p&gt;La solución tiene cuatro proyectos (dos librerías de clases, y otros dos que son sus respectivos tests). El proyecto principal es el &lt;strong&gt;AjSoda&lt;/strong&gt;:  &lt;p&gt;&amp;nbsp;&lt;img src="http://www.todocontenidos.com/images/articles/ajsodaprj.png" alt="" /&gt;  &lt;p&gt;Un diagrama de las interfaces principales:  &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/ajsodadiagint.png" alt="" /&gt;  &lt;p&gt;&lt;strong&gt;IObject&lt;/strong&gt; es la interfaz que escribí para representar un objeto genérico. Tiene un &amp;quot;payload&amp;quot;, que es un arreglo de referencias a objectos .NET arbitrarios.  &lt;p&gt;Una alternativa que consideré, era apuntar solamente a IObjects. Pero quiero tener la capacidad de apuntar y manipular directamente objetos .NET (u objetos Java, si lo reimplemento en ese lenguaje). La alternativa hubiera sido apuntar solo a &lt;strong&gt;IObjects&lt;/strong&gt;, e implementar un digamos &lt;strong&gt;DotNetWrapper : IObject&lt;/strong&gt; que encapsulara los accesos a un objeto .NET (algo así está armado en el AjBasic).  &lt;p&gt;El método más importante en&amp;nbsp; &lt;strong&gt;IObject&lt;/strong&gt; es &lt;strong&gt;Send&lt;/strong&gt;. Usando este método, podemos enviar un mensaje (selector y argumentos) a cualquier instancia de &lt;strong&gt;IObject&lt;/strong&gt;.  &lt;p&gt;&lt;strong&gt;IBehavior&lt;/strong&gt; es mi implementación de lo que Piumarta y Warth llaman una vtable (me recuerda a las tablas de métodos en viejas implementaciones de C++).&amp;nbsp;Es un objeto que contiene una lista por nombre de métodos que pueden atender los mensajes que se envía a un&amp;nbsp; &lt;strong&gt;IObject&lt;/strong&gt;.  &lt;p&gt;Cada &lt;strong&gt;IObject &lt;/strong&gt;tiene una propiedad &lt;strong&gt;Behavior&lt;/strong&gt; que apunta a un &lt;strong&gt;IObject&lt;/strong&gt;. Podría haber elegido apuntar a un &lt;strong&gt;IBehavior&lt;/strong&gt;, pero de esta manera, el &lt;strong&gt;Behavior&lt;/strong&gt; de un objeto puede ser reemplazado por cualquier otro objeto que entienda un mensaje con selector #lookup:.  &lt;p&gt;No necesité hasta ahora, implementar el concepto de Closure, como lo describen Piumarta y Warth en su paper. Usando closures, ellos implementan slots a la Javascript o Self. Pero en los experimentos que hice, no necesité aún implementar eso.  &lt;p&gt;Las clases principales de implementación son:  &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/ajsodadiagcls.png" alt="" /&gt;  &lt;p&gt;Cada &lt;strong&gt;BaseObject&lt;/strong&gt;&amp;nbsp;implementa un&amp;nbsp;&lt;strong&gt;IObject, &lt;/strong&gt;manteniendo un arreglo interno de objetos como &amp;quot;payload&amp;quot; del objeto:  &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:0f523c81-5670-4fbd-893e-db8425f511d1" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;"&gt;&lt;div&gt;&lt;span style="color:#000000;"&gt;    &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;class&lt;/span&gt;&lt;span style="color:#000000;"&gt; BaseObject : IObject
    {
        &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;private&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;object&lt;/span&gt;&lt;span style="color:#000000;"&gt;[] values;

        &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; BaseObject()
        {
        }

        &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; BaseObject(&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt; size)
        {
            &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;this&lt;/span&gt;&lt;span style="color:#000000;"&gt;.values &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;object&lt;/span&gt;&lt;span style="color:#000000;"&gt;[size];
        }

        &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt; Size
        {
            &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;get&lt;/span&gt;&lt;span style="color:#000000;"&gt;
            {
                &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;if&lt;/span&gt;&lt;span style="color:#000000;"&gt; (&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;this&lt;/span&gt;&lt;span style="color:#000000;"&gt;.values &lt;/span&gt;&lt;span style="color:#000000;"&gt;==&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;null&lt;/span&gt;&lt;span style="color:#000000;"&gt;)
                {
                    &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;0&lt;/span&gt;&lt;span style="color:#000000;"&gt;;
                }

                &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;this&lt;/span&gt;&lt;span style="color:#000000;"&gt;.values.Length;
            }
        }

        &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; IObject Behavior { &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;get&lt;/span&gt;&lt;span style="color:#000000;"&gt;; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;set&lt;/span&gt;&lt;span style="color:#000000;"&gt;; }
&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;(Noten que la propiedad &lt;strong&gt;Behavior&amp;nbsp;&lt;/strong&gt;es un &lt;strong&gt;IObject&lt;/strong&gt;, por las razones que expliqué antes).&lt;/p&gt;
&lt;p&gt;El método más interesante es el &lt;strong&gt;Send&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:f042ec00-d5d2-48d2-9ad4-3aea97343c75" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;white-space:pre-wrap;word-wrap:break-word;"&gt;&lt;div&gt;&lt;span style="color:#000000;"&gt;        &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;virtual&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;object&lt;/span&gt;&lt;span style="color:#000000;"&gt; Send(&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt; selector, &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;params&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;object&lt;/span&gt;&lt;span style="color:#000000;"&gt;[] arguments)
        {
            &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;if&lt;/span&gt;&lt;span style="color:#000000;"&gt; (selector &lt;/span&gt;&lt;span style="color:#000000;"&gt;==&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;null&lt;/span&gt;&lt;span style="color:#000000;"&gt;)
            {
                &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;throw&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; ArgumentNullException(&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;selector&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;);
            }

            &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;if&lt;/span&gt;&lt;span style="color:#000000;"&gt; (&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;this&lt;/span&gt;&lt;span style="color:#000000;"&gt;.Behavior &lt;/span&gt;&lt;span style="color:#000000;"&gt;==&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;null&lt;/span&gt;&lt;span style="color:#000000;"&gt;)
            {
                &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;throw&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; InvalidOperationException(&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;No behavior in object&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;);
            }

            IMethod method &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; (IMethod) &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;this&lt;/span&gt;&lt;span style="color:#000000;"&gt;.Behavior.Send(&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;lookup:&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;, selector);

            &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;if&lt;/span&gt;&lt;span style="color:#000000;"&gt; (method &lt;/span&gt;&lt;span style="color:#000000;"&gt;==&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;null&lt;/span&gt;&lt;span style="color:#000000;"&gt;)
            {
                &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;throw&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; InvalidOperationException(&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt;.Format(CultureInfo.InvariantCulture, &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;Unknown message &amp;#39;{0}&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;, selector));
            }

            &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; method.Execute(&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;this&lt;/span&gt;&lt;span style="color:#000000;"&gt;, arguments);
        }
&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;No uso directamente &lt;strong&gt;this.Behavior.Lookup&amp;nbsp;&lt;/strong&gt;para obtener el &lt;strong&gt;IMethod&lt;/strong&gt; asociado a un selector. En cambio, uso directamente el método &lt;strong&gt;Send&lt;/strong&gt; para enviar un mensaje al object apuntado por &lt;strong&gt;Behavior&lt;/strong&gt;. De esta forma, &lt;strong&gt;obj.Behavior&lt;/strong&gt; puede ser dirigido a cualquier objeto &lt;strong&gt;IObject &lt;/strong&gt;que quiera implementar la lógica de lookup de un método por selector. Esta decisión tiene impacto en el rendimiento, pero permite explorar nuevas estrategias de obtención de métodos. Pueden leer en los papers mencionados, cómo implementan herencia múltiple y Traits, usando esta capacidad de redefición de lookup.&lt;/p&gt;
&lt;h3&gt;AjPepsi&lt;/h3&gt;
&lt;p&gt;En el código encontraran un proyecto adicional, &lt;strong&gt;AjPepsi&lt;/strong&gt;, donde implementé un parser, y intérprete de bytecodes,&amp;nbsp;de un lenguaje parecido al que usaron language Piumarta/Warth como prueba de concepto en sus escritos. Acepta código como: 
&lt;p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:d7e113e0-b500-419a-8b88-01fd0c4840b1" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;"&gt;&lt;div&gt;&lt;span style="color:#000000;"&gt;
Object &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; [&lt;/span&gt;&lt;span style="color:#000000;"&gt;^&lt;/span&gt;&lt;span style="color:#000000;"&gt;self &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;class&lt;/span&gt;&lt;span style="color:#000000;"&gt; basicNew initialize]
Object initialize []

List : Object(head tail)

List head [&lt;/span&gt;&lt;span style="color:#000000;"&gt;^&lt;/span&gt;&lt;span style="color:#000000;"&gt;head]
List tail [&lt;/span&gt;&lt;span style="color:#000000;"&gt;^&lt;/span&gt;&lt;span style="color:#000000;"&gt;tail]
List head: newHead [head :&lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; newHead]
List tail: newTail [tail :&lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; newTail]

list1 :&lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; [&lt;/span&gt;&lt;span style="color:#000000;"&gt;^&lt;/span&gt;&lt;span style="color:#000000;"&gt;List &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt;]
list2 :&lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; [&lt;/span&gt;&lt;span style="color:#000000;"&gt;^&lt;/span&gt;&lt;span style="color:#000000;"&gt;List &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt;]

[list1 head: &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;Hello&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;]
[list2 head: &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;World&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;]
[list1 tail: list2]

&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Object&lt;/strong&gt; y &lt;strong&gt;List&lt;/strong&gt; son prototipos. Dejaré una explicación más detallada de este lenguaje y su implementación para un futuro post. &lt;strong&gt;AjPepsi&lt;/strong&gt;&amp;nbsp;aún está en desarrollo; probablemente, refactorearé gran parte del núcleo de la implementación. Tomé el código de &lt;a href="http://code.google.com/p/ajtalk" target="_blank"&gt;AjTalk&lt;/a&gt; como base, pero no estoy seguro de haber tomado la decisión correcta: &lt;strong&gt;AjPepsi&lt;/strong&gt;&amp;nbsp;es muy orientado a prototipos, y basado en &lt;strong&gt;AjSoda&lt;/strong&gt;, así que tuve que trabajar bastante para llevarlo a estas ideas.&lt;/p&gt;
&lt;p&gt;Una gran &amp;quot;feature&amp;quot; pendiente: generar código C# a partir del estado de la máquina virtual (clases, métodos&amp;nbsp; e instancias). Vean en el sitio de Piumarta cómo implementó un compilador de su propio lenguaje en C, y que genera en ese lenguaje el código de su propio intérprete. De ahí la idea de &amp;quot;lenguajes auto sustentables&amp;quot;.&lt;/p&gt;
&lt;p&gt;Los tests están en verde:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/ajsodatests.png" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;El &amp;quot;code coverage&amp;quot; es bueno:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/ajsodacc.png" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Hay algún &amp;quot;code smell&amp;quot; para refactorear. Un ejemplo clásico: el gran switch con toneladas de código en el intérprete de byte code. Pero la mayoría de ese código oloroso está en el proyecto AjPepsi. AjSoda está tomando forma,&amp;nbsp;yendo&amp;nbsp;hacia una versión estable. Me tomó sólo 4 horas escribir el código de AjSoda, pero estoy gastando muchas horas escribiendo AjPepsi&amp;nbsp;(10 horas hasta ahora).&lt;/p&gt;
&lt;p&gt;Como de costumbre, ¡me divertí escribiendo este código!&lt;/p&gt;
&lt;p&gt;Más enlaces sobre las ideas de Piumarta/Warth:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://lambda-the-ultimate.org/node/2483"&gt;http://lambda-the-ultimate.org/node/2483&lt;/a&gt;&lt;br /&gt;&lt;a href="http://piumarta.com/"&gt;http://piumarta.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://piumarta.com/pepsi/pepsi.html"&gt;http://piumarta.com/pepsi/pepsi.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://piumarta.com/software/cola/"&gt;http://piumarta.com/software/cola/&lt;/a&gt; 
&lt;p&gt;Comentarios, sugerencias, bienvenidos.&lt;/p&gt;
&lt;p&gt;Nos leemos!&lt;/p&gt;
&lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1665967" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Lenguajes+de+Programaci_26002300_243_3B00_n/default.aspx">Lenguajes de Programaci&amp;#243;n</category></item><item><title>Superando los límites de la Orientación a Objetos (Parte 9)</title><link>http://msmvps.com/blogs/lopez/archive/2008/12/27/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-9.aspx</link><pubDate>Sat, 27 Dec 2008 17:23:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1657841</guid><dc:creator>lopez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1657841</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/12/27/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-9.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Esta es la última entrega de la charla de la charla de &lt;a href="http://www.alereimondo.com/"&gt;Alejandro Reimondo&lt;/a&gt; de &lt;a href="http://www.smalltalking.net/"&gt;Smalltalking&lt;/a&gt;, dictada hace unas semanas en la Universidad Tecnológica Nacional, sede Buenos Aires. Como antes, transcribo no textualmente las palabras de Alejandro en cursiva.  &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/limitesado.png" alt="" /&gt;  &lt;p&gt;&lt;em&gt;En Smalltalking, promovemos la idea de ambiente de objetos. Un ambiente no es su contenido, sino que es una trayectoria en el tiempo, de algo que vemos cambiar, y somos parte de ese cambio, pero ningún elemento que está dentro del sistema, tiene por qué subsistir en el tiempo. Lo que está fijo aca es la identidad del sistema, aunque cambien todas sus partes.&lt;/em&gt;  &lt;p&gt;Es parte del sistemismo. Tenemos como ejemplo&amp;nbsp;una persona, aunque cambien sus células, la seguimos considerando la misma persona. Como mencioné&amp;nbsp;en otro post, es parte del problema de la identidad, planteado desde Leibniz, pero aclarado en gran parte con el sistemismo.  &lt;p&gt;&lt;em&gt;¿Que es Smalltalk en esa definición? Es algo en trayectoria en el tiempo, y cada persona tiene su Smalltalk, no hay un Smalltalk, hay un Smalltalk por cada persona. Y Smalltalk bajó esa idea de ambiente, es el de cada uno. El contenido no lo ves. Cada Smalltalk es un objeto. &lt;/em&gt; &lt;p&gt;&lt;em&gt;En Smalltalking, no hablamos del lenguaje, o del contenido, o de la IDE, aunque hay smalltalkers que dicen que es eso. Cada uno tiene su trayectoria, y va cambiando lo que es ST para sí mismo. &lt;/em&gt; &lt;p&gt;&lt;em&gt;No es algo que termina en una propuesta de arquitectura, esto es algo que está aceptado que todo cambie, y lo que se preserva es la identidad, mientras uno lo esté usando. Cuando falte uno mismo, para nosotros no es un ambiente. &lt;/em&gt; &lt;p&gt;&lt;em&gt;El ambiente es la trayectoria de ese sistema abierto. Es abierto, por sus contenidos, porque puede tener nuevos contenidos, y abierto en el tiempo. &lt;/em&gt; &lt;p&gt;&lt;em&gt;En la práctica, los contenidos de otras alternativas, son más fijos. Ruby, Python, son alternativas que están ancladas en esa caracteristica de Smalltalk, y promovidas para tener difusión. &lt;/em&gt; &lt;p&gt;Yo veo que hay algo más en esos lenguajes y otras tecnologías. Hay una comunidad. Eso es lo que hace que una tecnología o lenguaje tenga más sinergia. No es sólo uno el que programa o diseña. Igual hay que meditar sobre otras propuestas, y no tomar todo lo que es aceptado por una comunidad como verdad absoluta.  &lt;p&gt;&lt;em&gt;Es entender que Smalltak es un soporte para un cambio reiterado, pero es en sí, una trayectoria, no es una definición de un lenguaje o contenido, no son las clases o los frameworks lo que hacen al Smalltalk, sino que pueden cambiar, no es la maquina virtual, que tambien puede cambiar. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Yo veo que el soporte del cambio somos nosotros mismos y la comunidad. Tal vez por eso, no me impresiona esta visión del cambio que plante Alejandro. Lo importante es hacer, y también pensar&amp;nbsp;y meditar sobre lo que hacemos, las herramientas que usamos y cómo las usamos.&lt;/em&gt;  &lt;p&gt;&lt;em&gt;Nosotros en Smalltalking, sólo se nos ha acercado smalltalkers. &lt;/em&gt; &lt;p&gt;Y yo diría que sólo algunos.  &lt;p&gt;&lt;em&gt;Se plantea: definímelo bien lo de ambiente. Y lo mejor, es no definirlo, sino uno entra dentro del método, lo estamos definiendo, y lo estamos cerrando. &lt;/em&gt; &lt;p&gt;No veo que una definición tenga que ser algo cerrado. Justamente, la definición lo que aclara es el camino para la comprensión, dentro de un diálogo. Ese miedo o rechazo a la definición, no lo veo justificado. Se confunde definición con definición cerrada. Ninguna definición en matemáticas congeló a las matemáticas. Un ejemplo en filosofía en  &lt;p&gt;&lt;a title="S&amp;oacute;crates y los nombres" href="http://ajlopez.zoomblog.com/archivo/2007/09/11/socrates-y-los-nombres.html"&gt;Sócrates y los nombres&lt;/a&gt;  &lt;p&gt;&lt;em&gt;Lo que es interesante, es lo que pasa. Cada vez que uno plantea esto, se pregunta, ¿qué estas planteando? &lt;/em&gt; &lt;p&gt;&lt;em&gt;Hay otras formas de plantear lo mismo, como un soporte para un espíritu creativo, como una herramienta para inventar el futuro, como Alice, Squeak, en donde la propuesta es la mejor manera de predecir el futuro es inventándolo. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Muy emocionante plantearlo de esa manera, pero es una manera de garantizarnos un solo futuro. Y todos convergemos a esa idea. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Cada persona tiene distintos caminos, son divergentes, y las realidades son divergentes. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Hoy hay avances concretos en hacer desaparecer la maquina virtual; no ha ocurrido propuestas donde todo está descripto en objetos. En una maquina virtual, no podemos cambiar la maquina virtual mientras está corriendo. Pero en realidad, todo deberia cambiar. Es lo que se llama hoy sistemas sustentables, hoy tiene ese nombre, ST siempre fue asi, sustentabilidad de sistemas, S3. &lt;/em&gt; &lt;p&gt;Algo más sobre eso en mi post  &lt;p&gt;&lt;a title="Self-sustaining Systems, Cola, Pepsi, Coke y Mate - Angel Java Lopez" href="http://msmvps.com/blogs/lopez/archive/2008/01/14/self-sustaining-systems-cola-pepsi-coke-y-mate.aspx"&gt;Self-sustaining Systems, Cola, Pepsi, Coke y Mate - Angel Java Lopez&lt;/a&gt;  &lt;p&gt;&lt;em&gt;Les recomiendo el workshop de Postdam en alemania, es muy curioso las cosas que se plantean, tienen que ver con eso, que todo son objetos y todo puede cambiarse, la máquina virtual y su semántica no es el ambiente, esa idea no es necesaria, todo puede cambiar. &lt;/em&gt; &lt;p&gt;Alejandro menciona la reunión de  &lt;p&gt;&lt;a title="Self-sustaining Systems 2008 (HPI)" href="http://www.swa.hpi.uni-potsdam.de/s3/"&gt;Self-sustaining Systems 2008 (HPI)&lt;/a&gt;  &lt;p&gt;&lt;em&gt;La idea es que los propios lenguajes puedan tener la suficiente expresión para cambiar su propia semática.&lt;/em&gt;  &lt;p&gt;&lt;em&gt;Es muy comun, preguntar, ¿cuál es el mejor Smalltalk? El mío. Se refieren al dialecto que usan. En realidad, es el mío, el que uso. &lt;/em&gt; &lt;p&gt;&lt;em&gt;La comunidad es una formulación, como la de cardumen, y pone o seduce, de que es algo que es positivo, que cuando más instancias de uso de la herramienta hay, es mejor para la herramienta. Hay casos en que no es así, como el caso de Smalltalk que lo usan pocos, pero pervive. &lt;/em&gt; &lt;p&gt;&lt;em&gt;No estoy negando el valor de idea de comunidad, lo que digo, es que para cosas de propagación vertical (padre a hijo) de Smalltalk, no sé si tiene valor. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Cualquiera puede aprender a programar en el &amp;quot;lenguaje&amp;quot; Smalltalk. &lt;/em&gt; &lt;p&gt;Leonardo, un asistente, pregunta: me gustaria que aclares cuando se considera programar en ST.  &lt;p&gt;&lt;em&gt;Donde esta definido una formula, una arquitectura, uno puede plantear un tiempo para aprenderla. Cuando todo puede cambiar, no. Hasta uno cambia y produce cambios en el camino. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Smalltalk como trayectoria, nos hace poner el foco en la actividad en lo que hacemos, mas que en el producto. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Aca tenemos oportunidades, por lo cerca de estamos con las catástrofes, en personas de otras latitudes no es tan común entender lo que hablamos. &lt;/em&gt; &lt;p&gt;Por acá tampoco. Acá se acabó el tiempo. Fue una lástima, porque quedaron temas para tratar. Pueden ver alguna información más en el sitio de &lt;a href="http://www.smalltalking.net" target="_blank"&gt;Smalltalking&lt;/a&gt;. Pero sería interesante que Alejandro pasara en limpio las ideas finales a las que quería llegar. El piensa, por lo que entiendo, que el tema de lenguajes sustentables es importante, y que podemos hacer algo desde Argentina. Veremos cómo se desarrollan esas ideas, en los próximos años de Smalltalking.  &lt;p&gt; &lt;p&gt;Post relacionados  &lt;p&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/12/06/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-5.aspx"&gt;&lt;a title="Superando los l&amp;iacute;mites de la Orientaci&amp;oacute;n a Objetos (Parte 8)" href="http://msmvps.com/blogs/lopez/archive/2008/12/21/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-8.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 8)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/12/14/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-7.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 7)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/12/09/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-6.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 6)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/12/06/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-5.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 5)&lt;/a&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/12/05/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-4.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 4)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/30/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-3.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 3)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/26/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-2.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 2)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/24/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-1.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 1)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/06/mas-all-225-de-objetos.aspx"&gt;Mas allá de objetos&lt;/a&gt; &lt;p&gt;Nos leemos!  &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1657841" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category></item><item><title>Superando los límites de la Orientación a Objetos (Parte 8)</title><link>http://msmvps.com/blogs/lopez/archive/2008/12/21/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-8.aspx</link><pubDate>Sun, 21 Dec 2008 19:13:59 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1657402</guid><dc:creator>lopez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1657402</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/12/21/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-8.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Sigo en esta entrega, transcribiendo y comentando la charla de &lt;a href="http://www.alereimondo.com/"&gt;Alejandro Reimondo&lt;/a&gt; de &lt;a href="http://www.smalltalking.net/"&gt;Smalltalking&lt;/a&gt;, dictada hace unas semanas en la Universidad Tecnológica Nacional, sede Buenos Aires. Pongo la transcripción, no textual, en cursiva. &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/limitesoop2.png" alt="" /&gt;  &lt;p&gt;&lt;em&gt;Una cosa es decir&amp;nbsp;&amp;quot;soy observador, y no me quiero comprometer, soy un orientado&amp;quot;. Eso paso con la orientación a objetos. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Hay una POO, DOO, LOO, y hay con objetos. No hay libros donde se hable de eso. Todos tienen la O en el medio, de &amp;quot;Orientado&amp;quot;, no se habla de &amp;quot;Programación con Objetos&amp;quot;, sino de &amp;quot;Programación Orientada a Objeto&amp;quot;. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Abundan la gente que habla de lo que funciona, pero no te dicen lo que no funciona. &lt;/em&gt; &lt;p&gt;&lt;em&gt;En cambio reiterado, también se puede usar Smalltalk, y ahí se ve a Smalltalk como plataforma, como un buen IDE, ese cambio reiterado en un lugar donde todo se puede cambiar, el todo es un objeto me permite seguir proyectando y hacerlo crecer. Y genera en muchos smalltalkers una actitud de fanatismo. El fanático es el que ve distintas alternativas, elige una, y esa la defiende a muerte. Es una etapa común en los smalltalkers, una etapa de fanatismo. Y a veces, en los demás, es percibido como no entendible. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Y lo digo así, porque yo he pasado esa etapa, y ya no soy fanático, ¿por qué? Porque no veo alternativas ... ;-) ... no hay herramientas comerciales que permitan trabajar de esta manera. &lt;/em&gt; &lt;p&gt;Se refiere a programar con objetos. &lt;p&gt;&lt;em&gt;¿Y por qué? ¿Me pongo a escribir otra cosa? Uno ve que tratan de salir otras cosas, que se parecen a Smalltalk, y luego no lo son, ¿por qué? No entiendo. Hay muchos orientados a objetos, hay pocos ambientes de objetos, y uno es Smalltalk, ¿por qué va a haber otro? Porque siempre lo podemos cambiar. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Lo que quiere decir, es que Smalltalk es cambiable, y de ahí, que no hace falta otra tecnología, en principio.&lt;/em&gt; &lt;p&gt;&lt;em&gt;Ha habido otras cositas tan seductoras como Smalltalk pero no han logrado instalarse. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Algunos usan Smalltalk como sistema cerrado, y valoran Smalltalk con el concepto de imagen. Dicen entonces que Smalltalk es una caja que contiene objetos. &lt;/em&gt; &lt;p&gt;Acá Alejandro mostró un programa en 3 dimensiones, con un pez en una pecera, programado para nadar y reaccionar de forma simple. &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/cardumen.png" alt="" /&gt; &amp;nbsp; &lt;p&gt;&lt;em&gt;No hablamos entre diferencia entre clase y especie. Este pez tiene una colección de pensamientos que puede tener basado en su especie. Este pez es muy estúpido, que sabe ir para hacia adelante, si ve a alguien de su misma especie, va a para ese lado. Cuando esta solo en la pecera, se choca contra todos los bordes. El sistema es pobre, es estúpido. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Si quiero cambiar el sistema, ¿qué puedo hacer? Ir a programar nuevo comportamiento, o puedo agarrar y poner más peces. Pongo diez peces más, y ¿qué pasa? Empiezan a juntarse y se hace un cardumen. El sistema es más eficiente, porque no hay tantas colisiones contra las paredes, los peces aprendieron a no chocarse contra las paredes, y trabajan en grupo. Esto se logra con mas peces. No hubo que cambiar el sistema. &lt;/em&gt; &lt;p&gt;Ese es el punto del ejemplo: no hizo falta cambiar el sistema, sólo agregar objetos. Y el comportamiento que se dió, es emergente: puede o no haber sido previsto por el que colocó la conducta en &amp;quot;pez&amp;quot;. Y no hizo falta codificar, pensar, diseñar a &amp;quot;cardumen&amp;quot;. &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/sistemaspoo.png" alt="" /&gt;  &lt;p&gt;&lt;em&gt;Cuando uno ve esto, piensa en codificar la clase cardumen. Pero vean que curioso, no hubo necesidad. Hay un candidato a objeto que no era necesario hacerlo. Era un objeto que no existía pero era un observable. Hay cosas que observamos que no son objetos. ¿Qué es, entonces,&amp;nbsp;un objeto? Dije que un cardumen no es un objeto. Uds. debian saltar y decir ¿cómo? En las charlas informales de Smalltalking, es un observable, es cardumen. Pero muchos le ponen nombre y lo quieren hacer un objeto. &lt;/em&gt; &lt;p&gt;&lt;em&gt;En cambio, cardumen es una abstraccion. ¿Vamos a poner en el sistema algo que nunca vamos a instaciar?. Estamos haciendo algo que no es del sistema, es algo orientado a objeto.&amp;nbsp;Y en el equipo aparece la evidencia de ese observable, y alguno del equipo lo agarra y lo toma como objeto. Pero no lo es, ¿dónde aparecen los indicadores de que no es un objeto? &lt;/em&gt; &lt;p&gt;&lt;em&gt;Cuando uno tiene un cardumen, y ponemos un vidrio, el cardumen original se divide en dos ¿cuál de los dos es el cardumen? ¿es ésto o es el otro?. O si tenemos dos cardumenes, y se juntan, ¿cuál desaparece? &lt;/em&gt; &lt;p&gt;&lt;em&gt;Se invierte mucha energia en un equipo, para decidir lo que es evidente para todos y no es un objeto. Pero en un ambiente nos damos cuenta. &lt;/em&gt; &lt;p&gt;No queda bien definido a qué se refiere con ambiente, a esta altura de la charla. Venía más adelante una aclaración, pero no alcanzó el tiempo de la charla. Alejandro tiene que comenzar a manejar mejor los tiempos, para lograr transmitir lo que quiere decir. (En un cliente, me hacen practicar dando charlas de 10 minutos... ;-)  &lt;p&gt;&lt;em&gt;Uno de los indicadores es la instanciación, y la identidad. Si no podemos definir la identidad, dudemos de la conveniencia de definirlo como objeto.&lt;/em&gt; &lt;p&gt;&lt;em&gt;Lo interesante es tener un soporte informático para ver un emergente del sistema, al ejecutarlo, antes de que el equipo se de cuenta. &lt;/em&gt; &lt;p&gt;El gran tema acá es la emergencia. Recomendaría para una lectura más amplia, el libro de Mario Bunge &amp;quot;Emergencia y convergencia&amp;quot;, y otros, como su filosofía de la biología, para comprender mejor a sistema y emergencia.  &lt;p&gt;&lt;em&gt;En el sistema, van a emerger cosas, independientes de nuestra visión o voluntad de dirigir. Quedarnos con solo nuestra voluntad, nos olvidamos de estos emergentes que van a suceder. El paradigma de objetos se compromete con el tiempo, el sistema incorpora cambios. &lt;/em&gt; &lt;p&gt;&lt;em&gt;En física tenemos sistemas ideales, reales, y naturales. La física trata los ideales, en la práctica, se tunea, para llevar ese modelo ideal a un modelo real, que funcione en máquinas. Y de la naturaleza nadie la trata. Hay un sistema natural, no tiene tratamiento, desde el momento en que uno lo representa. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Lo interesante es Smalltalk&amp;nbsp;como soporte para que las cosas pasen, antes de darnos cuenta de por qué. Nos sirve para definir objetos, y para observar cosas que ocurrían, en cambio de decir de antemano &amp;quot;esto es un objeto, preserva identidad&amp;quot;. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Esto de estar dentro y fuera del sistema, hace que las personas entiendan a Smalltalk como un sistema vivo, y en mi opinión, es una expresion usada sin cuidad, esto es lejos de ser un sistema vivo. &lt;/em&gt; &lt;p&gt;Post relacionados  &lt;p&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/12/06/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-5.aspx"&gt;&lt;a title="Superando los l&amp;iacute;mites de la Orientaci&amp;oacute;n a Objetos (Parte 7)" href="http://msmvps.com/blogs/lopez/archive/2008/12/14/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-7.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 7)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/12/09/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-6.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 6)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/12/06/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-5.aspx" target="_blank"&gt;Superando los límites de la Orientación a Objetos (Parte 5)&lt;/a&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/12/05/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-4.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 4)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/30/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-3.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 3)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/26/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-2.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 2)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/24/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-1.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 1)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/06/mas-all-225-de-objetos.aspx"&gt;Mas allá de objetos&lt;/a&gt;  &lt;p&gt;Nos leemos!  &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1657402" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category></item><item><title>Superando los límites de la Orientación a Objetos (Parte 7)</title><link>http://msmvps.com/blogs/lopez/archive/2008/12/14/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-7.aspx</link><pubDate>Sun, 14 Dec 2008 15:16:17 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1656721</guid><dc:creator>lopez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1656721</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/12/14/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-7.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Prosigo transcribiendo y comentando brevemente, la charla de &lt;a href="http://www.alereimondo.com/"&gt;Alejandro Reimondo&lt;/a&gt; de &lt;a href="http://www.smalltalking.net/"&gt;Smalltalking&lt;/a&gt;, dictada hace unas semanas en la Universidad Tecnológica Nacional, sede Buenos Aires. &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/limitesoo.png" alt="" /&gt;  &lt;p&gt;Transcribo las palabras de Alejandro en cursiva: &lt;p&gt;&lt;em&gt;Muchas veces se valora el cambio reiterado. Cuando trabajamos formalmente, hacemos un cambio en un sistema, y hacemos en otro sistema, no estan comprometidos uno con el otro. Hicimos un cambio, pero un sistema pudo ser correcto y el otro no. Cuando hay cambio, hay riesgo, entonces minimicemos los cambios. &lt;/em&gt; &lt;p&gt;&lt;em&gt;En base a reconocer este problema, lo que se propone, es hacer iteraciones minúsculas, ciclos iterativos para produccion de software. Y quien tiene éxito trabajando de esta manera, son muchos los que tienen éxito, dicen, &amp;quot;yo trabajo de manera evolutiva&amp;quot;, y es entendido entonces que evolución es cambio reiterado de características. Se trata de usar el cambio iterativo, para cambiar para mejorar. Pero estamos siendo inocentes, cambio implica intención, hay una dirección cuando planeamos la iteración. &lt;/em&gt; &lt;p&gt;No veo que la gente diga que trabaja de manera evolutiva, sino iterativa. Como en otros puntos de la charla, no hay una referencia a porqué se afirma algo. Si pongo el contexto de las metodologías ágiles, en un desarrollo iterativo la dirección de cambio puede ir cambiando, porque cada vez tenemos (los que desarrollan, y quienes necesitan el desarrollo) más idea y contexto de lo que necesitamos. Alejandro apunta a otro tipo de cambio, cuando dice evolución, pero (perdón que insista) de nuevo no da ningún ejemplo concreto. Ese es un problema en las presentaciones de Alejandro. Cada uno puede formarse una idea distinta, de un concepto, porque no está completamente definido, y lo &amp;quot;fuzzy&amp;quot; no se despeja, porque no hay ejemplo. Como siempre, el lenguaje humano es limitado, pero gran parte de esta charla, es una adivinanza, una especie de &amp;quot;veo veo&amp;quot;, &amp;quot;¿qué ves?&amp;quot; &amp;quot;algo que llamo evolución&amp;quot;, y nada más. &lt;p&gt;&lt;em&gt;Evolución es lo que uno observa sobre algo que ya paso, como pasó, no lo sé! Pero tenemos un sistema que es distinto del que era. Luego, escribimos que hubo evolución, pero no fue planificado. &lt;/em&gt; &lt;p&gt;Asimilándolo a ciencia, esta distinción es parecida a lo que habría entre evolución biológica y diseño inteligente. También podría asimilarlo a historia humana vs ingeniería social, donde en la primera, los sucesos pasan (revoluciones, reordenamientos) sin una intervención humana dirigida. &lt;p&gt;&lt;em&gt;Eso tambien tiene implicancia en ecología, se hacen cambios iterativos sobre objetos reales, para tratar de hacer evoluciones favorables, pero no tiene que ver con evolución, evolución describe lo que ya pasó, no es la intención dirigida. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Las teorías, cuando las cambiamos, cambian, no evolucionan. Todo cambio usando un lenguaje implica una voluntad definida a priori. &lt;/em&gt; &lt;p&gt;Yo diria que hay evolución, uno cambia algunas partes de forma dirigida, pero hay un nivel donde el ecosistema del software tiene evolución. Un caso que se me ocurren es la emergencia de Ajax, que no fué planeada, fué un emergente ocurrido ante la combinación no esperada de tecnologías que fueron apareciendo, no para llegar a Ajax, sino para solucionar otros problemas inmediatos.  &lt;p&gt;&lt;em&gt;Cambio implica entender antes de hacer. Evolución no. Es algo que pasó. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Ir diciendo como va el mundo, es útil en algunos contextos. En evolución, miramos lo que pasó hacia atrás, y reflexionamos. El cambio es imperativo. &lt;/em&gt; &lt;p&gt;Acá no entendí si esta frase indicaba: &amp;quot;El cambio (dirigido), al contrario de la evolución, es imperativo&amp;quot;, o &amp;quot;El cambio (en evolución) es imperativo (siempre pasa)&amp;quot;. Así me pasa con varias frases. &lt;p&gt;&lt;em&gt;Uno no sabe todo, porque esta basado en un metodo reductivo.&lt;/em&gt; &lt;p&gt;Yo veo que no es un tema de método. Es un tema de no saber todo, por incapacidad humana, no por&amp;nbsp;culpa del método reductivo.  &lt;p&gt;&lt;em&gt;En evolución, partimos de qué cambió, y ahora observamos. Todo cambio tiene un valor, es innegable. Ahora decir que por ese cambio genero tal cosa, nos perdemos otras cosas que tal vez genero. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Uno planifica cambios, no planificamos evolucion. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Hay un montón de cosas, que conviene decir lo que otro quiere escuchar. No hay que referirle reuso a alguien que dice reuso de componentes. Ahora, ante alguien que busca espacio en algo alternativo, es importante plantear estas diferencias. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Hoy es muy usado evolución, y no se detienen a pensar. Y dicen que cambios iterativos es evolución. Y deforman la palabra, pero evolución es otra cosa. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Evolución te hace dar cuenta, que por mas cambio que uno planea, hay cosas que pasan.&lt;/em&gt; &lt;p&gt;Insisto, hubiera sido interesante haber planteado un ejemplo de evolución en software. Creo que evolución es un término abusado en varios ámbitos. Se lo plantea como similar a la evolución biológica, y ésta tiene características muy definidas. Y si hablamos, en vez de evolución biológica, de evolución, hay que definir más precisamente a qué se refiere entonces esa palabra en solitario. &lt;p&gt;Post relacionados  &lt;p&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/12/06/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-5.aspx"&gt;&lt;a title="Superando los l&amp;iacute;mites de la Orientaci&amp;oacute;n a Objetos (Parte 6)" href="http://msmvps.com/blogs/lopez/archive/2008/12/09/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-6.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 6)&lt;/a&gt;&lt;br /&gt;Superando los límites de la Orientación a Objetos (Parte 5)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/12/05/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-4.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 4)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/30/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-3.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 3)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/26/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-2.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 2)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/24/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-1.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 1)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/06/mas-all-225-de-objetos.aspx"&gt;Mas allá de objetos&lt;/a&gt; &lt;p&gt;Nos leemos!  &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1656721" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category></item><item><title>Superando los límites de la Orientación a Objetos (Parte 6)</title><link>http://msmvps.com/blogs/lopez/archive/2008/12/09/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-6.aspx</link><pubDate>Tue, 09 Dec 2008 09:59:45 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1656251</guid><dc:creator>lopez</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1656251</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/12/09/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-6.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Sigo transcribiendo (notas no textuales) la charla de &lt;a href="http://www.alereimondo.com/"&gt;Alejandro Reimondo&lt;/a&gt; de &lt;a href="http://www.smalltalking.net/"&gt;Smalltalking&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/origenesoo.png" alt="" /&gt; &lt;/p&gt; &lt;p&gt;Como antes, transcribo lo de Alejandro en cursiva:&lt;/p&gt; &lt;p&gt;&lt;em&gt;Cuando empieza a popularizarse? Tiene que ver con toda esa historia y el vínculo con la ciencia. Y otra cosa interesante, plantea un camino iterativo de superación. Uno+uno, 2+1, nos alienta a ese inductivismo de hacer objetos hasta que te mueras. &lt;/em&gt;&lt;/p&gt; &lt;p&gt;Ahora, Alejandro embate contra la especialización, yo lo veo como recordatorio de no olvidarse del sistemismo.  &lt;p&gt;&lt;em&gt;Hay grandes obras que se han construido de esta manera, en ingeniería, utilización de recursos, las represas, ingeniería nuclear, son obras dignas de todo nuestro respeto, pero no podemos dejar de ver los efectos que todo tiene (peces muertos, una gaviota picoteando), y cuando veo eso, en Atucha 2, los que lo construyeron, ya no están. Cuando los peces empezaron a flotar, ellos ya no estaban. Trataron de llamar a los ingenieros. Pero no, ese no es mi área, no es mi pedazo de la torta. No forma parte de mi óptica, se llama a biólogos, hay un problema que la usina produce tres grados más que van al lago, más temperatura, menos oxígeno, menos peces. ¿Que podemos hacer? Pongamos peces que necesiten menos oxigeno. ;-). Tratamos de emparchar, en vez de ver lo que ya hicimos. No digo que está mal construida la usina, sino que cada vez que se enciende una luz, se proyecta una sombra. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Hay gente que protesta, en el Congreso, cuando ya está hecho, y son los que se dedican al arte, y ninguno entiende mas allá de su torta. Cuando más es su estudio profundo, más huecos tiene, y más temas no son de él. &lt;/em&gt; &lt;p&gt;Aparece un mensaje sobre el &amp;quot;slide&amp;quot; &amp;quot;Smalltalk como plataforma iterativa&amp;quot;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Lo interesante de Smalltalk es hacer cambios y ensayos, es un proceso iterativo. Quien trabaja de esa manera, va a ver a herramientas de Smalltalk, más que un lenguaje. Valora un browser, un inspector. Son muy valorables las herramientas que hay en ST. &lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/caracteroo.png" alt="" /&gt;&amp;nbsp;&lt;br /&gt;&lt;em&gt;La más notable, ver para creer. Quien ve algo, cree en ese algo, nadie cree en algo que no vió. El identificar un objeto, verlo, implica no dudar sobre su existencia, es algo valiosísimos, es algo muy utilizado cuando trabajamos con objetos, ¿por qué? ¿por que es así la realidad? No, porque queremos que otro no dude. &lt;/em&gt; &lt;p&gt;&lt;em&gt;No lo vean que estoy diciendo que esta mal, hay puntos de valor que encontramos con objetos. &lt;/em&gt; &lt;p&gt;Acá hubo una discusión sobre modelo, no la seguí completamente.  &lt;p&gt;&lt;em&gt;Yo no quiero decir dónde tienen que ir los demás, sino que gente de esta región, busque algún ancla en estas críticas, para propugnar un avance.&amp;nbsp;Lo mío no es ataque de la ciencia, sino crítica. &lt;/em&gt; &lt;p&gt;Yo reveria esta postura, estudiaría Bunge y el sistemismo, la ciencia no es como EL metodo que describe Alejandro.  &lt;p&gt;&lt;em&gt;Entonces, se ve a Smalltalk como un completo y robusto de conjunto de componentes &amp;quot;re&amp;quot; usables. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Cuando uno habla de POO, DOO, LOO, esta la palabra, y hacemos orientado a objetos. Esas palabras empiezan con distintas letras (P, D, L) y termina con O de Objetos. Pero nadie se detiene en la O del medio. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Vamos a POO, dice que hay algo que es programación con objetos, pero POO no lo es, sino sólo orientado a objetos. Todos toman que la &amp;quot;orientada&amp;quot; siempre va. Pero se está diciendo que hay algo que es programación con objetos, al que no van a llegar. &lt;/em&gt; &lt;p&gt;&lt;em&gt;En las revistas de Smalltalk, se dibujó un puente entre lo tradicional y objetos. Planteamos una transición, para llegar a objetos. Eso fué hace veinte anios, pero todavía estamos encima del puente, sin ver la&amp;nbsp;O del medio, no hemos abandonado lo de &amp;quot;orientado&amp;quot;. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Tenemos una tecnología para trabajar sobre la realidad y no la estamos abordando. No haciendo dibujos sobre la realidad, sino que es el instrumento para llegar a la realidad misma.&amp;nbsp;Si nos quedamos en el ver, pero no vamos al tocar, y realimentar con nuestros sentidos, vamos a estar del lado de lo orientado, y en nuestros problemas de como pensamos al mundo. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Acá de nuevo, hubiera sido interesante mostrar un ejemplo de &amp;quot;tocar&amp;quot; objetos en Smalltalk, contra &amp;quot;ver&amp;quot; diagramas, código y otros artefactos.&lt;/em&gt;  &lt;p&gt;&lt;em&gt;El tema de todo esto de &amp;quot;ver&amp;quot;, de decir, &amp;quot;esto es&amp;quot;, y nos produce una pelota, una caja, y decir que lo que no esta dibujado acá no existe, y esto es una caja negra, nos pone afuera. Eso es el encapsulamiento, tiene un monton de virtudes. Pero, ¿cuales son las limitaciones? ¡Qué mejor que usar cajas negras! ¡Qué mejor que no reinventar la rueda! Nos estamos cortando un camino: los que producir software, queremos producir software, que mejor que hacerlo nosotros, que es nuestro trabajo. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Acá yo tengo una posición: hay distintos tipos de programadores. Hay quienes les gusta hacer la rueda, y otros que quieren una rueda ya hecha, para construir nuevas cosas encima de ella. Alejandro, veo, está muy centrado en pensar que el camino del desarrollo del software es armar algo sustentable por uno mismo o por su grupo de trabajo. Hay evidencia de excelentes programadores, equipos, y proyectos, donde lo que se hace es montarse sobre lo ya hecho por otro, para seguir avanzando y creando cosas nuevas sobre eso.&lt;/em&gt;  &lt;p&gt;&lt;em&gt;Entonces, en algun ámbito, se dice que Smalltalk es completo y robusto, que es un&amp;nbsp;conjunto de componentes re-usables. &lt;/em&gt; &lt;p&gt;&lt;em&gt;¿Que es re-uso? Pregunta tonta si la hay. &lt;/em&gt; &lt;p&gt;Alejandro propone una interpretación de reuso, que sólo la encontré en su discurso.  &lt;p&gt;&lt;em&gt;- Poner un componente, y lo usas en un sistema, y en otros sistema. Es no es reuso, es uso. &lt;/em&gt; &lt;p&gt;Acá alguien acotó que un &amp;quot;un objeto es él, y las relaciones con otros&amp;quot;. De acuerdo, es una descripción cercana al sistemismo.&lt;/p&gt; &lt;p&gt;&lt;em&gt;No es reuso, es uso. Usabilidad en el software se busca desde los 50, salio ADA, Pascal. La diferencia es que todos hemos cambiado, y las personas, ahora lo toman con naturalidad, entonces no. El planteo de Modula fueron componentes. Hoy los vemos usados. Pero eso da usabilidad. Nos permite usarlos varias veces. Pero no es reuso. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Una instancia de una abstracción, es válida en un contexto. Cuando queremos usarla en otro contexto, es kamikazee. Entonces, esto no nos anda en otro lugar. La abstracción, si es rica, es interesante. Las altas abstracciones son poco valiosas, están desprovistas de información, las que están más abajo, tienen demasiado vínculo con el contexto. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Sería interesante ver un ejemplo concreto de abstración alta, baja, instancia de abstracción y contexto.&lt;/em&gt;  &lt;p&gt;&lt;em&gt;Lo valioso a nuestro nivel de desarrolladores, es lo intermedio. Si la abstracción es intermedia, cuando vamos a otro contexto, lo que hacemos es refinarla, porque nuestra intención es instanciarla en con éxito, estamos partiendo de una instancia refinada, que no es lo mismo que usamos en otro sistema. Eso es lo que tiene de valor en nuestras abstracciones, el poder refinarlas para usarla en otro sistema.&amp;nbsp; Ese refinamiento no se puede lograr a nivel de instancia. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Los componentes no son reusables, no es posible su reuso, es posible el uso. Y es inocente, es lo que ocurre en la industria. Los componentes no son importantes. El reuso es aplicable a las abstracciones pero no a los componentes. El reuso implica refinarla. ¿Que conecta una abstracción y una refinación de esa abstraccion? El tiempo, y decimos, &amp;quot;mi sistema evolucionó&amp;quot;. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Quien ve reuso en componentes, tiene una vision ingenua. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Las librerías de Modula, no permitían hacer práctico el refinamiento, y ahí sí&amp;nbsp;tuvo un lugar Smalltalk, que sí pudo hacer eso. Y HOY tenemos un conjunto de componentes robusto, pero que es resultado del tiempo. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Quien lo ve desde ese punto, valora su contenido, se fija lo que hay&amp;nbsp;acá, y le sirve para desarrollar sistemas. Qué frameworks de clases hay, y como podemos usarlos. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Acá hay mucho para hablar, y que hacemos frecuentemente en Smalltalking, cada charla todos los meses.&amp;nbsp; Un componente es un instancia, planteado como una caja, y la usamos en distintos contexto, lo valioso es que lo llevo a otro contexto y anda. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Pero puesto en distintos contexto, puede no servir. ¿Que cambiar? ¿La forma? Eso es usarlo. Si cambiamos la idea, es reusarlo. Hay un proceso destructivo de las viejas ideas, y está sostenido en el tiempo. No es un proceso donde esto viejo no me importe, y lo escribo de nuevo para otro mercado. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Smalltalk me da el soporte para cambiar &lt;strong&gt;la idea&lt;/strong&gt;. &lt;/em&gt; &lt;p&gt;&lt;em&gt;¿Qué es lo constante cuando aca decimos tiempo? Lo constante es uno, es la trayectoria de uno como ser humano. Dependiendo de las oportunidades que tengas de usar tus componentes o abstracciones, pero el soporte son las personas. Uno no es el mismo a medida que pasa el pasa el tiempo. Entonces, Smalltalk es un soporte para el cambio de personas. &lt;/em&gt; &lt;p&gt;&lt;em&gt;No tienen valor las cosas, no compres componentes. Sabemos hacer ruedas. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Lamentablemente, todos los libros dicen lo que se conoce hoy, no dudan de eso por la informacion que hay. Cuanto lugar hay para la duda, no existe. No podes pensar de otra manera. Tenemos una punta para desenroscar algo mas, y hacer un aporte. Hay algo que no se ve, que está oculto, y se lo niega. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Vemos analogías en otros lados, fuera de informática, siempre hemos usado la misma forma de disectar el mundo, y lo que no vemos no existe. No digo que no tengamos que hacerlo asi, sino que hay puntos sobre los que podemos trabajar.&lt;/em&gt;  &lt;p&gt;Post relacionados  &lt;p&gt;&lt;a title="Superando los l&amp;iacute;mites de la Orientaci&amp;oacute;n a Objetos (Parte 5)" href="http://msmvps.com/blogs/lopez/archive/2008/12/06/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-5.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 5)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/12/05/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-4.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 4)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/30/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-3.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 3)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/26/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-2.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 2)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/24/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-1.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 1)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/06/mas-all-225-de-objetos.aspx"&gt;Mas allá de objetos&lt;/a&gt;  &lt;p&gt;Nos leemos!  &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1656251" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category></item><item><title>Superando los límites de la Orientación a Objetos (Parte 5)</title><link>http://msmvps.com/blogs/lopez/archive/2008/12/06/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-5.aspx</link><pubDate>Sat, 06 Dec 2008 10:47:26 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1655982</guid><dc:creator>lopez</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1655982</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/12/06/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-5.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Sigo transcribiendo (notas no textuales) la charla de &lt;a href="http://www.alereimondo.com/" target="_blank"&gt;Alejandro Reimondo&lt;/a&gt; de &lt;a href="http://www.smalltalking.net/" target="_blank"&gt;Smalltalking&lt;/a&gt;. En el anterior post habíamos llegado a un slide:  &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/puntodepartida.png" alt="" /&gt;  &lt;p&gt;Transcribo lo de Alejandro en cursiva: &lt;p&gt;&lt;em&gt;Los abordajes que hacemos acá, son abordajes de informáticas, que se ve poco, se habla más de computación que de informática, mientras en otras ciencias se ven temas de informática. Y aplican el método. No está mal, es el método. El problema es no reconocer las limitantes. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Hay algo inobjetable que aportó la masificación del concepto de objetos, que es la diferencia fundamental de trabajar con objetos. De la manera que se utilizaba antes, uno se focalizaba en qué tiene que hacer el sistema, uno trabajaba en el hacer. Los objetos aportaron un cambio en la óptica, en con qué se hacen las cosas. Uno con lápiz y papel, podemos hacer factura, pero también puede hacer cartas de amor. Ahí vienen las ventajas, en no focalizarse en que hacer, sino con qué lo hace, para usar las cosas en distintos ambientes. Cuando la gente empezo a entender, compró el tema de objetos, cuando vió que podia usarlo en distintos lugares. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Otra cosa, es que pudo hacer práctico el trabajo y utilizar encapsulamiento. Y con el tiempo empezaron a aparecer usos y construcciones, que empezaron a ser valoradas por la belleza, por otras cosas que no eran sólo la utilidad. &lt;/em&gt; &lt;p&gt;Aparece sobre el &amp;quot;slide&amp;quot; un mensaje &amp;quot;Haciendo software como se hace ciencia&amp;quot;. &lt;p&gt;&lt;em&gt;En el primer abordaje, se hace software como se hace ciencia. La propuesta es hacer software, utilizando EL método, y eso se promovió muchísimo en los ámbitos donde se hacía ciencia, y hay algo que sospechar, que eso nos pasó a todos los que empezamos y veíamos que hacer software no podia ser entendido en algo tan metódico, vamos dijimos en su momento, dijimos que había algo de arte. Eso estaba siendo ocultado, con estos métodos. Esto es lo que hay que hacer, y hay que hacer ciencia. &lt;/em&gt; &lt;p&gt;Como en otras partes de la charla, hubiera sido interesante tener un ejemplo de este caso. &lt;p&gt;&lt;em&gt;Se puso los lugares donde se enseña informática, cerca de donde se enseña ciencia. Pero en ciencia hubo miles de años de estabilización, pero en software no. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Todos son objetos, todos podemos usar EL método, y hacemos una formalización, pero hay algo que está oculto, y no podemos no verlo. &lt;/em&gt; &lt;p&gt;Aparece en el &amp;quot;slide&amp;quot; un mensaje &amp;quot;Industria del software, Elementos para nuevos negocios&amp;quot;. &lt;p&gt;&lt;em&gt;El abordaje de modular, con Pascal, Modula, Ada, nos proponía una industria de software, que el software tiene que ver con los negocios, y que eso tiene algun vinculo con la informática. &lt;/em&gt; &lt;p&gt;Aparece en el &amp;quot;slide&amp;quot; un mensaje &amp;quot;Software como expresión de arte&amp;quot;. &lt;p&gt;&lt;em&gt;Y el software como expresion de arte, es la formula del pibe que es &amp;quot;cool&amp;quot;, que es una óptica distinta, pero no formalizado. Ninguna de las otras dos nos da soporte a ésta. &lt;/em&gt; &lt;p&gt;Aparece en el &amp;quot;slide&amp;quot; un mensaje &amp;quot;Smalltalk como ciencia&amp;quot; cerca del mensaje &amp;quot;Haciendo software como haciendo ciencia&amp;quot;. &lt;p&gt;&lt;em&gt;Vean Smalltalk como lenguaje, para hacer software como ciencia. Se ha utilizado con mucho éxito de esa manera. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Cuando se hace uso de Smalltalk para esta parte, se ve a Smalltalk como un lenguaje, minimalista, elemental, muy práctico, para descomponer y escribir piezas pequeñas. Y eso interesa a quien tiene que trabajar de manera eficiente de esta manera. No digo que no podamos trabajar o que no debamos trabajar. He visto y trabajdo con Smalltalk en esos ámbitos. Si busca trabajan con objetos, Smalltalk es el único ambiente de uso comercial, van a poder trbaajar en esas areas.&lt;/em&gt;  &lt;p&gt;Luego, Alejandro pasó a comentar temas, como el origen de la OO, que veremos en un próximo post. &lt;p&gt;Post relacionados &lt;p&gt;&lt;a title="Superando los l&amp;iacute;mites de la Orientaci&amp;oacute;n a Objetos (Parte 4)" href="http://msmvps.com/blogs/lopez/archive/2008/12/05/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-4.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 4)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/30/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-3.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 3)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/26/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-2.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 2)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/24/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-1.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 1)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/06/mas-all-225-de-objetos.aspx"&gt;Mas allá de objetos&lt;/a&gt; &lt;p&gt;Nos leemos! &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1655982" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category></item><item><title>Superando los límites de la Orientación a Objetos (Parte 4)</title><link>http://msmvps.com/blogs/lopez/archive/2008/12/05/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-4.aspx</link><pubDate>Fri, 05 Dec 2008 09:06:13 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1655879</guid><dc:creator>lopez</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1655879</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/12/05/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-4.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Sigo transcribiendo (notas no textuales) la charla de &lt;a href="http://www.alereimondo.com/" target="_blank"&gt;Alejandro Reimondo&lt;/a&gt; de &lt;a href="http://www.smalltalking.net/" target="_blank"&gt;Smalltalking&lt;/a&gt;. Mostró un slide con un dibujo de bebé:  &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/bebe.png" alt="" /&gt;  &lt;p&gt;Pongo lo que dijo Alejandro (aproximadamente) en cursiva: &lt;p&gt;&lt;em&gt;Hay un dibujito que se ha usado bastante, mira, mamá, todos son objetos, quedémonos tranquilos. Es algo muy utilizado para vender, si pensamos así, que la inocencia nos valga. &lt;/em&gt; &lt;p&gt;No sé cuántos de los asistentes a la charla vieron algún dibujo así. Hace tiempo que no aparece. El auditorio de esta charla, principalmente estudiantes universitarios, pertenece a una generación que no vió ese tipo de dibujo.  &lt;p&gt;&lt;em&gt;Está bueno decir todos son objetos, pero es muy inocente. ¿No sospecharon cuando les dijeron, &amp;quot;pone objetos&amp;quot;? Es demasiado simple. Muy simple, Y cuando uno&amp;nbsp;lo piensa,&amp;nbsp;todos son objetos, pero cuando uno ve la realidad, a todos nos va yendo mal. &lt;/em&gt; &lt;p&gt;Bueno, yo no diría a todos.  &lt;p&gt;&lt;em&gt;Hay cosas fuera de control, y hay problemas en el software, por ejemplo, en escalabilidad. Si 1+1 funciona, seguimos hasta el infinito, esa proyección inductiva que todos son objetos, nos pone en un camino infinito, y tenemos un mundo para darnos cuenta que cada vez que agregamos más de lo mismo,&amp;nbsp;cada vez complicamos más. Esa complejidad que no vemos cuando empezamos por un sistema simple. &lt;/em&gt; &lt;p&gt;&lt;em&gt;He visto mucha gente capacitada, que dice que todos son objetos. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Pero es interesante, ese dibujo de bebé, nos estan seduciendo a sentirnos que tenemos intercambiar, y tener ese rol. &lt;/em&gt; &lt;p&gt;No entendí esa frase.&amp;nbsp;Pasamos a otro&amp;nbsp;slide, con título Punto de Partida.&amp;nbsp;  &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/puntodepartida.png" alt="" /&gt;  &lt;p&gt;&lt;em&gt;No vamos a tratar acá, hay todo un método que sustenta esto, el tratar de abordar a las cosas descomponiéndolas, en el fondo, entendiéndolas. Normalmente, cuando se nos presenta una problemática, lo que se nos sugiere hacer, es decomponerla en partes, seccionarla, y si todo esto era un problema, ahora tenemos tres poblemas mas simples. &lt;/em&gt; &lt;p&gt;Yo recordaría aquí a &lt;a href="http://en.wikipedia.org/wiki/Descartes" target="_blank"&gt;Descartes&lt;/a&gt;. En su método, algo de esto recomienda, pero también recomienda, como cuarto paso, revisar que no nos hayamos olvidado algo.  &lt;p&gt;&lt;em&gt;Cuando atacamos cada problema, vamos seccionándolo. Hay que ser cuidadoso, hay que ver donde seccionar. Hay que saber donde cortar el sistema,para que el problema sea más entendible. Es algo bien enseñado, no tengo que hablar de esto, es diseccionar sistemas, es cuestión de tener un hacha. A medida que tiene más partes, más comienza a ser todo ser inmanejable. No se sabe cual es el vínculo entre las partes. En esa partición estratégica que hicimos, dos partes no tendrían que estar asociadas, pero están. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Lo más curioso, no nos damos cuenta nunca, cuando más partimos, más queda entre medio, más queda entre los intercisios, y lo que entendemos, cada vez es menor, este método genera no solo incertidumbre, cada vez entendemos menos, lo que importa son las partículas, y en el medio lo negamos, es vacío, todos son objetos, son pelotas, es la primera parte del paradigma, entonces, encontramos esas pelotas, marcamos las relaciones, pero en medio hay algo incontrolable, que si lo tocamos, hay cambios en otras partes. &lt;/em&gt; &lt;p&gt;Acá creo que hubiera sido bueno mostrar un ejemplo, para mostrar esa pérdida con un caso concreto.  &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;Es una forma de abordar la realidad, es la única que tenemos. No tratamos de sugerirles que hay otra forma, solamente estamos siendo criticos, de lo que hacemos todos los dias. &lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;em&gt;Cada vez que arrancamos con algo, empezamos a disectar. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Ese metodo que es lo que produce? ese metodo produce, un sistema, que se entiende como un conjunto de reglas, en donde uno puede chequear, la validez de ese sistema, mientras nada cambia, es un sistema cerrado. Y si una encapsula un conjunto de reglas, lo podrá llamar clases. Y eso está muy bueno para lo que es el estudio y la descripción de lo que es el sistema. &lt;/em&gt; &lt;p&gt;&lt;em&gt;¿Pero qué compromiso tiene con la realidad? &lt;/em&gt; &lt;p&gt;&lt;em&gt;El sistema real no tiene compromiso con cómo lo dibujemos. Cada persona que venga con un hacha nueva, lo parte distinto. Hay un componente importante que está dada por la óptica, y no con la realidad. Queda como uno ve la realidad, más que la realidad. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Cuando un sistema es cerrado, si uno cambia una de las reglas, algo cambia, el sistema resultante es otro sistema, el anterior puede ser correcto, y el siguiente no serlo. Es decir, de ese sistema al sistema modificado, un cambio produce otro sistema, y el primero no tiene relación con el segundo, porque no tiene compromiso con la realidad, es una descripción. &lt;/em&gt; &lt;p&gt;Alejandro hace años que viene afirmando esta postura. Pero creo que le falta algún ejemplo, él ya está tan acostumbrado a transitar este argumento, que le parece claro. Pero el que enfrenta este tema por primera vez, sin saber hacia dónde se quiere llegar, o sin tener una referencia concreta de lo que se está hablando, se puede perder, o entenderlo de otra forma.  &lt;p&gt;&lt;em&gt;Ese método que estamos usando, siempre se compromete, como mucho, a definir la óptica que tenemos con la realidad, pero no está comprometida con la realidad. &lt;/em&gt; &lt;p&gt;Recordemos la experiencia de Alejandro con el sistema de simulación de locomotora. Ahí él armó un sistema, que era el reflejo de la realidad. Hacia ahí apunta el argumento, en parte. Para el que haya usado Smalltalk, también le parecerá algo conocido el camino al que quiere llegar Alejandro: armar el sistema usando el propio ambiente.  &lt;p&gt;&lt;em&gt;No ve a la implementación como una herramienta de percepción. Utiliza la cabeza para hacer los cortes, obtiene un sistema, y como un cambio en ese sistema, resulta en una vuelta atrás, no es utilizado para entender la realidad del sistema. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Cuando obtenemos un modelo, la codificación no es utilizada para entender la realidad que modelo. &lt;/em&gt; &lt;p&gt;Yo veo que gran parte de esta discusión, ya ha sido encarada por los propulsores del diseño dirigido por el modelo, Eric Evans a la cabeza. Aunque ellos no usarían siempre la computadora, sino el lenguaje ubicuo, y otras herramientas de comunicación con el usuario. Pero Alejandro apunta a armar el sistema en el ambiente.  &lt;p&gt;&lt;em&gt;Usamos representaciones, dibujos, pero no usamos la computadora. El sistema virtual que estamos generando, no tenga la posibilidad de utilizar de realimentarnos. es imposible tener experiencia. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Estoy hablando antes de ambiente. Le decimos a la gente, usa la computadora, pero nosotros no las usamos. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Podemos termina ahi, o podemos tratar de ver alternativas, y ver que es una consecuencia del método que estamos tomando. Tratemos de hacer explícita esa limitación. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Se invierte mucha energía en enseñar este método, este método de disectar, pero no queda tiempo para enseñar cuales son los límites del mismo. Mucha gente no tuvo la posibilidad de darse cuenta cuándo ese método no funciona. &lt;/em&gt; &lt;p&gt;&lt;em&gt;No estoy diciendo de desecharlo,&amp;nbsp;de tirar algo que da valor.&amp;nbsp;No. Si yo dijera &amp;quot;tiremos eso, y les doy otra cosa X&amp;quot;, estoy cometiendo el mismo error, de darles&amp;nbsp;que en cambio de &amp;quot;todo son objetos&amp;quot;, ahora es &amp;quot;todo son X&amp;quot;. Quiero motivarlos, para mostrar los límites. Porque sino la gente aplica las cosas rutinariamente, y luego trata de emparcharlas, con la inducción de sigamos siendo lo mismo. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Si hay un problema en lo que hiciste, escribiste mal esto, esto, arréglalo. Yo no me quedo tranquilo en hacer siempre lo mismo. Sin reflexionar sobre la realidad. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Nada mas difícil que un diseño para ver cuando hay una falla. Los intercisios no están escritos en ninguna parte. Son negados con pongamos mas objetos.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Post relacionados&lt;/p&gt; &lt;p&gt;&lt;a title="Superando los l&amp;iacute;mites de la Orientaci&amp;oacute;n a Objetos (Parte 3)" href="http://msmvps.com/blogs/lopez/archive/2008/11/30/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-3.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 3)&lt;/a&gt;&lt;br /&gt;&lt;a title="Superando los l&amp;iacute;mites de la Orientaci&amp;oacute;n a Objetos (Parte 2)" href="http://msmvps.com/blogs/lopez/archive/2008/11/26/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-2.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 2)&lt;/a&gt;&lt;br /&gt;&lt;a title="Superando los l&amp;iacute;mites de la Orientaci&amp;oacute;n a Objetos (Parte 1)" href="http://msmvps.com/blogs/lopez/archive/2008/11/24/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-1.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 1)&lt;/a&gt;&lt;br /&gt;&lt;a title="Mas all&amp;aacute; de objetos" href="http://msmvps.com/blogs/lopez/archive/2008/11/06/mas-all-225-de-objetos.aspx"&gt;Mas allá de objetos&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Nos leemos!&lt;/p&gt; &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1655879" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category></item><item><title>Superando los límites de la Orientación a Objetos (Parte 3)</title><link>http://msmvps.com/blogs/lopez/archive/2008/11/30/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-3.aspx</link><pubDate>Sun, 30 Nov 2008 18:31:14 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1655433</guid><dc:creator>lopez</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1655433</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/11/30/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-3.aspx#comments</comments><description>&lt;p&gt;Sigo con la transcripción no textual de la charla de &lt;a href="http://www.alereimondo.com/" target="_blank"&gt;Alejandro Reimondo&lt;/a&gt; de &lt;a href="http://www.smalltalking.net/" target="_blank"&gt;Smalltalking&lt;/a&gt;, dada hace unas semanas en la Universidad Tecnológica Nacional, aquí en Buenos Aires, Argentina. Alejandro comentó algunos trabajos en los que participó, desde los noventa:&lt;/p&gt; &lt;p&gt;&lt;em&gt;Participé de un proyecto&amp;nbsp;sobre cine argentino. Fue interesante ayudar durante 2 años, fue interesante ayudar a investigadores de la historia del cine argentino. En esa época, 1995, no había salido Windows 95, no había muchos productos multimedia. Se armó un producto donde todas las fotografías se vinculaban unas a otras, y los personajes y temas relevantes, tenían su ficha. Fue mantenido y creado por un grupo de investigadores coherramientas que fuimos haciendo. Fue la primera cinemateca en el mundo que tuvo un CD ROM de cine de su país. &lt;/em&gt; &lt;p&gt;Pueden encontrar más información sobre el proyecto en &lt;p&gt;&lt;a href="http://www.leedor.com/notas/ver_nota.php?Idnota=610" target="_blank"&gt;Cine argentino en Cd Roms&lt;/a&gt; &lt;p&gt;Fue creado por la Fundación Cinemateca Argentina, pero no encontré un sitio de esta fundación. &lt;p&gt;&lt;em&gt;En el 2000, participé del proyecto Halcón de IBM. Es un sistema de tracking de documentación de negocios grandes en Sudamérica. Había sido hecho en Smalltalk y nos tocó hacer una actualización. &lt;/em&gt; &lt;p&gt;Estos proyectos estaban enumerados en el &amp;quot;slide&amp;quot; que presentó en ese momento. No mostró software andando:  &lt;p&gt;&lt;em&gt;No voy a mostrar software. Pero traje algo para que no se aburran escuchandome hablar. En el producto Virtual Fashion, hicimos un enganche de Smalltalk con un engine 3d, de una empresa española,&amp;nbsp; en el 2005, 2006, hicimos el ambiente Smalltalk que se monta en cima del ambiente de 3d de ellos, para diseño de moda virtual. En su tiempo, hubo una competición entre diseñadores, donde los diseñadores usaban virtualmente las telas que se estaban presentando en ese momento.&lt;/em&gt;  &lt;p&gt;La empresa para&amp;nbsp;la que se hizo este desarrollo es Reyes Informática:  &lt;p&gt;&lt;a title="http://www.reyes-infografica.com/" href="http://www.reyes-infografica.com/"&gt;http://www.reyes-infografica.com/&lt;/a&gt;  &lt;p&gt;El producto es Virtual Fashion  &lt;p&gt;&lt;a title="http://www.virtual-fashion.com/html/en/" href="http://www.virtual-fashion.com/html/en/"&gt;http://www.virtual-fashion.com/html/en/&lt;/a&gt;  &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/virtualfashion.png" alt="" /&gt;  &lt;p&gt;Pueden ver una galería de videos con el producto andando en:  &lt;p&gt;&lt;a title="http://virtual-fashion.com/html/en/gallery_video.php" href="http://virtual-fashion.com/html/en/gallery_video.php"&gt;http://virtual-fashion.com/html/en/gallery_video.php&lt;/a&gt;  &lt;p&gt;&lt;em&gt;Atlas.TI es de hermeneútica, interpretación de texto. Si uno quiere interpretar párrafos de la Biblia, y los quiere comparar con párrafos del Corán, lo puede manejar por software. Puede enlazar con otros textos, por ejemplo, documentos y contratos. Atlas.TI expandió eso para manejar lo multimedial, y ahora maneja Google Earth. Puede vincular el texto al mapa del mundo de hoy. Esa compañía está trabajando más de quince años, son líderes en el mercado, está escrito en Smalltalk, y me ha tocado darles asistencia desde acá, Argentina, para ese proyecto. &lt;/em&gt; &lt;p&gt;El producto es el  &lt;p&gt;&lt;a title="http://www.atlasti.com/" href="http://www.atlasti.com/"&gt;http://www.atlasti.com/&lt;/a&gt;  &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/atlasti.png" alt="" /&gt;  &lt;p&gt;Pueden encontrar información en español en  &lt;p&gt;&lt;a title="http://www.atlasti.com/productintro_es.html" href="http://www.atlasti.com/productintro_es.html"&gt;http://www.atlasti.com/productintro_es.html&lt;/a&gt;  &lt;p&gt;donde leemos:  &lt;blockquote&gt; &lt;p&gt;¿Qué es ATLAS.ti? &lt;br /&gt;Durante una década, ATLAS.ti ha sido el líder del mercado en software profesional QDA (para el Análisis Cualitativo de Datos). ATLAS.ti es utilizado en todo el mundo por instituciones e investigadores líderes. Siempre que se precisa de un análisis profesional de texto y datos multimedia, simplemente no existe alternativa a ATLAS.ti.  &lt;p&gt;Compatibilidad con todos los idiomas &lt;br /&gt;ATLAS.ti puede procesar datos prácticamente en cualquier idioma, utilizando todos los juegos de caracteres disponibles, incluidos japonés, chino, árabe, hebreo y muchos más. No obstante, recuerde que la interfaz del programa se mantiene en inglés*, (independientemente del idioma de su material). &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Siguió Alejandro con:  &lt;p&gt;&lt;em&gt;Hace dos anios o 3 vengo participando en un esquema de negocios, para el armado de este tipo de productos, fotoalbumes, con cada foto se hacen estos libros. Diseñamos una forma de hacer los libros, mi participación mayor es en hacer este tipo de software. Con PhotoShop se puede hacer, pero lo interesante de nuestro producto, es que el producto final se hace con la dedicación de 2 horas por cada cliente a atender. Entonces, es un software que tiene que ser muchísimo más rápido y eficiente que PhotoShop.&amp;nbsp;Se usan fotos comunes, y hay un metodo de armado. Tenemos un esquema de negocios para Latinoamérica. &lt;/em&gt; &lt;p&gt;La empresa de la que participa Alejandro es &lt;p&gt;&lt;a title="http://www.imaginiasoft.com" href="http://www.imaginiasoft.com"&gt;http://www.imaginiasoft.com&lt;/a&gt; &lt;p&gt;Pueden ver algunas características del soft en &lt;p&gt;&lt;a href="http://www.imaginiasoft.com/index.php?tarea=caract_studio&amp;amp;PHPSESS=096801b07174cbbb825c23f43d024c56" target="_blank"&gt;ImaginiaSoft, software para fotolibros y regalos con fotos&lt;/a&gt; &lt;p&gt;&lt;img src="http://www.imaginiasoft.com/images/software/story.jpg" alt="" /&gt;  &lt;p&gt;También mencionó Alejandro otros hitos en la historia de Smalltalk en Argentina: &lt;p&gt;&lt;em&gt;... hay dos hitos que quiero mencionar, el primero fue la fundación de Sugar (Smalltalk User Group de Argentina), en la que participé hasta 1999/2000. Luego, me he dedicado a &lt;a href="http://www.smalltalking.net" target="_blank"&gt;Smalltalking&lt;/a&gt;, que busca que seamos protagonistas de un avance en tecnología. Si bien tiene vínculo con Smalltalk, no se queda ahí, y estamos intentando ir por más.&lt;/em&gt; &lt;p&gt;Alejandro no llegó a explicar claramente qué era eso de &amp;quot;un avance en tecnología&amp;quot; que espera. Creo que era parte de la charla, pero no le alcanzó el tiempo para volver al tema.  &lt;p&gt;&lt;em&gt;Queremos ser protagonistas de un avance tecnológica de acá a una década, no hemos visto un avance y hay que buscarlo. &lt;/em&gt; &lt;p&gt;&lt;em&gt;....&lt;/em&gt; &lt;p&gt;&lt;em&gt;Con respecto a Smalltalk, me es inevitable no usarlo, porque es lo que he usado durante 20 años. Toda referencia la hago con respecto a Smalltalk, no me va a escuchar hablar de otras alternativas, elijo Smalltalk porque lo puedo sustentar.&lt;/em&gt; &lt;p&gt;No quedó claro a qué se refería con &amp;quot;sustentar&amp;quot;. Entiendo que tiene relación con lo que publiqué hace un tiempo sobre &lt;p&gt;&lt;a title="Self-sustaining Systems, Cola, Pepsi, Coke y Mate" href="http://msmvps.com/blogs/lopez/archive/2008/01/14/self-sustaining-systems-cola-pepsi-coke-y-mate.aspx"&gt;Self-sustaining Systems, Cola, Pepsi, Coke y Mate&lt;/a&gt; &lt;p&gt;Esta falta de terminar de explicitar algunos puntos, va a ser un tema recurrente en la presentación de Alejandro. Habrá que esperar que publique algo explicando esos puntos. &lt;p&gt;Enlaces relacionados &lt;p&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/24/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-1.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 1)&lt;/a&gt;&lt;br /&gt;&lt;a title="Superando los l&amp;iacute;mites de la Orientaci&amp;oacute;n a Objetos (Parte 2)" href="http://msmvps.com/blogs/lopez/archive/2008/11/26/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-2.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 2)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/11/06/mas-all-225-de-objetos.aspx"&gt;Mas allá de objetos&lt;/a&gt; &lt;p&gt;Nos leemos! &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1655433" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category></item><item><title>Superando los límites de la Orientación a Objetos (Parte 2)</title><link>http://msmvps.com/blogs/lopez/archive/2008/11/26/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-2.aspx</link><pubDate>Wed, 26 Nov 2008 09:16:15 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1655107</guid><dc:creator>lopez</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1655107</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/11/26/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-2.aspx#comments</comments><description>&lt;p&gt;Sigo transcriendo notas (no textuales) y comentarios, de la charla de &lt;a href="http://www.alereimondo.com/" target="_blank"&gt;Alejandro Reimondo&lt;/a&gt;&amp;nbsp;de &lt;a href="http://www.smalltalking.net/" target="_blank"&gt;Smalltalking&lt;/a&gt;&amp;nbsp;sobre Superando los límites de Orientación a Objetos. Alejandro comentó sobre sus primeros proyectos con Smalltalk:&lt;/p&gt; &lt;p&gt;&amp;quot;&lt;em&gt;Volcado en años, hay infinidad de cosas hechas ... son proyectos fuera de lo común, no convencionales, y es muy variado el tipo de cosas que he hecho, y hay hitos de los que me siento orgulloso. &lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;(cerca de 1990) El&amp;nbsp;Soler es un sistema que es una simulación de una locomotora, que se utilizó para enseñar a reparar una locomotora. Antes se enseñaba con una locomotora física, eso es costosísimo. En esos tiempos, los japoneses llegaron al país, a hacerse cargo de una empresa de transporte, y nos contrataron para programar un modelo de locomotora, que sirviera para la enseñanza de su reparación. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Es un proyecto que me llevaría tiempo explicar, pero fueron interesantes los resultados. Logramos hacer una locomotora donde están virtualizados los caños, elementos, partes, y lo interesante que eso lo programaron los usuarios. Yo no sabía de locomotoras, el problema real era ¿cómo hago un sistema ne donde quien lo usa, lo programa?. Estamos hablando de 1991, tenía que ser hecho en seis meses el primer modelo, luego estaba planeado modelar más tipos de locomotoras. Empezamos a trabajar en una herramienta de construcción, donde el experto especificaba cada una de las piezas, y las probaba de a una, e iba conectando los subsistemas. Eran como 150 elementos coordinados. Empiezan a trabajar los usuarios a especificarlos, cuando el referente me dice: el problema es grande, no sabemos cómo lo estás resolviendo, ¿qué nos garantiza que todo va a funcionar? ¿cómo vas a resolver las referencias circulares? Eran preguntas de los libros de simulación. Yo sabía la respuesta: nadie te garantiza que todo va a andar. Pero no tuve que dar esa respuesta, seguí construyendo. Un buen día, recibo un llamado: Alejandro, sos un genio, terminamos de armar todo, y anda, ¿cómo sabías que iba a andar? Ahora, la duda ya no es si va a andar, sino, ¿por qué está andando? Acá, este andando es mágico, y ahí entendí la respuesta, que la podía dar en ese momento: anda, porque las locomotoras andan&lt;/em&gt;&amp;quot;.  &lt;p&gt;Igual acá acotaría que no siempre las simulaciones de ese tipo llegan a buen puerto. El tema no son las referencias circulares, sino la adecuación a lo modelado en la realidad.  &lt;p&gt;&amp;quot;&lt;em&gt;Las locomotoras son dispositivos diseñados estables, están armadas para que no se generen desequilibrios en ese sistema, había toda una ingeniería en esa maquinaria, lo único que no tenía que hacer era programar yo, era permitir al experto que tuviera herramientas para programarlo. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Me di cuenta de eso magico: las cosas funcionan. Lo que tratamos de hacer, es virtualizar eso, para conseguir ese éxito. &lt;/em&gt; &lt;p&gt;&lt;em&gt;Las cosas que andan, si uno lo trabaja con objetos, andan. Me costo unos años, que hay cosas que no andan, y cuando uno trabaja con objetos, tampoco andan.&lt;/em&gt;&amp;quot;  &lt;p&gt;Me temo que Alejandro no dió un ejemplo de este tipo, de &amp;quot;cosas que no andan&amp;quot;.&amp;nbsp; En el tema locomotora, estudiaría sistemas, teoría de sistemas, tendría que recomendar varios títulos de &lt;a href="http://en.wikipedia.org/wiki/Mario_Bunge" target="_blank"&gt;Mario Bunge&lt;/a&gt; aquí, como su excelente &amp;quot;Emergencia y Convergencia&amp;quot;.  &lt;p&gt;&amp;quot;&lt;em&gt;Lo que tenemos en un modelo de objetos, es algo valioso, pero tiene límites.&lt;/em&gt;&amp;quot;  &lt;p&gt;En el resto de la charla siguió tratando de mostrar los límites de POO, pero eso seguirá en otros posts.  &lt;p&gt;Enlaces relacionados  &lt;p&gt;&lt;a title="Superando los l&amp;iacute;mites de la Orientaci&amp;oacute;n a Objetos (Parte 1)" href="http://msmvps.com/blogs/lopez/archive/2008/11/24/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-1.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 1)&lt;/a&gt;&lt;br /&gt;&lt;a title="Superando los l&amp;iacute;mites de la Orientaci&amp;oacute;n a Objetos (Parte 3)" href="http://msmvps.com/blogs/lopez/archive/2008/11/30/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-3.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 3)&lt;/a&gt;&lt;br /&gt;&lt;a title="Mas all&amp;aacute; de objetos" href="http://msmvps.com/blogs/lopez/archive/2008/11/06/mas-all-225-de-objetos.aspx"&gt;Mas allá de objetos&lt;/a&gt;  &lt;p&gt;Nos leemos!  &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1655107" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category></item><item><title>Superando los límites de la Orientación a Objetos (Parte 1)</title><link>http://msmvps.com/blogs/lopez/archive/2008/11/24/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-1.aspx</link><pubDate>Mon, 24 Nov 2008 09:03:36 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1654917</guid><dc:creator>lopez</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1654917</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/11/24/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-1.aspx#comments</comments><description>&lt;p&gt;El pasado sábado 8 de Noviembre, asistí a una charla de &lt;a href="http://www.alereimondo.com/" target="_blank"&gt;Alejandro Reimondo&lt;/a&gt;, de la asociación &lt;a href="http://www.smalltalking.net/" target="_blank"&gt;Smalltalking&lt;/a&gt;, dada en la sede de la Universidad Tecnológica Nacional, aquí en Buenos Aires, Argentina. Ya había posteado sobre el anuncio de la charla:&lt;/p&gt; &lt;p&gt;&lt;a title="Mas all&amp;aacute; de objetos" href="http://msmvps.com/blogs/lopez/archive/2008/11/06/mas-all-225-de-objetos.aspx"&gt;Mas allá de objetos&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Tome varias notas, que quisiera ir posteando por acá. La charla duró dos horas y media y un poco más. Hubo interesantes discusiones, y Alejandro trató de explicar a qué limitaciones se refería en el título de la charla. Creo que no llegó a transmitir su mensaje completo, porque se acabó el tiempo. Espero que este primer post y otros que le sigan, sirvan para difundir y entender lo que expuso. Intercalaré comentarios y apreciaciones mías, y algunas aclaraciones. Al principio, Alejandro comentó sobre sus inicios en la programación Smalltalk:&lt;/p&gt; &lt;p&gt;&lt;img style="margin:0px 20px 20px 0px;" src="http://www.ajlopez.com/images/articles/superpoo01.png" align="left" alt="" /&gt;&amp;nbsp;&amp;quot;&lt;em&gt;Arranco siempre explicando un poco algo de historia de objetos en el país, en la región, y de alguna manera ... es innegable que he tenido participación del desarrollo de la tecnologia en nuestro país. Me ha tocado hacer el primer sistema de Smalltalk de uso comercial. En los años 1988-87,&amp;nbsp; me cayó un diskette en las manos, otros dos diskettes fueron uno&amp;nbsp;a la UBA (Universidad de Buenos Aires) y otro a una universidad de Brasil, a una cátegra de inteligencia artificial. No se sabía qué era, y se veía como futuro en la informática&lt;/em&gt;&amp;quot;.&lt;/p&gt; &lt;p&gt;Yo recuerdo acá que Smalltalk ya lo veía por aquí un poco más temprano, pero no había mucho hardware disponible para ejecutarlo (lo mismo pasaba con Lisp). Recuerdo que en la primera parte de los ochenta, el ingeniero Guido Vasallo ya me había entusiasmado a que estudiara el lenguaje.&lt;/p&gt; &lt;p&gt;&amp;quot;&lt;em&gt;...Me llegó por un conocido, que me dice, fijate qué es esto, Alejandro, en los tiempos que tengas, eran dos diskettes. Quince días más tarde llega un pre-release de Windows 1.2, me lo dan, fijate Alejandro, esto es lo mismo, las dos son herramientas gráficas. Yo en esos tiempos dominaba muy bien el uso de Turbo Pascal&lt;/em&gt;&amp;quot;.&lt;/p&gt; &lt;p&gt;Recuerdo la primera versión de Windows, la anterior versión 1.0, que no tenía ventanas superpuestas. Habré ido a la sucursal de Bunge y Born, local, a ver la primera versión, corriendo en un monitor VGA, de color, uno de los primeros que habré visto. El Turbo Pascal (y luego el Turbo C) fueron programas que marcaron un rumbo en lo que hoy son las IDEs modernas.&lt;/p&gt; &lt;p&gt;&amp;quot;&lt;em&gt;... Había logrado que me trajeran un mouse de EE.UU.&amp;nbsp;Las herramientas que llegaron eran muy tentadoras, y podía usar el mouse. Windows tenía 3 programas, no había herramientas, no se promocionaba programar en Windows, esa era la política entonces, ya iban a venir las herramientas para desarrollar.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;Veo esta otra cosa, el Smalltalk, y empiezo a ver, estaba todo programado ahí, lo puedo tocar, y acepta cambios. Podía modificar su funcionamiento, y eso fue una de las cosas que me motivó para el primer desarrollo de la empresa en la que trabajaba, un sistema de admisión temporaria en el país, de materias primas que entran, y productos que se exportan como terminados.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;Como yo manejaba muy bien el Turbo Pascal, lo iba a encarar con ese lenguaje. Me preguntan: Alejandro, ¿cuánto tiempo te toma desarrollarlo? Contesté 3 meses. Yo sabía que en un mes y medio lo hacía en Turbo Pascal, y quería el tiempo adicional para intentar hacerlo en Smalltalk. Me sorprendió que en 15 días, venía gente a ver el sistema, a usarlo con el mouse, mientras lo estaba armando.&amp;nbsp;Para mí fue una experiencia importante, pero yo creía que era un prototipo: los usuarios me hicieron ver que ése era el sistema, y me felicitaron por la velocidad conque lo había hecho. Fue una sorpresa para mí, lo que había pasado. &lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;No había informacion sobre objetos...&lt;/em&gt;&amp;quot;  &lt;p&gt;Bueno, en aquellos tiempos, algo había en el ambiente universitario, y también en la literatura que llegaba desde EE.UU., principalmente. Recuerdo haber comenzado a leer sobre Smalltalk en los primeros años ochenta, así como de C++. Pero era escasa la gente con la que compartir experiencias.  &lt;p&gt;&amp;quot;&lt;em&gt;... no había otro que te lo dijera, años en que uno tenía que reflexionar qué es lo que estaba pasando, sin tener el sustento de otros. Fue una experiencia única de alguna manera, hoy existe todo lo contrario, mucha comunicación, muchos contenidos, pero poco tiempo de reflexión para cuando uno aborda una herramienta de de desarrollo de objetos. &lt;/em&gt; &lt;p&gt;&lt;em&gt;En el año 90 dejé de trabajar con Turbo Pascal, y empecé a trabajar sólo con Smalltalk, y todo el desarrollo que he hecho, lo hice con un ambiente de objetos. En los primeros años me tocó promover, ir viendo ver cómo la gente reaccioanaba a eso año a año.&lt;/em&gt;&amp;quot;  &lt;p&gt;Esto es apenas el comienzo de la charla. Iré publicando el resto en futuros post, y colocando aquí los enlaces. Post publicados:  &lt;p&gt;&lt;a title="Superando los l&amp;iacute;mites de la Orientaci&amp;oacute;n a Objetos (Parte 2)" href="http://msmvps.com/blogs/lopez/archive/2008/11/26/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-2.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 2)&lt;/a&gt; &lt;br /&gt;&lt;a title="Superando los l&amp;iacute;mites de la Orientaci&amp;oacute;n a Objetos (Parte 3)" href="http://msmvps.com/blogs/lopez/archive/2008/11/30/superando-los-l-237-mites-de-la-orientaci-243-n-a-objetos-parte-3.aspx"&gt;Superando los límites de la Orientación a Objetos (Parte 3)&lt;/a&gt; &lt;p&gt;Nos leemos!  &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1654917" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category></item><item><title>Mas allá de objetos</title><link>http://msmvps.com/blogs/lopez/archive/2008/11/06/mas-all-225-de-objetos.aspx</link><pubDate>Thu, 06 Nov 2008 10:09:02 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1653222</guid><dc:creator>lopez</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1653222</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/11/06/mas-all-225-de-objetos.aspx#comments</comments><description>&lt;p&gt;La asociación &lt;a href="http://www.smalltalking.net" target="_blank"&gt;Smalltalking&lt;/a&gt;, de la mano de &lt;a href="http://www.aleReimondo.com/" target="_blank"&gt;Alejandro Reimondo&lt;/a&gt;, presentará una conferencia en al Universidad Tecnología Nacional en Buenos Aires, este sábado 8 de Noviembre, a las 15hs.&lt;/p&gt; &lt;p&gt;La gacetilla de prensa:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Fecha: Sabado 8 de Noviembre, a las 15:00 hs.&lt;br /&gt;Lugar: UTN Medrano, aula a confirmar&lt;br /&gt;Dirección: Medrano 955 - Ciudad de Buenos Aires&lt;/p&gt; &lt;p&gt;&lt;br /&gt;En base a los avances en Informática que se estan procurando realizar en nuestra región (*); creemos de interés para los profesionales vinculados a la aplicación y el estudio de la construcción de software; una charla en la que se expondrán los límites del abordaje Orientado a Objetos y se analizará la historia reciente y se expondrán puntos que alientan la superación de las limitantes impuestas por a forma en que hoy se construye y se entiende el software (y la información).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&amp;quot;Superando los limites de la Orientacion a Objetos&amp;quot;&lt;/strong&gt;&lt;br /&gt;A cargo de : Alejandro Reimondo&lt;br /&gt;Consultor en Tecnología de Objetos&lt;br /&gt;&lt;a href="http://www.aleReimondo.com"&gt;http://www.aleReimondo.com&lt;/a&gt;&lt;br /&gt;Presidente Smalltalking&lt;br /&gt;&lt;a href="http://www.smalltalking.net"&gt;http://www.smalltalking.net&lt;/a&gt;&lt;br /&gt;La charla estará centrada en la problemática de producir usando objetos hoy.&lt;br /&gt;Tomaremos como punto de partida, una visión crítica de la POO con la intensión de resaltar sus limitaciones para luego reflexionar sobre la idea de ambiente y los conceptos de uso diario en la producción en Ambiente.&lt;br /&gt;La idea es mover a la audiencia a los puntos de incertidumbre que lleva el diseño con objetos y usar este marco para promover una actitud superadora y alternativa a lo ya conocido (seguir de forma inductiva definiendo mas&lt;br /&gt;objetos).&lt;br /&gt;&lt;br /&gt;Puede ocurrir (esto condicionado por la voluntad de la audiencia) que aparezcan en el desarrollo de la charla puntas sobre dónde puede hacerse avances tecnológicos; avances que es muy posible que ocurran en nuestra&lt;br /&gt;región antes que en los países desarrollados; siendo esto un motivante adicional a la ilustración que propone una exposición técnica.&lt;br /&gt;&lt;br /&gt;El contenido será de índole práctico (se asume el conocimiento teórico básico sobre OO) y todo el contenido está avalado por experiencias realizadas en su mayoría en nuestro pais.&lt;br /&gt;(*) ver &lt;a href="http://www.smalltalking.net"&gt;http://www.smalltalking.net&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Espero poder asistir y tomar notas, así queda algo publicado para cumplir con los &amp;quot;mindsets&amp;quot;:&lt;/p&gt; &lt;p&gt;&lt;a href="http://ajlopez.zoomblog.com/archivo/2007/07/22/lo-que-no-esta-escrito-no-existe.html" target="_blank"&gt;Lo que no está escrito no existe&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2008/01/15/don-t-be-a-canuto.aspx" target="_blank"&gt;Don&amp;#39;t be a canuto&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ajlopez.zoomblog.com/archivo/2008/10/26/pasando-el-test-Me-piso-el-60" target="_blank"&gt;Pasando el test: me pisó el 60&lt;/a&gt;&lt;/p&gt; &lt;p&gt;;-)&lt;/p&gt; &lt;p&gt;Nos leemos!&lt;/p&gt; &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1653222" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category></item><item><title>Proyecto Tocatú</title><link>http://msmvps.com/blogs/lopez/archive/2008/10/22/proyecto-tocat-250.aspx</link><pubDate>Wed, 22 Oct 2008 10:41:57 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1651600</guid><dc:creator>lopez</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1651600</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/10/22/proyecto-tocat-250.aspx#comments</comments><description>&lt;p&gt;El bueno de Leonardo de Marco y sus compañeros (no tengo los nombres completos acá, ni los encuentro en la página, Gabriel y&amp;nbsp;Marite, y la participación de &lt;a href="http://www.alereimondo.com/" target="_blank"&gt;Alejandro Reimondo&lt;/a&gt;) estuvieron trabajando largo tiempo en su tesis y trabajo, de interface multitouch. Ahora pueden ver el resultado en:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.tocatu.com.ar"&gt;http://www.tocatu.com.ar&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.todocontenidos.com/images/articles/tocatu.png" alt="" /&gt; &lt;/p&gt; &lt;p&gt;Explica Leonardo:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;El proyecto TocaTú es producto de mas de un año de investigacion y trabajo (esporadicas pero muy divertidas por cierto) en la que junto a Ale, y luego con Gabriel y Marite fuimos avanzando en la construccion de una idea que agrupara las diferentes aplicaciones o casos de uso en que es posible utilizar la tecnologia de vision por computador.&lt;br /&gt;La parte de Software esta totalmente construida en Smalltalk basado en el framework de Ale de OpenCV (&lt;a href="http://alereimondo.no-ip.org/OpenCV)"&gt;http://alereimondo.no-ip.org/OpenCV)&lt;/a&gt; y la librería Touchlib (&lt;a href="http://www.whitenoiseaudio.com/touchlib/"&gt;http://www.whitenoiseaudio.com/touchlib/&lt;/a&gt;).&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Además de haberlo armado y llevado adelante, hoy el proyecto se presenta en &lt;a title="INNOVAR 2008!" href="http://www.innovar.gov.ar/"&gt;INNOVAR 2008!&lt;/a&gt; &lt;blockquote&gt; &lt;p&gt;&amp;quot;El Concurso INNOVAR se proyecta como un espacio permanente de soluciones a los problemas que deben enfrentar y resolver los emprendedores, en el campo del diseño, la tecnología y el comercio, para que sus creaciones lleguen y se difundan en el mercado. Los objetivos de INNOVAR son estimular y difundir los procesos de transferencia de conocimientos y tecnología, aplicados a productos y/o procesos que mejoren la calidad de vida de la sociedad.&amp;quot; &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Desde acá, felicitaciones y mucha suerte, a Leonardo y sus compañeros. &lt;p&gt;Más sobre interfaces y multitouchs en: &lt;p&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/tags/interfaces/default.aspx" target="_blank"&gt;Posts sobre interfaces&lt;/a&gt; &lt;p&gt;&lt;a href="http://delicious.com/ajlopez/interface"&gt;http://delicious.com/ajlopez/interface&lt;/a&gt; &lt;p&gt;&lt;a title="Touchless SDK de c&amp;oacute;digo abierto" href="http://msmvps.com/blogs/lopez/archive/2008/10/14/touchless-sdk-de-c-243-digo-abierto.aspx"&gt;Touchless SDK de código abierto&lt;/a&gt;&amp;nbsp;(para comenzar a probar multitouch con solo una webcam). &lt;p&gt;Nos leemos! &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1651600" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/interfaces/default.aspx">interfaces</category></item><item><title>Reunión de Smalltalking, con Claus Gittinger y Smalltalk/X</title><link>http://msmvps.com/blogs/lopez/archive/2008/09/16/reuni-243-n-de-smalltalking-con-claus-gittinger-y-smalltalk-x.aspx</link><pubDate>Tue, 16 Sep 2008 10:58:52 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1647899</guid><dc:creator>lopez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1647899</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/09/16/reuni-243-n-de-smalltalking-con-claus-gittinger-y-smalltalk-x.aspx#comments</comments><description>&lt;p&gt;&lt;img style="margin:0px 20px 20px 0px;" src="http://www.ajlopez.com/images/articles/smalltalking.png" align="left" alt="" /&gt;&amp;nbsp;El sábado pasado, 13 de septiembre, asistí a la reunión de&amp;nbsp;&lt;a href="http://www.smalltalking.net/" target="_blank"&gt;Smalltalking&lt;/a&gt;. Esta vez, la reunión fue un café cerca del edificion de la Biblioteca Nacional, aquí en Buenos Aires, Argentina. El grupo es pequeño pero entusiasta, y las discusiones fueron muy interesantes.&lt;/p&gt; &lt;p&gt;El primero en llegar fue Leonardo de Marco, que en estos días está cambiando su vida laborar, para dedicarse de tiempo completo al desarrollo de Smalltalk. Alejandro Reimonde, el &amp;quot;jefe&amp;quot; del grupo, llegó un poco más tarde de las 10hs. Otros miembros que asistieron fueron Esteban Lorenzano, Diego Coronel, Matías Castilla y Juan (sólo Juan, no tengo el apellido...).&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.alereimondo.com/" target="_blank"&gt;Alejandro Reimondo&lt;/a&gt; es un referente en el campo del desarrollo en Smalltalk, conocido en el mundo, que ha trabajado desde hace décadas con esta tecnología. Es el fundador del grupo Smalltalking, dedicado a la difusión y discusión de desarrollo de software y más, con Ambientes de Objetes Virtuales. Ya había comentado por este blog sobre su actividad en el desarrollo de multitouch (ver &lt;a title="M&amp;aacute;s sobre multitouch screen" href="http://msmvps.com/blogs/lopez/archive/2007/03/20/m-s-sobre-multitouch-screen.aspx"&gt;Más sobre multitouch screen&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;Esteban Lorenzano enseña arquitectura de proyectos IT, en la Universidad Tecnológica Nacional, de Buenos Aires. La página de la cátedra es:&lt;/p&gt; &lt;p&gt;&lt;a title="http://apit.wikidot.com/" href="http://apit.wikidot.com/"&gt;http://apit.wikidot.com/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Es uno de los fundadores de la nueva empresa &lt;a href="http://www.smallworks.com.ar/" target="_blank"&gt;Smallworks&lt;/a&gt;, dedicada al desarrollo de software usando Smalltalk. Los fundadores son ex &lt;a href="http://www.snoopconsulting.com" target="_blank"&gt;Snoop&lt;/a&gt;, entre ellos, veo a Evagenlista, al que conocí en algún curso mío hace años.&lt;/p&gt; &lt;p&gt;Diego Coronel tiene una compañía,&amp;nbsp;Informagine (no dió el enlace, supongo que es &lt;a href="http://www.informagine.com"&gt;http://www.informagine.com&lt;/a&gt; ), con trabajos para el estado argentina, usando Smalltalk, ahora está trabajando mucho con México. Vive en los dos paises. Curiosamente, Diego y Esteban conocían los mismo lugares de México DF, e intercambiaron impresiones sobre cómo es vivir en esa ciudad, y cómo México albergó y recibió a argentinos, tanto en los años difíciles del siglo pasado, como en este siglo, luego de la &amp;quot;debacle&amp;quot; de 2001.&lt;/p&gt; &lt;p&gt;Matías Castillas es estudiante, vino desde la La Plata (unos 70 km de Buenos Aires). Nos faltó otro platense, Elvio Fernandez, que esta vez no pudo asistir a la reunión. El año pasado, el bueno de Elvio fue anfitrión de otra reunión del grupo, donde hubo buenas charlas, discusiones, una raviolada, y algunas botellas de tinto, que muchos de los integrantes actuales estamos extrañando.&lt;/p&gt; &lt;p&gt;En esta reunión, como en otras, hubo varias discusiones, exposiciones, de distintos temas. Las reuniones no se organizan por temas y tiempo, o apenas, así que muchas veces derivan en temas que no se habían propuesto. Pero siguen siendo interesantes. Entre los temas discutidos estuvieron: la sustentabilidad del desarrollo de código abierto, la situación de la educaciónde objetos y conceptos de arquitectura en Argentina, la escasez de gente, en Smalltalk y otras tecnologías, la rotación de los desarrolladores en las compañías, y el alto salario que se ofrece a desarrolladores juniors, debido a la situación global del desarrollo, y el cambio peso/dólar en Argentina, que hace redituable el trabajo para el exterior.&lt;/p&gt; &lt;p&gt;Con respecto a la rotación, yo podría dar referencias de cómo no tener ese tipo de problema. Pero eso será tema de otros posts. En resumen: hay que dar el ambiente y los desafíos adecuados, para que la gente quiera seguir participando en la misma compañía. También, es importante elegir bien a la gente: es más importante tener la gente adecuada, con una actitud proactiva, y de constante aprendizaje y mejora, en vez de buscar &amp;quot;desarrolladores Java que conozcan Struts&amp;quot; o ese tipo de pedidos.&lt;/p&gt; &lt;p&gt;No se mencionó mucho sobre el tema de metodologías ágiles, que me parecen hoy por hoy, fundamentales para encarar el desarrollo con poca gente. He conocido casos de éxito (y también de fracaso) de excelentes desarrollo con poca gente. Incluso los fracasos enseñan qué tipo de proyectos y de gente necesitamos para avanzar, si tenemos una empresa o un grupo interno de desarrollo.&lt;/p&gt; &lt;p&gt;Alejandro comentó su viaje a Postdam, donde asistió a&lt;/p&gt; &lt;p&gt;&lt;a title="Workshop on Self-Sustaining Systems (S3) 2008" href="http://www.swa.hpi.uni-potsdam.de/s3/"&gt;Workshop on Self-Sustaining Systems (S3) 2008&lt;/a&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;The Workshop on Self-sustaining Systems (S3) is a forum for discussion of topics relating to computer systems and languages that are able to bootstrap, implement, modify, and maintain themselves. One property of these systems is that their implementation is based on small but powerful abstractions; examples include (amongst others) Squeak/Smalltalk, COLA, Klein/Self, PyPy/Python, Rubinius/Ruby, and Lisp. Such systems are the engines of their own replacement, giving researchers and developers great power to experiment with, and explore future directions from within, their own small language kernels.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Acá había posteado sobre el tema y el trabajo de Piumarta en:&lt;/p&gt; &lt;p&gt;&lt;a title="Self-sustaining Systems, Cola, Pepsi, Coke y Mate" href="http://msmvps.com/blogs/lopez/archive/2008/01/14/self-sustaining-systems-cola-pepsi-coke-y-mate.aspx"&gt;Self-sustaining Systems, Cola, Pepsi, Coke y Mate&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Alejandro comentó que le interesó el trabajo de &lt;a href="http://en.wikipedia.org/wiki/Richard_P._Gabriel" target="_blank"&gt;Richard Gabriel&lt;/a&gt;, de IBM (su página personal y bio en &lt;a href="http://www.dreamsongs.com/Bio.html" target="_blank"&gt;Richard Gabriel personal page&lt;/a&gt;). Pueden ver el trabajo presentado por Gabriel en:&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.tele-task.de/page50_lecture3625.html" href="http://www.tele-task.de/page50_lecture3625.html"&gt;http://www.tele-task.de/page50_lecture3625.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Esperamos que sea un tema&amp;nbsp;a tratar en una próxima reunión de Smalltalking (con raviolada y pingüinos de tinto en lo de Elvio... ;-)&lt;/p&gt; &lt;p&gt;Pero la estrela de la reunión, fue &lt;a href="http://www.linkedin.com/pub/2/937/84" target="_blank"&gt;Claus Gittinger&lt;/a&gt;, fundador de &lt;a href="http://www.exept.de/" target="_blank"&gt;Exept Software AG&lt;/a&gt;, y creador de&amp;nbsp;Smalltalk/X. Vino de Alemania, el viernes a la noche, por primera vez visita mi país. Pueden leer su &lt;a href="http://www.linkedin.com/ppl/webprofile?action=vmi&amp;amp;id=8285860&amp;amp;authToken=PcBS&amp;amp;authType=name&amp;amp;trk=ppro_viewmore&amp;amp;lnk=vw_pprofile" target="_blank"&gt;perfil en LinkedIn&lt;/a&gt;, encontraran todos los trabajos del bueno de Claus, desde los ochentas. Ha trabajado en varias tecnologías y compañías. En 1995, funda Exept Software, que:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;provides solutions, advice and consulting services in the Telecom, Automation, Automobile and other technology oriented software areas.&lt;br /&gt;Products include a state of the art OO-development framework and environment (www.smalltalk-x.de) and frameworks for Test- and Qualitymanagement (&lt;a href="http://www.expecco.de"&gt;www.expecco.de&lt;/a&gt;)&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Claus se dedica a  &lt;blockquote&gt; &lt;p&gt;Architecture, Project Management, Team Building and Leading, Coaching, Teaching, Testing, Test Management, Prototyping,&lt;br /&gt;Programming Language Implementation, VM design &amp;amp; Implementation, Compiler Construction, IDE Design &amp;amp; Implementation, GUI Framework Design &amp;amp; Implementation, OS-Kernel, OO, Smalltalk, ESUG&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;También dicta cursos en una universidad de su país. Está visitando Argentina, acompañado de&amp;nbsp;Félix Madrid, un desarrollador argentino que trabaja para Except en Alemania. Como escribía arriba, es la primera visita de Claus a la Argentina, espero que disfrute el viaje y la visita.  &lt;h3&gt;Smalltalk/X&lt;/h3&gt; &lt;p&gt;Claus fue muy gentil, dedicándonos algunas horas a mostrarnos su trabajo, demostrarnos su producto&amp;nbsp; &lt;a href="http://www.exept.de/en/products/smalltalk-x/stx-overview" target="_blank"&gt;Smalltalk/X&lt;/a&gt;&amp;nbsp;(noto en Claus el entusiasmo de alguien que ha creado algo y lo ha llevado hasta el nivel de producto, fundando una empresa alredor de ese primer producto). Su empresa se dedica a otros temas (como el testing a partir de un modelo),&amp;nbsp;estas son características de Smalltalk/X&amp;nbsp;(disculpen que no traduzca):  &lt;blockquote&gt; &lt;p&gt;Smalltalk/X, a product from eXept Software AG, is a complete implementation of the programming language, class library and development environment, providing:  &lt;ul&gt; &lt;li&gt;An object-oriented programming language  &lt;li&gt;Graphic development environment with editors, browsers, debuggers, GUI builders, etc.  &lt;li&gt;Incremental compilation, byte code interpreter and dynamic (just in time) compiler  &lt;li&gt;Static compilation and DLL generation, controlled by make-files  &lt;li&gt;Comprehensive class library with ready-to-use modules for applications  &lt;li&gt;Open Smalltalk source code &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Implementation of the language and class library complies with the draft ANSI standard and the industry standard.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Claus nos mostró la compilación de archivos .st (con código fuente de Smalltalk) a archivos .stc que contiene código C, que puede compilarse en varias plataformas (en Windows, podemos compilar el sistema completo usando Borland C, o con Microsoft Visual C++).&amp;nbsp;De esta manera, podemos producir programas nativos ejecutables desde nuestro proyecto Smalltalk. Más características &lt;a href="http://www.exept.de/en/products/smalltalk-x/stx-documentation" target="_blank"&gt;de la documentación&lt;/a&gt;:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;ST/X Smalltalk is a complete implementation of the Smalltalk language. Smalltalk/X is not based on the original ST-80 virtual machine implementation and has been written from scratch. However, the API, class libraries and language semantic is highly compatible to ST-80 based smalltalks, such as VisualWorks, Squeak and others.  &lt;p&gt;Smalltalk/X consists of both an integrated environment for program development AND a standalone smalltalk compiler&lt;a href="http://live.exept.de/#FN1"&gt;(1)&lt;/a&gt;, which generates true machine code, shared code libraries and binary executables without a need for a so called &amp;quot;image&amp;quot;. However, traditional image-based development is also supported and typically used for program development.  &lt;p&gt;The programming environment includes editors, browsers, compiler and debugger and a large library of ready to use building blocks for application writers. &lt;br /&gt;The standalone compiler generates true machine code from smalltalk source files - and can be used in a batch environment for production/delivery.  &lt;h4&gt;Features&lt;/h4&gt; &lt;ul&gt; &lt;li&gt;Language syntax and semantic compatible to the industry standard, including &lt;i&gt;arbitrary precision arithmetic&lt;/i&gt; and &lt;i&gt;automatic number conversion&lt;/i&gt;, &lt;i&gt;exception handling&lt;/i&gt;, &lt;i&gt;automatic memory management&lt;/i&gt;, &lt;i&gt;threads&lt;/i&gt;, &lt;i&gt;contexts&lt;/i&gt;, &lt;i&gt;blocks (block closures)&lt;/i&gt;, &lt;i&gt;metaprogramming&lt;/i&gt; and much more.  &lt;li&gt;Additional (mostly backward compatible) extensions to the smalltalk language include: &lt;a href="http://live.exept.de/programming/language.html#PRIVATECLASSES"&gt;&lt;i&gt;private classes&lt;/i&gt;&lt;/a&gt;, &lt;a href="http://live.exept.de/programming/language.html#NAMESPACES"&gt;&lt;i&gt;multiple namespaces&lt;/i&gt;&lt;/a&gt;, &lt;a href="http://live.exept.de/programming/language.html#PRIVACY"&gt;&lt;i&gt;method privacy&lt;/i&gt;&lt;/a&gt; and &lt;i&gt;end of line comments&lt;/i&gt;.  &lt;li&gt;A comprehensive threadsafe library of &lt;a href="http://live.exept.de/basicClasses/TOP.html"&gt;basic classes&lt;/a&gt;, including &lt;i&gt;collection classes&lt;/i&gt;, &lt;i&gt;numeric classes&lt;/i&gt;, &lt;i&gt;streams&lt;/i&gt;, &lt;i&gt;lightweight processes&lt;/i&gt;, &lt;i&gt;exception handling&lt;/i&gt; and &lt;i&gt;metaclass hierachy&lt;/i&gt;.  &lt;li&gt;Many user interface &lt;a href="http://live.exept.de/gui/TOP.html"&gt;widget classes&lt;/a&gt; usable as building blocks for graphical applications. These are fully &lt;i&gt;(non-polling) event driven&lt;/i&gt;, &lt;i&gt;multithreaded&lt;/i&gt; and support &lt;i&gt;multiple displays&lt;/i&gt;, &lt;i&gt;parametrized view styles&lt;/i&gt;, &lt;i&gt;wide characters (unicode)&lt;/i&gt; and &lt;i&gt;national languages&lt;/i&gt;.  &lt;li&gt;&lt;a href="http://live.exept.de/tools/TOP.html"&gt;Integrated programming environment&lt;/a&gt; including &lt;i&gt;browsers&lt;/i&gt; with sophisticated &lt;i&gt;refactoring and code generation support&lt;/i&gt;, &lt;i&gt;GUI- and Menu builders&lt;/i&gt;, &lt;i&gt;monitors&lt;/i&gt; and &lt;i&gt;symbolic debugger&lt;/i&gt; for efficient program development.  &lt;li&gt;The additional &lt;a href="http://live.exept.de/stscript.html"&gt;Scripting Engine&lt;/a&gt; allows for command-line execution of smalltalk scripts. These script files can be generated by any other editor, or alternatively by saving code from the IDE (file-out from the browser).  &lt;li&gt;Debug once - run everywhere ! &lt;br /&gt;complete Source- and Byte-Code compatibility between Unix and Windows versions. Write your application once, run it without change on Win-NT, Linux, Alpha-OSF, Sun-solaris, HPUX, AIX, Silicon-Graphics IRIX&lt;a href="http://live.exept.de/#FN4"&gt;(4)&lt;/a&gt;.  &lt;li&gt;Many demo and &amp;#39;how-to&amp;#39; &lt;a href="http://live.exept.de/demos/TOP.html"&gt;example&lt;/a&gt; programs  &lt;li&gt;Online HTML documentation and &lt;a href="http://live.exept.de/classDoc/TOP.html"&gt;class documentation&lt;/a&gt; generator, visualized by the ST/X HTML document viewer. &lt;br /&gt;Well documented classes and methods.  &lt;li&gt;Very liberal licensing conditions &lt;/li&gt;&lt;/ul&gt; &lt;h4&gt;Implementation hilights&lt;/h4&gt; &lt;ul&gt; &lt;li&gt;Incremental compilation to internal bytecodes for short turn around cycles during development. &lt;br /&gt;Binary files containing bytecode are portable across different machine architectures.  &lt;li&gt;Dynamic (just-in-time) compilation from internal bytecodes to machine code &lt;a href="http://live.exept.de/#FN2"&gt;(2)&lt;/a&gt;. &lt;br /&gt;Except for the faster execution, this is transparent to the program or user.  &lt;li&gt;Batch compilation to real machine code for high performance production code, enabling the creation of binary object modules, class libraries or even shared class libraries. &lt;br /&gt;Since more optimizations and code analysis are performed by this (offline) compiler, the resulting code executes faster - even when compared to dynamic compiled machine code.  &lt;p&gt;Although static compiled machine code leads to bigger executables, the main advantage (beside faster execution) is the deterministic runtime behavior, which cannot always be guaranteed, if bytecodes are compiled dynamically at execution time. &lt;br /&gt;In addition, big applications benefit from static compilation by the sharability of this compiled code among multiple applications, if shared libraries and/or shared text segments are supported by the operating system.  &lt;p&gt;Applications can (and do) use a mix of precompiled machine code classes and interpreted bytecode classes - this is transparent to the program or programmer.  &lt;p&gt;If supported by the operating system &lt;a href="http://live.exept.de/#FN3"&gt;(3)&lt;/a&gt;, machine compiled modules can be dynamically added to and removed from the running system. &lt;/p&gt; &lt;li&gt;Easy creation of standalone executables and applications without graphical user interfaces. This includes self-extracting installation code for windows platforms (null-soft self installing executables).  &lt;li&gt;Easy binding to C-language by allowing &lt;a href="http://live.exept.de/programming/primitive.html"&gt;inline c code&lt;/a&gt; (even inline assembler by using asm statements) or via the ffi-callout mechanism to dynamically loaded shared libraries (dll&amp;#39;s).  &lt;li&gt;Sophisticated window interface combining event and process driven techniques. &lt;br /&gt;ST/X supports multiple display devices - you can work with others in the same object environment, or write applications which serve multiple screens. &lt;br /&gt;Your application can even run on a display-less host, serving multiple xTerminals or client applications via TCP connections.  &lt;li&gt;Additional protocol provided in the process, semaphore and processor classes, for better thread synchronization. ST/X&amp;#39;s process handling includes additional mechanisms for recovery (semaphore cleanup) in exceptional situations, which is required in technical applications. The ST/X&amp;#39;s process scheduler supports timeSlicing and dynamic thread priorities. This allows for better response behavior in multiwindow applications and allows progress of background processes even in case of busy foreground processing.  &lt;li&gt;Modern generational garbage collector, with dynamic adjustable newSpace, adaptive tenuring, both incremental and non-incremental collectors for the oldSpace, both copying and non-copying compressors for the oldSpace.  &lt;li&gt;Object finalization via the WeakArray mechanism; in addition, a number of other collection classes are available with weak references (WeakSet, WeakDictionary etc.)  &lt;li&gt;Both ANSI compliant class based exceptions and (VW-) backward compatible Signal-based exceptions are supported. &lt;br /&gt;In addition, process specific and global default exception handlers are avaliable, to allow for non scoped, global exception handling.  &lt;li&gt;The byteCode interpreter and just-in-time compilers support multiple bytecode sets, for total integration of different languages into a single unified system. &lt;br /&gt;In the current release, this feature is used to support execution of compiled Java code. &lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt; &lt;p&gt;Claus también mostró que se puede compilar al vuelo, en el entorno de desarrollo. Uno puede escribir un método, y se traduce a los bytecodes clásicos de una máquina virtual Smalltalk. Pero durante su ejecución, esos bytecodes se compilan a código nativo.&lt;/p&gt; &lt;p&gt;Es aquí donde atiborré de preguntas al paciente de Claus. Su implementación se desvía de una implementación clásica de Smalltalk, no es una implementación como otras. Esto para mí es interesante, así que pregunté en detalle algunos temas. &lt;/p&gt; &lt;p&gt;Smalltalk/X no usa una tabla de objetos, con lo cual cada objeto apunta directamente a otros objetos. Esto facilita algunas cosas, pero complica otras, como el ajuste de los &amp;quot;punteros&amp;quot; durante el proceso del garbage collector (garbage collector), la implementación de become: es prácticamente difícil (no ví todavía si consigue implementarlo Smalltalk/X), y el garbage collector tiene que tomar control en algún momento, para ajustar todos los objetos. El garbage collector es un mark and sweep, con copy de objetos. No usa generaciones de objetos, aunque mantiene un age en la cabecera de cada objeto. (&lt;strong&gt;Corrección&lt;/strong&gt;, el bueno de Claus me comenta en &lt;a href="http://ajlopez.wordpress.com/2008/09/15/smalltalking-meeting-with-claus-gittinger-and-smalltalkx/"&gt;Smalltalking meeting, with Claus Gittinger and&amp;nbsp;Smalltalk/X &lt;/a&gt;que lo de mark and sweep, es sólo una de cuatro estrategias,&amp;nbsp;y se aplica solamente a los objetos viejos).&lt;/p&gt; &lt;p&gt;Podemos&amp;nbsp;&lt;a href="http://www.exept.de/en/products/smalltalk-x/stx-download/stx-download-archiv" target="_blank"&gt;bajar los binarios del sistema&lt;/a&gt;, o podemos bajar&amp;nbsp;el&amp;nbsp;&lt;a href="http://www.exept.de/en/products/smalltalk-x/stx-download/stx-cvs-access" target="_blank"&gt;CVS de la compañía&lt;/a&gt;&amp;nbsp;(esten preparados para un download con tiempo: son más de 20000 files, &amp;gt;180 megas, a mí me tomó algunas horas de bajada).&lt;/p&gt; &lt;p&gt;Como notan, estuve muy interesado en los detalles de implementación de la VM. Me interesó desde siempre la construcción de ese tipo de sistemas, pueden leer algo de lo que estoy haciendo con mi trabajo en progreso sobre el AjTalk en &lt;a title="AjTalk- un int&amp;eacute;rprete tipo Smalltalk" href="http://msmvps.com/blogs/lopez/archive/2008/07/15/ajtalk-un-int-233-rprete-tipo-smalltalk.aspx"&gt;AjTalk- un intérprete tipo Smalltalk&lt;/a&gt;). Algo interesante: como genera código C, en los archivos .st se pueden incluir fragmentos de ese lenguaje, además de llamadas a las clásicas primitivas. Por ejemplo, en&amp;nbsp;el archivo Object.st, que define la conducta de Object, encuentro:&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:6f5b7e23-653a-4ace-9cb0-9d479c51b70a" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;"&gt;&lt;div&gt;&lt;span style="color:#000000;"&gt;basicAt:index
    &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;return the indexed instance variable with index, anInteger...&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;

...

&lt;/span&gt;&lt;span style="color:#000000;"&gt;%&lt;/span&gt;&lt;span style="color:#000000;"&gt;{  &lt;/span&gt;&lt;span style="color:#008000;"&gt;/*&lt;/span&gt;&lt;span style="color:#008000;"&gt; NOCONTEXT &lt;/span&gt;&lt;span style="color:#008000;"&gt;*/&lt;/span&gt;&lt;span style="color:#000000;"&gt;

    REGISTER &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt; nbytes, indx;
    OBJ myClass;
    REGISTER &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;char&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;*&lt;/span&gt;&lt;span style="color:#000000;"&gt;pFirst;
    REGISTER &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt; n;

...
    &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;if&lt;/span&gt;&lt;span style="color:#000000;"&gt; (__isSmallInteger(index)) {
    myClass &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; __qClass(self);
    indx &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; __intVal(index) &lt;/span&gt;&lt;span style="color:#000000;"&gt;-&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;1&lt;/span&gt;&lt;span style="color:#000000;"&gt;;
    n &lt;/span&gt;&lt;span style="color:#008000;"&gt;/*&lt;/span&gt;&lt;span style="color:#008000;"&gt; nInstVars &lt;/span&gt;&lt;span style="color:#008000;"&gt;*/&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; __intVal(__ClassInstPtr(myClass)&lt;/span&gt;&lt;span style="color:#000000;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;c_ninstvars);
    n &lt;/span&gt;&lt;span style="color:#008000;"&gt;/*&lt;/span&gt;&lt;span style="color:#008000;"&gt; nInstBytes &lt;/span&gt;&lt;span style="color:#008000;"&gt;*/&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; OHDR_SIZE &lt;/span&gt;&lt;span style="color:#000000;"&gt;+&lt;/span&gt;&lt;span style="color:#000000;"&gt; __OBJS2BYTES__(n &lt;/span&gt;&lt;span style="color:#008000;"&gt;/*&lt;/span&gt;&lt;span style="color:#008000;"&gt; nInstVars &lt;/span&gt;&lt;span style="color:#008000;"&gt;*/&lt;/span&gt;&lt;span style="color:#000000;"&gt;);
    nbytes &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; __qSize(self) &lt;/span&gt;&lt;span style="color:#000000;"&gt;-&lt;/span&gt;&lt;span style="color:#000000;"&gt; n &lt;/span&gt;&lt;span style="color:#008000;"&gt;/*&lt;/span&gt;&lt;span style="color:#008000;"&gt; nInstBytes &lt;/span&gt;&lt;span style="color:#008000;"&gt;*/&lt;/span&gt;&lt;span style="color:#000000;"&gt;;
    pFirst &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; (&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;char&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;*&lt;/span&gt;&lt;span style="color:#000000;"&gt;)(__InstPtr(self)) &lt;/span&gt;&lt;span style="color:#000000;"&gt;+&lt;/span&gt;&lt;span style="color:#000000;"&gt; n &lt;/span&gt;&lt;span style="color:#008000;"&gt;/*&lt;/span&gt;&lt;span style="color:#008000;"&gt; nInstBytes &lt;/span&gt;&lt;span style="color:#008000;"&gt;*/&lt;/span&gt;&lt;span style="color:#000000;"&gt;;

...

}&lt;/span&gt;&lt;span style="color:#000000;"&gt;%&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Despues de pasearlo por temas de implementación, Claus nos siguió mostrando temas del entorno gráfico de desarrollo, con los clásicos workspaces, browsers, implementados directamente en Smalltalk. El producto de Claus maneja directamente distintas implementaciones GUI, sean Windows, Unix, Linux, y demás. Desde un entorno GUI que trae el producto, podemos definir controles, formularios, asociarlos a métodos. También hay soporte de MVC (Model View Controller), donde rápidamente el valor de un control puede modificar el modelo, y su cambio se refleja en otros controles, si queremos. Claus igual comentó que los controles los tienen que diseñar ellos, cuando en el mercado aparece un nuevo tipo de control, por ejemplo, una grilla, ellos no la aprovecha, sino que la implementan en su base de código. Eso permite que ese nuevo control, automáticamente esté disponible en todas las plataformas donde ejecuta Smalltalk/X. Pero imagino que se complica estar al día en el desarrollo de widgets gráficos.&lt;/p&gt;
&lt;p&gt;También mostró un servidor HTTP. Con el servidor HTTP funcionando, uno puede definir clases que atiendan pedidos por URL. Implementamos un método que recibe un objeto request, de ese objeto obtenemos un response, y con éste, comenzamos a emitir el contenido del documento, generalmente un HTML. No llegué a ver el soporte que tiene de controles dentro de una página. No llegué a probar eso en mi máquina todavía, y no vi &amp;quot;screenshots&amp;quot; en el sitio de Exept.&lt;/p&gt;
&lt;p&gt;Independientemente de Smalltalk/X como producto, si estan interesados en Smalltalk, pueden visitar la &lt;a href="http://www.exept.de/en/products/smalltalk-x/stx-links" target="_blank"&gt;página de enlaces&lt;/a&gt; y la de &lt;a href="http://www.exept.de/en/products/smalltalk-x/stx-documentation" target="_blank"&gt;documentación&lt;/a&gt; (con libros sobre Smalltalk, para bajarse libremente).&lt;/p&gt;
&lt;p&gt;Gracias desde acá a&amp;nbsp;Claus Gittinger, por dedicarnos tiempo y compartir su conocimiento con todos. Fue una interesante reunión. Claus es alguien que cumple con el mindset &lt;a title="Don&amp;#39;t be a canuto" href="http://msmvps.com/blogs/lopez/archive/2008/01/15/don-t-be-a-canuto.aspx"&gt;Don&amp;#39;t be a canuto&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;No estuve hasta el final (tuve que ir a dar mi charla de Microsoft Robotics, en Puerta 18, más datos en &lt;a title="Rob&amp;oacute;tica en Puerta 18" href="http://msmvps.com/blogs/lopez/archive/2008/09/14/rob-243-tica-en-puerta-18.aspx"&gt;Robótica en Puerta 18&lt;/a&gt;). Una de las últimas preguntas mías a Claus, fue si usan metodologías ágiles en su empresa. Contestó que sí, pero hubiera sido interesante conversar más en detalle. (Curiosamente, uno de mis contactos en LinkedIn que me unen a Claus, es el bueno de &lt;a href="http://agilethinking.net/" target="_blank"&gt;Tobias Mayer&lt;/a&gt;, que fue mi entrenador en Scrum).&lt;/p&gt;
&lt;p&gt;Espero que tengamos por lo menos una reunión más este año de Smalltalking. Tengo minutas de otras reuniones anteriores, tengo que pasarlas en limpio, ya aparecerán por aquí en formato post. Ya conocen el otro mindset: &lt;a title="Lo que no est&amp;aacute; escrito, no existe" href="http://ajlopez.zoomblog.com/archivo/2007/07/22/lo-que-no-esta-escrito-no-existe.html"&gt;Lo que no está escrito, no existe&lt;/a&gt;. ;-)&lt;/p&gt;
&lt;p&gt;Nota adicional: Alejandro, en ánimo turístico, nos comentó sobre el monte del infierno, en las afueras de Berlin. Pueden ver la ciudad desde ese &amp;quot;monte&amp;quot; artificial, armado con los escombros que quedaron al final de la segunda guerra mundial, desde&lt;/p&gt;
&lt;p&gt;&lt;a title="http://www.panoramio.com/photo/7847858" href="http://www.panoramio.com/photo/7847858"&gt;http://www.panoramio.com/photo/7847858&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;También comentó sobre Praga, una ciudad que no fue afectada por bombardeos, y no tuvo que ser reconstruida:&lt;/p&gt;
&lt;p&gt;&lt;a title="http://www.panoramio.com/user/592876/tags/Praga" href="http://www.panoramio.com/user/592876/tags/Praga"&gt;http://www.panoramio.com/user/592876/tags/Praga&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nos leemos!&lt;/p&gt;
&lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com"&gt;http://www.ajlopez.com&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1647899" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category></item><item><title>Nuevo sitio dedicado a Smalltalk: ClubSmalltalk.org</title><link>http://msmvps.com/blogs/lopez/archive/2008/08/24/nuevo-sitio-dedicado-a-smalltalk-clubsmalltalk-org.aspx</link><pubDate>Sun, 24 Aug 2008 16:01:14 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1645666</guid><dc:creator>lopez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1645666</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/08/24/nuevo-sitio-dedicado-a-smalltalk-clubsmalltalk-org.aspx#comments</comments><description>&lt;p&gt;En estos días, ha sido lanzado un nuevo sitio dedicado a Smalltalk:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.clubsmalltalk.org/"&gt;http://www.clubsmalltalk.org/&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.ajlopez.com/images/articles/clubsmalltalk01.png" alt="" /&gt; &lt;/p&gt; &lt;p&gt;Según el sitio:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;ClubSmalltalk.org is a non-profit organization which congregates Smalltalk programmers and enthusiastics. In 2008, we are going a step forward with this new website. &lt;br /&gt;The big idea behind this website is to provide a source of information about Smalltalk in general.&lt;br /&gt;The Smalltalk community has not good sources of information, or they&amp;#39;re all over the net, and sometimes it&amp;#39;s difficult to find them. &lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;If you want to contribute, you&amp;#39;re welcome!&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Es un desprendimiento de la actividad de la lista de correo en español:  &lt;p&gt;&lt;a title="http://groups.google.com/group/clubSmalltalk" href="http://groups.google.com/group/clubSmalltalk"&gt;http://groups.google.com/group/clubSmalltalk&lt;/a&gt;  &lt;p&gt;Algunos de los artículos más populares que contiene:  &lt;p&gt;&lt;a title="Interview with Luca Bruno, the creator of Smalltalk YX" href="http://www.clubsmalltalk.org/web/index.php?option=com_content&amp;amp;view=article&amp;amp;id=108:interview-with-luca-bruno-the-creator-of-smalltalk-yx&amp;amp;catid=1:frontpage-news&amp;amp;Itemid=103"&gt;Interview with Luca Bruno, the creator of Smalltalk YX&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="Argentinian Smalltalk Congress- Smalltalks 2008" href="http://www.clubsmalltalk.org/web/index.php?option=com_content&amp;amp;view=article&amp;amp;id=104:argentinian-smalltalk-congress-smalltalks-2008&amp;amp;catid=1:frontpage-news&amp;amp;Itemid=103"&gt;Argentinian Smalltalk Congress- Smalltalks 2008&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="Seaside and Ruby on rails" href="http://www.clubsmalltalk.org/web/index.php?option=com_content&amp;amp;view=article&amp;amp;id=45:seaside-and-ruby-on-rails&amp;amp;catid=1:frontpage-news&amp;amp;Itemid=103"&gt;Seaside and Ruby on rails&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Tiene secciones como:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;FAQs:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="Smalltalk Frequently Asked Questions" href="http://www.clubsmalltalk.org/web/index.php?option=com_content&amp;amp;view=article&amp;amp;id=47&amp;amp;Itemid=77"&gt;Smalltalk Frequently Asked Questions&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="GemStone Frequently Asked Questions" href="http://www.clubsmalltalk.org/web/index.php?option=com_content&amp;amp;view=article&amp;amp;id=48&amp;amp;Itemid=78"&gt;GemStone Frequently Asked Questions&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Environments:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="Commercial Smalltalk Environments" href="http://www.clubsmalltalk.org/web/index.php?option=com_content&amp;amp;view=category&amp;amp;id=44&amp;amp;Itemid=99"&gt;Commercial Smalltalk Environments&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="Free Smalltalk Environments" href="http://www.clubsmalltalk.org/web/index.php?option=com_content&amp;amp;view=category&amp;amp;id=28&amp;amp;Itemid=100"&gt;Free Smalltalk Environments&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="Abbandon Smalltalk Environments" href="http://www.clubsmalltalk.org/web/index.php?option=com_content&amp;amp;view=category&amp;amp;id=45&amp;amp;Itemid=101"&gt;Abbandon Smalltalk Environments&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="Frameworks, Platforms &amp;amp; Tools" href="http://www.clubsmalltalk.org/web/index.php?option=com_content&amp;amp;view=category&amp;amp;id=46&amp;amp;Itemid=102"&gt;Frameworks, Platforms &amp;amp; Tools&lt;/a&gt;&lt;/p&gt; &lt;p&gt;y más: herramientas, recursos, comunidad. Tiene enlaces a libros sobre Smalltalk como:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Free Books&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Thanks to the work of Stéphane Ducasse, we have a huge collection of Free Smalltalk books online. &lt;br /&gt;Download from&amp;nbsp;&lt;a href="http://www.iam.unibe.ch/~ducasse/FreeBooks.html"&gt;http://www.iam.unibe.ch/~ducasse/FreeBooks.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Creative&amp;nbsp;Common Books&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Our friend Diego Gomez Deck has written an excellent book in Spanish to start in Smalltalk. You can buy a hardcopy or you can download it under the creative common licence from &lt;a href="http://smalltalk.consultar.com/"&gt;http://smalltalk.consultar.com/&lt;/a&gt;. &lt;br /&gt;If you like it, we recommend to buy it, we are proud of this kind of projects.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;El sitio recién comienza, pero espero que con la ayuda de la comunidad Smalltalk, vaya creciendo y se convierta en una referencia para todo interesado en&amp;nbsp; ST.&lt;/p&gt; &lt;p&gt;Está armado con PHP. En mi opinión, es un buen signo: por años, la comunidad Smalltalk estuvo signada por un cierre hacia otras tecnologías o herramientas. En estos días, con la plétora de lenguajes, frameworks y plataformas, debemos abandonar esa tendencia a la aislación, e integrarnos con el resto de la tecnología.&lt;/p&gt; &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1645666" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category></item><item><title>Smalltalks 2008 en Argentina, Call for Papers</title><link>http://msmvps.com/blogs/lopez/archive/2008/08/22/smalltalks-2008-en-argentina-call-for-papers.aspx</link><pubDate>Fri, 22 Aug 2008 13:56:50 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1645503</guid><dc:creator>lopez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1645503</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/08/22/smalltalks-2008-en-argentina-call-for-papers.aspx#comments</comments><description>&lt;p&gt;El año pasado se realizó la primera conferencia de este tipo en Argentina. Ahora, un grupo de smalltalkers está preparando la versión 2008. En este sitio (basado en Seaside) está el anuncio:&lt;/p&gt; &lt;p&gt;&lt;a href="http://neuquina.lifia.info.unlp.edu.ar:8001/Smalltalks-2008" target="_blank"&gt;Smalltalks 2008 - 2da Conferencia Argentina de Smalltalk&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.ajlopez.com/images/articles/smalltalks200801.png" alt="" /&gt; &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Este año la conferencia se realizará los días 13, 14 y 15 de Noviembre, en la sede de la &lt;a href="http://www.uai.edu.ar"&gt;Universidad Abierta Interamericana&lt;/a&gt;, Av. Montes de Oca 745, Buenos Aires, Argentina. Al igual que el año pasado la inscripción a la conferencia será gratuita. &lt;p&gt;En esta edición buscamos enriquecer la oferta de actividades. Por ello abrimos los llamados a:  Charlas  La conferencia va a contar con dos secciones, una de Investigación Científica y otra de Industria del Software.  Concurso  Este año presentaremos un concurso de programación, en el que se podrá utilizar cualquier dialecto de Smalltalk.  Keynotes  Conferencias invitadas a cargo de personalidades de renombre.  Hands on  Sección de tutoriales, a realizarse en laboratorios con máquinas.&lt;/blockquote&gt; &lt;p&gt;Hay una llamada a presentar&amp;nbsp;&lt;a href="http://neuquina.lifia.info.unlp.edu.ar:8001/Smalltalks-2008?_s=BBSrvOyOrGhkyGgv&amp;amp;_k=TsdkeyVS" target="_blank"&gt;papers&lt;/a&gt;&amp;nbsp;(&lt;a href="http://neuquina.lifia.info.unlp.edu.ar:8001/files/WASmalltalks2008Files/CFPSmalltalks2008.pdf" target="_blank"&gt;versión PDF&lt;/a&gt;), sobre los temas:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Aspects, Aspect Languages and Applications.  &lt;li&gt;Ambient Intelligence, Ubiquitous / Pervasive Computing and Embedded Systems.  &lt;li&gt;Compilation Technology, Optimization, Virtual Machines.  &lt;li&gt;Educational Material.  &lt;li&gt;Language Engineering, Extensions.  &lt;li&gt;Model Driven Engineering / Development.  &lt;li&gt;Meta-Modeling.  &lt;li&gt;Programming in the Large, Design, Architectures and Components.  &lt;li&gt;Programming Environments, Browsers, User Interfaces, UI Frameworks.  &lt;li&gt;Reasoning About Code (Analyses, Refactoring, Type Inference, Metrics).  &lt;li&gt;Reflection and Meta-programming.  &lt;li&gt;Team management.  &lt;li&gt;Testing, Extreme Programming / Practices.  &lt;li&gt;Web Services, Internet Applications, Event-driven Programming.  &lt;li&gt;Experience Reports.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Es interesante que este año hayan extendido el alcance de los temas para incluir otros lenguajes dinámicos, no solamente Smalltalk. Este es el comité de programa:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Federico Balaguer (LIFIA, Universidad Nacional de La Plata, Argentina)  &lt;li&gt;Tulio Ballari (UTN, Buenos Aires, Argentina)  &lt;li&gt;Alexandre Bergel (INRIA, Lille, France)  &lt;li&gt;Gilad Bracha (Cadence Design Systems, USA)  &lt;li&gt;Johan Brichau (Université Catholique de Louvain, Belgium)  &lt;li&gt;Cecilia Challiol (LIFIA, Universidad Nacional de La Plata, Argentina)  &lt;li&gt;Marcus Denker (SCG, University of Bern, Switzerland)  &lt;li&gt;Fernando Dodino (UTN, Buenos Aires, Argentina)  &lt;li&gt;Stéphane Ducasse (INRIA, Lille, France)  &lt;li&gt;Alejandra Garrido (LIFIA, Universidad Nacional de La Plata, Argentina)  &lt;li&gt;Tudor Girba (SCG, University of Bern, Switzerland)  &lt;li&gt;Orla Greevy (SCG, University of Bern, Switzerland)  &lt;li&gt;Julián Grigera (LIFIA, Universidad Nacional de La Plata, Argentina)  &lt;li&gt;Andy Kellens (PROG, Vrije Universiteit Brussels, Belgium)  &lt;li&gt;Kim Mens (Université Catholique de Louvain, Belgium)  &lt;li&gt;Guillermo Adrián Molina (ESSI Projects, Spain)  &lt;li&gt;Damien Pollet (INRIA, Lille, France)  &lt;li&gt;David Röthlisberger (SCG, University of Bern, Switzerland)  &lt;li&gt;Daniel Solmirano (UTN, Buenos Aires, Argentina)  &lt;li&gt;Tom Van Cutsem (PROG, Vrije Universeit Brussels, Belgium)  &lt;li&gt;Roel Wuyts (IMEC, Belgium)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Smalltalk es una tecnología que, en mi opinion, falló en &amp;quot;cruzar el abismo&amp;quot;. A finales de los 80s, y comienzos de los 90s, la comunidad estaba dividida en varios dialectos e implementacion comerciales divergentes. Pero el ímpetu de leales miembros de la comunidad se ha probado el año pasado, aquí, en Argentina, con el éxito de la pasada conferencia del 2007. Espero que Smalltalk pueda integrarse con otras tecnologías, como .NET y Java, para ganar más momento y aceptación. Vean, como ejemplo, la adopción de F# en la comunidad científica: el acceso a un framework popular de clases es una característica clave en el &amp;quot;mainstream&amp;quot; de desarrollo de hoy. Insistir en la actitud de un mundo, un solo lenguaje, no la veo como opción en estos días. Celebro, entonces, la apertura de la llamada de papers a otros lenguajes dinámicos.&lt;/p&gt; &lt;p&gt;Nos leemos!&lt;/p&gt; &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com"&gt;http://www.ajlopez.com&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1645503" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category></item><item><title>Enlaces y noticias</title><link>http://msmvps.com/blogs/lopez/archive/2008/07/24/enlaces-y-noticias.aspx</link><pubDate>Thu, 24 Jul 2008 11:48:44 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1641989</guid><dc:creator>lopez</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1641989</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/07/24/enlaces-y-noticias.aspx#comments</comments><description>&lt;p&gt;Hay varios temas de los que quisiera bloguear más en detalle. Pero vaya hoy una lista de enlaces y comentarios cortos:&lt;/p&gt; &lt;p&gt;Primero de todo, tenemos nuevos Microsoft MVPs por aquí en Argentina, felicitaciones a &lt;a title="Rodolfo Finochietti" href="http://weblogs.shockbyte.com.ar/rodolfof/archive/2008/07/01/mvp-award-in-client-application-development.aspx"&gt;Rodolfo Finochietti&lt;/a&gt;, &lt;a title="archi" href="http://www.clariusconsulting.net/blogs/pga/archive/2008/07/01/77156.aspx"&gt;Pablo Galiano&lt;/a&gt;, y al pibe &lt;a href="http://blogs.southworks.net/mwoloski/2008/07/02/microsoft-mvp-award/" target="_blank"&gt;Matías Woloski&lt;/a&gt;. El bueno de Finochietti visita de vez en cuando este blog, y deja comentarios, por ejemplo, sobre programación funcional&amp;nbsp;y el lenguaje Cat. Tenemos varios intereses en común, como el estudio de lenguajes, compiladores, y compartimos la afición por la historia de las matemáticas. &lt;/p&gt; &lt;p&gt;Si se interesan en Smalltalk, es interesante &lt;a href="http://www.outbacksoftware.com/smalltalk/smalltalk.html" target="_blank"&gt;The Smalltalk programming language&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Gracias al bueno de Martin Salias, que me avisó de este texto en la web&amp;nbsp;&lt;a title="The Early History of Smalltalk" href="http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html"&gt;The Early History of Smalltalk&lt;/a&gt;&amp;nbsp;de Alan Kay (yo había anunciado una versión en PDF en &lt;a title="La historia de Smalltalk" href="http://msmvps.com/blogs/lopez/archive/2008/06/26/la-historia-de-smalltalk.aspx"&gt;La historia de Smalltalk&lt;/a&gt;). Es un &amp;quot;DEBESERLEIDO&amp;quot; por todo aquel que esté realmente interesado en la programación. Uno debe conocer la historia de las ideas, para realmente entender la situación actual tanto de ideas, como de tecnologías, y para tener un &amp;quot;grasp&amp;quot; de lo que podría venir.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.modumobile.com/#/modu_story/" target="_blank"&gt;Modu&lt;/a&gt;: gracias al twitter de &lt;a href="http://twitter.com/parancibia" target="_blank"&gt;@parancibia&lt;/a&gt;, vean este mobile modular. Muy interesante el concepto.&lt;/p&gt; &lt;p&gt;De vez en cuando, &lt;a href="http://www.directionsonmicrosoft.com/" target="_blank"&gt;Microsoft Directions&lt;/a&gt; publica un artículo público. Lean &lt;a href="http://www.directionsonmicrosoft.com/sample/DOMIS/update/2008/07jul/0708spsad.htm" target="_blank"&gt;Software Plus Services and Developers&lt;/a&gt;. ¿The next big thing?&lt;/p&gt; &lt;p&gt;Dentro del proyecto NHContrib, de herramientas para NHibernate, existe NHibernate.LINQ, que permite usar LINQ sobre NHibernate. Vean ahora lo que se hizo con Silverligh en &lt;a href="http://wildermuth.com/2008/07/20/Silverlight_2_NHibernate_LINQ_==_Sweet"&gt;Silverlight 2 + NHibernate.LINQ == Sweet&lt;/a&gt;&amp;nbsp;y el ejemplo de &lt;a title="nhibernat" href="http://www.silverlightdata.com/simple/nhibernate.aspx"&gt;nhibernate con Northwind&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Para aprender NHibernate &lt;a title="NHibernate - Relational Persistence for Idiomatic .NET" href="http://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html/"&gt;NHibernate - Relational Persistence for Idiomatic .NET&lt;/a&gt;. Si quieren contribuir al proyecto &lt;a title="hibernate.org - Getting Started with the NHibernate Source Code" href="http://www.hibernate.org/428.html"&gt;hibernate.org - Getting Started with the NHibernate Source Code&lt;/a&gt;. Si tienen dudas, ver &lt;a href="http://groups.google.com/group/NHibernate-Hispano" target="_blank"&gt;la lista de NHibernate Hispano&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Siguiendo con LINQ, leo cómo usar un DataContext en memoria, esta vez desde ASP.NET MVC, en &lt;a href="http://weblogs.asp.net/stephenwalther/archive/2008/07/19/asp-net-mvc-tip-21-fake-the-data-context.aspx" target="_blank"&gt;ASP.NET MVC Tip #21 – Fake the Data Context&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Las aventuras de &lt;a href="http://www.hanselman.com/" target="_blank"&gt;Scott Hanselman&lt;/a&gt; para agregar un OpenSearch en sus páginas: &lt;a title="Adding OpenSearch to your website and getting in the Browser&amp;#39;s Search Box" href="http://www.hanselman.com/blog/AddingOpenSearchToYourWebsiteAndGettingInTheBrowsersSearchBox.aspx"&gt;Adding OpenSearch to your website and getting in the Browser&amp;#39;s Search Box&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/stevecla01/" target="_blank"&gt;Steve Clayton&lt;/a&gt; está en Software + Services en Microsoft. Lean &lt;a href="http://blogs.msdn.com/stevecla01/archive/2008/07/21/my-us-tour-closes-out-with-ozzie.aspx" target="_blank"&gt;su encuentro con Ray Ozzie&lt;/a&gt;, no puede decir todo, pero S+S se viene cada vez más. El tiempo dirá qué será eso.&lt;/p&gt; &lt;p&gt;No llegué a tiempo para anunciarla. Diego Jancic realizó una encuesta en línea sobre cómo programamos. &lt;a href="http://blog.darioquintana.com.ar/2008/07/18/resultado-de-encuesta-como-programamos/" target="_blank"&gt;Vean los resultados&lt;/a&gt; en &lt;a href="http://blog.darioquintana.com.ar" target="_blank"&gt;el blog de Darío Quintana&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;El Composite Application Guidance para WPF tiene &lt;a href="http://msdn.microsoft.com/en-us/library/cc707819.aspx" target="_blank"&gt;su nueva página en MSDN&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.codinghorror.com/blog/" target="_blank"&gt;Jeff Atwood&lt;/a&gt; tiene algunas ideas interesantes y discutibles sobre &lt;a href="http://www.codinghorror.com/blog/archives/001152.html" target="_blank"&gt;no normalizar base de datos&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/LearningOpportunityNETTerrariumIsBack.aspx" target="_blank"&gt;.NET Terrarium está de vuelta&lt;/a&gt;!&lt;/p&gt; &lt;p&gt;Me interesó el &lt;a href="http://jackrabbit.apache.org/jackrabbit-architecture.html" target="_blank"&gt;proyecto Jackrabbit&lt;/a&gt;, tengo que estudiar más en detalle la especificación Content Repository API de la &lt;a href="http://jcp.org/aboutJava/communityprocess/final/jsr170/index.html" target="_blank"&gt;JSR-170&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blog.twitter.com/2008/07/finding-perfect-match.html" target="_blank"&gt;Twitter adquiriendo a Summize&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Y hay que visitar y usar&amp;nbsp;&lt;a href="http://www.emergingtechs.com/posts/15-online-tools-you-will-come-love-tech" target="_blank"&gt;10 herramientas para un tech&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Nuevo &lt;a href="http://blogs.msdn.com/gardel/" target="_blank"&gt;Blog de la comunidad MSDN en español&lt;/a&gt;. Gracias a &lt;a href="http://blogs.msdn.com/masaez/" target="_blank"&gt;Miguel Angel Saez&lt;/a&gt; por el aviso.&lt;/p&gt; &lt;p&gt;Si alguien necesita acá está: &lt;a href="http://www.theserverside.com/tt/articles/article.tss?l=FiniteStateMachinesPhyshunandSpring" target="_blank"&gt;Implementing Finite State Machines with Physhun and Spring&lt;/a&gt; (en Java)&lt;/p&gt; &lt;p&gt;Cada vez más lenguajes dinámicos sobre máquinas virtuales, ver &lt;a href="http://www.alittlemadness.com/2008/07/15/java-6-using-python-via-the-new-scripting-engine/" target="_blank"&gt;Java 6: Using Python via the new Scripting Engine&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Interesante código y artículo, sobre un tema que se necesita conocer: &lt;a href="http://www.codeproject.com/KB/aspnet/SingleSignon.aspx" target="_blank"&gt;Single Sign-on in ASP.NET and Other Platforms&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Para entender la historia de MVC: &lt;a href="http://heim.ifi.uio.no/trygver/2003/javazone-jaoo/MVC_pattern.pdf" target="_blank"&gt;The Model-View-Controller, Its past and present&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Más sobre Model-View-Controller, Model-View-Presenter, y Presentation-Abstraction-Control en &lt;a href="http://ctrl-shift-b.blogspot.com/2007/08/interactive-application-architecture.html" target="_blank"&gt;Interactive Application Architecture Patterns&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;MVC en ASP.NET en &lt;a title="ASP.NET MVC - The Official Microsoft ASP.NET Site" href="http://www.asp.net/mvc/"&gt;ASP.NET MVC - The Official Microsoft ASP.NET Site&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Una interesante comparación de David Hayden&amp;nbsp;&lt;a href="http://www.pnpguidance.net/Post/ASPNETMVCFrameworkComparedWebClientSoftwareFactoryWCSF.aspx" target="_blank"&gt;ASP.NET MVC Framework Compared To Web Client Software Factory ( WCSF )&lt;/a&gt;&lt;/p&gt; &lt;p&gt;¿Necesitan un manejar un proyecto de software? No lo uso, vería el open source Trac Project, via web en Java (gracias a J. Franco, por este enlace). Al parecer, trabaja con &lt;a href="http://subversion.tigris.org/" target="_blank"&gt;Subversion&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;¿Necesitan open source en Java? De todo en &lt;a title="http://java-source.net/" href="http://java-source.net/"&gt;http://java-source.net/&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Off topic total: mi mejor post hasta ahora del 2008, con gráfica incluida, en &lt;a title="Posmopolitan" href="http://ajlopez.zoomblog.com/archivo/2008/07/08/posmopolitan.html"&gt;Posmopolitan&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Nos leemos!&lt;/p&gt; &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;br /&gt;&lt;a title="http://friendfeed.com/ajlopez" href="http://friendfeed.com/ajlopez"&gt;http://friendfeed.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1641989" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Java/default.aspx">Java</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Smalltalk/default.aspx">Smalltalk</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/NHibernate/default.aspx">NHibernate</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Enlaces+y+Noticias/default.aspx">Enlaces y Noticias</category></item></channel></rss>