10 lenguajes de programación en alza
El número y diversidad de lenguajes de programación utilizados hoy en día es inmensa. Para bien o para mal, sin embargo, la mayoría de las organizaciones se asientan en un pequeño subconjunto, los mismos de siempre (C ++, JavaScript, PHP, Ruby, etc.), para hacer frente a cualquier problema de programación que se les presente.
Sin embargo, algunos problemas requieren nuevos enfoques y nuevas herramientas. En este artículo presentamos 10 lenguajes de programación que están ganando tracción significativamente para usos recién descubiertos, de nueva creación, o reinventados. Se trata de una gama de lenguajes que va desde los que son de propósito general a otros muy específicos, y sus raíces que se extienden desde Lisp a Java, pero cada uno podría tener un impacto significativo en la programación moderna a medida que esta evolucione.
Ceylon
Surgió como respuesta a muchos de los puntos débiles más notorios de Java. En lugar de XML, utiliza una sintaxis declarativa parecida a JSON para datos con estructura de árbol, y cuenta con tipos estáticos, un sistema de módulos, y con el soporte a algunas estructuras que no existen en Java, tales como tipos secuencia, de intersección y unión.
Clojure
Lenguaje para programación funcional que también está diseñado para concurrencia, adaptado para aplicaciones multicore o ampliamente distribuidas. Es el más adecuado para programadores que proceden de una formación matemática, pero teniendo en cuenta el creciente éxito de del paradigma de la programación funcional, Clojure merece un vistazo más de cerca más allá de este tipo de programas.
Egison
Es un lenguaje funcional diseñado para permitir que se exprese la coincidencia de patrones de distintas maneras sobre la base de tipos de datos (para listas vs. sets); para manejar patrones no lineales, tales como múltiples ocurrencias de la misma variable en un patrón; y para crear funciones que reciben y devuelven patrones.
Groovy
Es esencialmente una extensión sintáctica de Java que se ejecuta en la JVM y puede hacer uso de las clases de las librerías de Java. Está repleta de características que no se encuentran en Java de forma nativa: principalmente tipos estáticos y dinámicos, pero también la sobrecarga de operadores, el soporte a expresiones regulares, y un operador "?" para permitir la comprobación segura de objetos nulos.
Hack
Facebook había creado su propio runtime de PHP, conocido como HHVM. El nuevo lenguaje Hack, spin-off de Facebook, mantiene el ciclo de desarrollo rápido de PHP y la facilidad de uso, añade tipificación estática de objetos y expresiones lambda, y fue escrito en OCaml para mayor seguridad y durabilidad. Teóricamente es fácil migrar programas de PHP a Hack.
Jeeves
Fue creado para ayudar a los programadores a hacer cumplir las políticas de privacidad de cómo los datos se mueven a través de una aplicación. Esto va más allá de determinar si un usuario puede ver un valor, determinando si el usuario puede ver los valores derivados de ese valor. Las políticas a cerca del modo en que se crean y gestionan este tipo de flujos de datos se crean y gestionan por separado desde el propio programa.
Julia
Fue diseñado para la computación técnica y científica, donde el procesamiento de datos numéricos paralelizado y distribuido es una forma de vida. Julia compila a código máquina con la ayuda de un compilador basado en LLVM, y en algunos puntos de referencia claves supera a Matlab, Mathematica , y R por un amplio margen.
Nimrod
Es un lenguaje de programación imperativo estáticamente tipado, que intenta dar al programador la potencia máxima y sin compromisos en materia de eficiencia en tiempo de ejecución. Nimrod compila a C (con C++ y Objective-C como opciones) y no necesita máquina virtual ni runtime. El lenguaje también permite al usuario definir operadores y macros.
OCaml
Hace programación funcional, imperativa y orientada a objetos. Su diseño estáticamente tipado no puede ganar a los lenguajes que han invertido sólidamente en el campo del tipado dinámico, pero una señal de la seriedad con la que vale la pena tomarle es cómo otros lenguajes están empezando a surgir a su paso, como Microsoft C#, por ejemplo.
Racket
Variante de Lisp diseñada para ser lo suficientemente potente como para crear lenguajes, además de ser sencillo y lo suficientemente robusto como para ser utilizado para la programación de aplicaciones tradicionales. A diferencia de otros lenguajes similares a Lisp, incluye un compilador, por lo que se pueden añadir características al lenguaje como si fueran construcciones de Racket nativas.