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.
Desde la aparición en los años 50 del lenguaje de programación de alto nivel Fortran de la mano de otro histórico de la industria informática, IBM, el trabajo de los desarrolladores no ha hecho más que revitalizarse. Desde todas partes, en la cuna empresarial o al calor de grandes aficcionados, han aflorado cientos de lenguajes imperativos, funcionales, lógicos, orientados a objetos, dinámicos, compilados, interpretados, de procesamiento por lotes… creando tal entramado de familias en el mundillo de la programación que hoy en día nadie sería capaz de aprender a manejar todas las opciones existentes. Y aún así, no se ha dicho la última palabra. La evolución constante de la tecnología y el imperativo de cubrir nuevas necesidades hacen que cada año se sumen a la lista de lenguajes de programación más alternativas.
Por ejemplo, la llegada de las CPUs “multicore”, la era de la movilidad o la computación en la nube son tres factores que han originado nuevos retos para los desarrolladores. Sobre todo a la hora de programar procesamientos en paralelo, para los que los lenguajes actuales no están tan preparados y para los que el propio Gigante Azul comenzó a trabajar en X10 dentro del programa Sistemas de Computación de Alta Productividad (HPCS, por sus siglas en inglés) de la agencia DARPA. X10 es en realidad un subconjunto extendido de Java, bastante parecido a este último en muchos aspectos, pero que incluye soporte adicional para vectores y concurrencias a través del modelo de programación PGAS. Es altamente escalable desde un sólo hilo y soporta tanto la programación orientada como la no orientada a objetos. Otro punto a su favor es que está disponible para las principales plataformas (Windows, Mac y Linux) además de para IBM AIX, ya que lleva unos años intentando abrirse hueco.
Lo mismo quiere hacer Cray, conocido por sus diseños de potentes superordenadores, con Chapel que también ha nacido al amparo del programa HPCS y que bebe de múltiples fuentes: desde lenguajes tradicionales como el anteriormente nombrado Java, C o C++ hasta el mismísimo Fortran o MATLAB, pasando por ZPL y proyectos anteriores de Cray, a pesar de que su desarrollo está algo más verde. Entre sus máximas preocupaciones se encuentran la abstracción de algoritmos paralelos del hardware subyacente y su portabilidad. Y uno de sus mayores atractivos es la denominada programación multirresolución que permite a quienes trabajan con él crear prototipos de aplicaciones con código altamente abstracto e ir completando los detalles a medida que se define su funcionalidad. ¿Otra ventaja? Está disponible bajo una licencia de código abierto BSD.
El advenimiento de los lenguajes “open source”
Y es que una de las tendencias que parece marcar la aparición de nuevos lenguajes es la obsolescencia del software propietario. O al menos es un requisito bastante importante a la hora de postularse como lenguaje de futuro, incluido Microsoft F#. La comunidad no ve con buenos ojos a los candidatos que dependen de un proveedor demasiado controlador que esté autorizado para reescribir las reglas de juego en cualquier momento y no dé la suficiente seguridad como para confiar en que el código que se escribe hoy seguirá vigente mañana, bien sea por cambios en las herramientas utilizadas, en el propio lenguaje o en la licencia. La etiqueta de “open source”, en cambio, abraza las contribuciones externas que resultan especialmente útiles para dotar de contenido a la biblioteca estándar de un lenguaje, donde alumnos resabiados como el Java de Oracle aventaja al resto.
Es por eso que, para ganar reconocimiento, junto al truco de la apertura muchos lenguajes novatos apuestan por la familiaridad. La innovación está bien, pero puede ser un lastre si no se respeta la tradición y los logros de tantos años de investigación. Los desarrolladores no querrán volver a aprender todos los conceptos de gramática base desde cero para programar sus aplicaciones. Referentes como C, Limbo, Modula, Newsqueak, Oberon, Pascal y Python han ayudado a Google a sacar a la palestra a Go, una propuesta que fue anunciada en noviembre 2009 y cuya primera versión estable llego dieciséis meses después, en marzo de 2012. Por algo su finalidad es combinar la velocidad propia de los lenguajes dinámicos con la seguridad y el rendimiento de los lenguajes compilados en grandes volúmenes de binarios, mejorando la productividad del nuevo software y consiguiendo que las personas implicadas se diviertan. Eso sin perder de vista la posibilidad de extenderse por el entorno de servidores del gigante de Mountain View.
[Página 2]