Julia es un lenguaje de programación conocido en el ámbito científico por su vasta librería de funciones matemáticas, a la vez es un lenguaje de alto nivel y de alta perfomance.
El lenguaje fue creado por Stefan Karpinski, estudiante graduado de la Universidad de California, que estaba involucrado en una herramienta simulación de redes que requería el uso de varios lenguajes de programación diferentes. Curiosamente, ninguno de los lenguajes usados podía hacer toda la tarea, todo el proceso. Por ello, Karpinski, junto con su compañero de universidad Viral Shah y Jeff Bezanson del MIT, decidieron resolverlo diseñando un nuevo lenguaje que fuera compatible con prácticamente cualquier tarea. La meta de Karpinski y su equipo es construir un lenguaje único que haga todo bien.
La librería de funciones matemáticas, en gran parte están escrita en Julia, pero también se integra con librerías maduras, las mejoras librerías de C y las librerías de Fortran para álgebra lineal, la generación de números aleatorios, procesamiento de señales y procesamiento de cadenas.
Características
Entre las características de este lenguaje podemos nombrar:
-
Posibilidad de definir el comportamiento de una función con una combinación de tipos de argumentos y sistema dinámico de tipos: tipos para documentar, optimizar y ejecutar rutinas
-
Buen desempeño, el cual se aproxima (estadísticamente) a lenguajes como C
-
Macros como en LISP y otras funcionalidades de metaprogramación
-
Comunicación con otros lenguajes y plataformas. Se pueden llamar funciones de Python usando el paquete PyCall y se puede llamadar a funciones de C directamente. No se necesita nada más
-
Dado que fue diseñado para computación distribuida y en paralelo, contiene una poderosas Shell que puede manejar otros procesos
-
Generación automática de código especializado, eficiente, de acuerdo al tipo de argumentos
-
Conversiones elegante y extensibles para tipos numéricos y otros tipos. Además soporte para Unicode
-
Licencia MIT : libre y de código abierto
Un compilador Jit Rápido
Una de las características más notables de Julia es la performance de su compilador JIT, el cual es capaz de superar a lenguajes que tienen más historia. En la página oficial de Julia podemos ver un benchmark realizado que compara a Julia con otros lenguajes como Fortran, Python, R, Matlab, etc. Como podemos ver a continuación Julia queda muy bien parado:
IJulia
IJulia, es un entorno gráfico e interactivo que permite combinar instrucciones Julia con funciones matemáticas, gráficos, multimedia todo en un solo documento. Ijulia utiliza el poderoso entorno IPython para su funcionamiento.
Conclusión
Julia ha ganado un espacio importante en el mundo científico con su amplia librería matemática y su velocidad. La pregunta es si seguirá ganando terreno en otros ámbitos. ¿Ustedes que opinan?
Más información | Julia