03 junio, 2008

Lenguajes dinámicos y SquirrelFish

Hace unos días, Steve Yegge de google publicó una transcripción de su presentación llamada "los lenguajes dinámicos contraatacan". En ella, ponía de manifiesto como nos formamos en un entorno de lenguajes compilados (como el C) y creamos una cierta predisposición a considerarlos idóneos para cualquier trabajo. Dentro de ese posicionamiento casi religioso (tipo dogma), se acusa a los lenguajes dinámicos de resultar extremadamente lentos o de que no se crean aplicaciones enormes con ellos y alguna razón debe haber. Lo cierto es que la tecnología de los compiladores se ha beneficiado de múltiples optimizaciones gracias a la fuerte investigación que ha recibido durante todos estos años.

Sin embargo, gracias al auge de lenguajes como Python, Ruby o ahora Javascript, todos ellos interpretados, están apareciendo muchas propuestas que, poco a poco, están acercando los lenguajes dinámicos a los de toda la vida. Los programadores que suelen probar un proyecto con alguno de estos lenguajes, suelen quedar sorprendidos por la alta productividad que resulta de no tener que compilar el código y de no depender de otras características como el tipado rígido. Más que nada porque han albergado y defendido hasta la saciedad el carácter infantil de dichos lenguajes.

La presentación de Yegge identifica con bastante claridad los tópicos, casi todos falsos, en los que se basan los partidarios de los lenguajes estáticos. Hay un tremendo margen de mejora, como evidencian proyectos como el nuevo SquirrelFish, un nuevo intérprete de Javascript para el navegador WebKit (Apple Safari) que casi duplica el rendimiento del actual pese a que no se le consideraba lento.



Precisamente para acallar algunas críticas respecto a la velocidad, el equipo responsable de la nueva versión de EcmaScript (Javascript), lenguaje que no recibía actualización desde hace años, ha incorporado multitud de nuevas características. En un futuro artículo trataré de analizarlas, pero considero que muchas de ellas no son más que intentos de copiar a los lenguajes estáticos para intentar atraer a sus programadores. Adobe mismo ha criticado muchas de esas nuevas características, por no haberse probado lo suficiente, resultar complicadas de implementar y existir múltiples dudas sobre su idoneidad. Personalmente creo que la mayor parte de los cambios no resultan adecuados y traicionan en gran medida la gracia y la ortogonalidad del lenguaje.

Publicar un comentario en la entrada

Últimos links en indiza.com