Por: José Antonio Ramírez González.
Dart, Ceylon, Go, F#, Opa, Fantom, Zumbu y Chapel, entre otros ¿serán los nuevos lenguajes de programación que cobrarán fuerza en los siguientes años?
Sin duda que para los expertos, principalmente los profesionales TI adentrados en el desarrollo de software, varios son los lenguajes que cubren gran parte de sus necesidades para crear sus aplicaciones.
E incluso, dentro de la comunidad se sigue considerando a Java, .NET y C#, al igual que PHP entre sus principales herramientas.
Sin embargo, permítasenos hacer eco del amplio reporte que Infoworld, principal fuente de información sobre tecnologías empresariales emergentes y miembro de la International Data Group, quien realizó un recuento de 10 lenguajes experimentales que en la actualidad no son conocidos, pero que en los próximos tres o cinco años podrían tener un gran impacto.
Neil McAllister, analista de Infoworld, expone que algunos de estos nuevos lenguajes están diseñados por estudiantes o aficionados como proyectos personales. Otros son los productos de grandes proveedores de TI. Incluso, dice, pequeñas y medianas empresas se están sumando a la acción al crear lenguajes especialmente enfocados para servir a las necesidades de sus industrias.
Paralelamente, el auge de nuevas tecnologías, la proliferación de fenómenos como cloud computing, movilidad, big data, entre otros, está propiciando que las empresas necesiten contratar más programadores y expertos en no uno, sino varios lenguajes de programación.
Lo anterior, abriría un mayor foco de atención entre los profesionales de TI, quienes si bien tienen bajo dominio los principales y alguno otro adicional, tendrían que monitorear entre sus comunidades el o los que con mayor impacto “sacudan el mundo de las TI”, como señala McAllister.
Y para tomarlo en cuenta, la lista de estos nuevos lenguajes es la siguiente:
Dart
Lenguaje de reciente aparición, desarrollado por Google y diseñado para mejorar la capa web cliente. Su objetivo no es sustituir JavaScript ya que en ocasiones puede venir bien para aplicaciones web sencillas. Sin embargo, busca convertirse en referente para aplicaciones web donde existe gran carga de líneas de código. Su sintaxis es similar a C y permite definir clases e interfaces como en C++ o Java.
Ceylon
El analista de Infoworld indica que pretende ser una evolución de Java, aunque recoge el sentir de Gavin King, desarrollador en Red Hat, al señalar que con Ceylon no se busca “matar” a Java.
Sin embargo, afirma que hay mucho que mejorar, pues Java tiene una sintaxis excesivamente detallada, además de que le faltan funciones fundamentales y hay poco apoyo a la meta-programación.
Por otra parte Gavin se siente frustrado por el abuso en la actualidad de la programación declarativa en el que toda la aplicación se encadena mediante XML y dejando de lado la programación imperativa.
Ceylon compila a bytecodes de Java, pero sí pretende reemplazar el SDK en el que según Gavin afirma: “Está hinchado y es torpe”.
Go
Iniciado en el 2009, es otro lenguaje experimental de Google de propósito general en el que se busca facilitar la sintaxis al puro estilo C, pero con características avanzadas como son la recolección de basura, reflexión en tiempo de ejecución y apoyo a la concurrencia. Go sigue siendo un trabajo en proceso en el que la especificación del lenguaje podría cambiar.
F#
Diseñado por Microsoft, pretende aportar mejoras a aquellos desarrolladores que les gusta la programación funcional. Una de las quejas que existen en la actualidad es que utilizando lenguajes de programación funcional tipo Haskell o Lisp no es posible utilizar bibliotecas o características de otros lenguajes CLR (C# y Visual Basic).
Con F# ya no es un problema, ya que está incluido en Visual Studio 2010, lo cual permite esta compatibilidad y utilizar programación funcional.
Opa
Afirma McAllister que este lenguaje pretende aplicar un nuevo paradigma al desarrollo web y es que para realizar una aplicación de este tipo es necesario el conocimiento de lenguajes en el cliente (HTML y JavaScript) y en el servidor (PHP o Java). Del mismo modo, SQL también lleva su propio lenguaje.
Opa decidirá si una rutina debe ejecutarse en el cliente, en el servidor o en ambos así como determinar por dónde se ejecutará la salida realizando la transmisión de datos mediante Ajax, en el caso de ser en el cliente.
Este sistema requiere algo de Back-End, ya que se dispone de su propio servidor web y gestión de datos y no puede ser reemplazado con alternativas Stand-Alone.
Fantom
Diseñado para desarrollar aplicaciones portables entre plataformas. La compilación permite crear archivos bytecodes para la JVM y CLI.Net. Permite el acceso al conjunto de APIs disponibles de Java y. Net al crear una capa adicional.
Según McAllister, existen planes de extender la portabilidad a más plataformas. Por ejemplo, ya hay disponible un compilador Fantom-a-JavaScript y las expectativas son que permita en un futuro exportar a Parrot VM y Objective-C.
Zimbu
Lenguaje creado por Bram Moolenaar, creador del editor de texto Vim. Zimbu pretende que el lenguaje que se escriba sea sencillo, conciso, fácil de leer y rápido de escribir y que no sean necesarias tantas herramientas gráficas.
Es un lenguaje compilado en el que los binarios se construirán en un compilador C nativo.
X10
Una de las principales necesidades a resolver de este lenguaje es la ejecución concurrente de procesos para el caso de tener múltiples núcleos. Su código se divide en unidades que son ejecutadas por procesadores diferentes, lo cual permite escalar en rendimiento añadiendo más núcleos.
La sintaxis de X10 es parecida a Java y permite crear archivos fuente C++ y Java. McAllister lo considera un lenguaje bastante maduro, aunque le siguen haciendo modificaciones. Para facilitar el desarrollo de aplicaciones existe un IDE basado en Eclipse y un depurador.
haXe
haXe pretende ser un lenguaje multiplataforma que permita desarrollar para diferentes entornos tanto de manera nativa como utilizando máquinas virtuales. A partir de código fuente, con haXe es posible compilarlos devolviendo OBJs, JavaScript, PHP, Flash/ActionScript, bytecode NekoVM, C# o Java. Dispone de una biblioteca estándar que funciona en todos los anteriores tipos de compilación.
La sintaxis es similar a C y, aunque se encuentra en desarrollo, haXe es utilizado comercialmente por su creador. Lo que comúnmente se conoce como “comer tu propia comida de perros” para demostrar su valor.
Chapel
Chapel pretende ser una ambiciosa iniciativa financiada por EE.UU. a través de la sociedad DARPA (Agencia de Investigación de Proyectos Avanzados de Defensa). Chapel tiene como objetivo crear un lenguaje de alto rendimiento y la ejecución de algoritmos en paralelo para la supercomputación.
La sintaxis tiene influencias de C, C++ y Java y toma conceptos de programación científica como Fortran y Matlab. La influencia del procesamiento en paralelo viene dado por ZPL y Fortran. En la actualidad se utiliza en supercomputadoras y se dispone de una versión portátil para sistemas tipo Unix con licencia BSD.
Conclusión
Hasta aquí los diez lenguajes experimentales que pueden ser muy interesantes.
En mi opinión me llaman la atención Dart por su acogida en la comunidad sin estar terminado, Ceylon por su retorno a la programación imperativa y no pretender abusar de la programación XML y haXe por tener la intención de unificar todas las diferentes librerías en el que cada lenguaje utiliza nombres diferentes para lo mismo, en una única librería estándar.
El autor, José Antonio Ramírez, es periodista especializado en TIC y negocios desde hace más de 20 años, además se ha desempeñado como editor de publicaciones especializadas como Byte, LANTimes e Interoffice, así como secciones en diversos diarios.
Ja! Y solo conocía uno de ellos :-(, «Go». No tengo futuro en la programación.
Hola Alejandro,
Al contrario, creemos que esta información te puede ayudar para investigar con mayor detenimiento alguno de estos lenguajes y obtener ventajas competitivas en el mercado 🙂
¡Saludos!
Hola busco alguien que me informe sobre HAXE . Bien algun curso, informacion,o experto. Me urge mucho,agradeceria cuanto antes.
gracias