Más allá del índice TIOBE: lenguajes de programación alternativos
Aunque lenguajes conocidos por todos, como Java, JavaScript, C y PHP, copan los primeros puestos de los rankings de popularidad, cada año se presentan nuevos candidatos.
Aunque eso no es todo. Por si uno fuera poco, Google está enfrascado en el desarrollo simultáneo del lenguaje de programación web estructurado Dart que fue desvelado durante la celebración de la conferencia GOTO de octubre de 2011 y en el que está implicado Gilad Bracha, que ya participa desde 2006 en la aventura de Newspeak y es co-autor (ahí es nada) de la especificación del lenguaje Java. El reto en esta ocasión es suplir las lagunas de JavaScript de manera algo rupturista, esto es, se presenta como una alternativa potente, fácil de aprender, menos susceptible a los bugs e ideal para la construcción de miles de líneas de código en proyectos de envergadura. La coletilla de sustituto de JavaScript acompaña asimismo a TypeScript, un lenguaje “made in” Redmond en el que ha colaborado el arquitecto principal de Turbo Pascal, Delphi y C# Anders Hejlsberg y que fue presentado por Microsoft el año pasado. Éste añade escritura estática opcional para aplicaciones voluminosas, declaraciones de clases, soporte para módulos y plug-in de Visual Studio, modernizando las posibilidades de programación.
¿Hay espacio (e interés) para tantos proyectos?
A nivel de simplificación del desarrollo web ha aparecido durante el último año y medio una tercera opción bautizada como Opa que, más que reemplazar una a una a las diferentes tecnologías mainstream (JavaScript, HTML, CSS y DOM en el lado del cliente; Java y PHP en el servidor; o SQL en las bases de datos) pretende superarlas fusionándolas en un paradigma único de programación. De este modo, una aplicación escrita a partir de Opa implementará la interfaz de usuario, la lógica de servidor y las entradas y salidas de los datos con un único lenguaje, que genera todo el código necesario para realizar dichas operaciones. Si bien tiene la ventaja de crear prototipos de aplicaciones web muy sofisticados con pocas líneas, su entorno de ejecución no contempla más opciones que sus propios servidor web y sistema de gestión de bases de datos.
Por lo demás, hay lenguajes que buscan directamente ahondar en la programación multiparadigma, tipo Clojure o Fantom y Scala; que son vitoreados como auténticos “killers” por sus seguidores pero definidos como meras modernizaciones por parte de sus creadores, caso del Ceylon de Red Hat que le pega un buen repaso a Java aunque apoyándose en la máquina virtual JVM; o que todavía están en pañales como Zimbu, un diseño del responsable del editor de texto Vim, Bram Moolenaar, a medio camino entre la prueba de concepto y la versión 1.0. Por germinar han germinado desarrollos tan interesantes como el visual Kodu, que floreció a partir de un juego infantil para la Xbox, o el reciente قلب, basado en Lisp y con un doble objetivo: embellecer la industria del software y erradicar los prejuicios culturales. No en vano se trata del primer lenguaje de programación que utiliza la caligrafía árabe para su código fuente.
La pregunta ahora es cuántos de estos y otros tantos proyectos (Coherence, haXe, Frink, Factor…) perdurarán en el tiempo. ¿Cuáles calarán entre los programadores y cuáles caerán en el olvido? ¿Cuáles se seguirán actualizando de forma regular, ofrecerán una documentación fiable y representarán una alternativa real? ¿Y cuáles resultarán demasiado complicados de aprender? De momento, el índice TIOBE mantiene a Java y a C en las dos primeras posiciones de su ranking de popularidad, con cierta ganancia en sus participaciones respecto a las cifras de marzo de 2012, cuando también se clasificaron primero y segundo; y a Objetive-C como tercero y uno de los más pujantes, habiendo recibido el galardón a “lenguaje del año” el pasado mes de enero. Algo que consiguió uno de los novatos, Go, en 2009 y que según el índice PYPL (PopularitY of Programming Language) se lo merece más C#. ¿Quién escalará hasta el puesto número uno en 2013 y cuál será el lenguaje revelación?