Bye-bye Python. Hello Julia!

¿Qué es Julia?

Julia es un lenguaje de programación cuyo proyecto es de código abierto (permite leerlo, modificarlo y redistribuirlo).
Es un lenguaje multiplataforma (puede utilizarse en diversos sistemas operativos) y multiparadigma (permite usar más de un estilo o estructura de programación).
El gran objetivo de Julia es resolver los problemas que otros lenguajes no pueden.

Historia de Julia.

En 2012, a Jeff Bezanson, Stefan Karpinski, Viral Shah y Alan Edelman, autores de este lenguaje, les generaba cansancio el hecho de tener que cambiar entre unos lenguajes y otros al realizar operaciones matemáticas e informáticas. Como consecuencia requirieron de un único lenguaje de programación que fuese bueno para cálculo científico, aprendizaje automático, minería de datos, álgebra lineal, computación paralela y computación distribuida… Así nació Julia.

Su nombre se debe a Gaston Julia, un matemático francés que descubrió los fractales.

Este lenguaje se diseñó para tener las ventajas de un lenguaje dinámico y a la vez el rendimiento de uno compilado. Usa un compilador JIT (just-in-time) basado en LLVM (Low Level Virtual Machine) para generar código máquina nativo.

Al ser un lenguaje de hace solo casi 10 años, es un lenguaje bastante «joven», bastante nuevo, reciente… No tiene las librerías que tienen otros lenguajes muy populares como «R» (1993), «Python» (1991) o «Matlab» (1984).

Rendimiento.

La siguiente imagen muestra el rendimiento de 8 algoritmos diferentes en Julia y otros 12 lenguajes de programación.

Julia Micro-Benchmarks. Fuente.

Quién usa Julia y para qué se utiliza.

Mayoritariamente se usa en desarrollo de software para big data y computación en la nube, aunque también es muy utilizado por científicos y matemáticos de datos, así como en empresas conocidas como NVIDIA, CISCO o QuantEcon. O para el desarrollo de inteligencia artificial.

Julia vs Python.

Rendimiento.

Los programas escritos en Julia se procesan directamente como código ejecutable, puesto que es lenguaje compilado, mientras que Python es lenguaje interpretado.

En Julia se puede intercambiar información y conocimiento con otros lenguajes como el propio Python. Los resultados de Julia son eficientes y rápidos. No precisa de una mejora de rendimiento.

Julia ejecuta códigos complejos en menor tiempo, puesto que, como ya dije antes, Julia es lenguaje compilado y Python es interpretado.

Velocidad.

Julia puede superar la velocidad de 1 petaFLOP por segundo (1.000.000.000.000.000 FLOPS) en máximo rendimiento. Puede superar o igualar a la de C.
Python también es rápido pero no llega a la velocidad de Julia.

Bibliotecas.

Python es el ganador indiscutible.
Como ya comenté arriba, Julia tan solo tiene casi 10 años, sin embargo Python ya tiene casi 31. Pese a ello, Julia puede usar bibliotecas externas y estas están aumentando.

Debido tanto a la popularidad como a la antigüedad que Python tiene frente a Julia, este cuenta con muchísimas más bibliotecas y de mayor diversidad, y también es compatible con bibliotecas de terceros.

Comunidad y soporte.

Python cuenta con una comunidad de programación en todo el mundo muchísimo más amplia que la de Julia, y por ende, un mayor soporte a herramientas, sistemas e interfaces.

No hay casi problemas de Python de los que no se pueda obtener ayuda, ya que cualquier nueva duda o problema que tenga un desarrollador, suele ser siempre resuelto gracias a esa comunidad tan extensa.

Julia aún es joven, está menos extendido y su comunidad es menor, pero se encuentra en etapa de desarrollo, así que con el tiempo será cada vez mejor.

Conversión de código, idexación de matrices, escritura y paralelismo.

El código de Julia es más fácilmente convertible a otros lenguajes que el código de Python.

La idexación de matrices de Python se basa en 0 (el primer elemento de un objeto se encuentra en la posición 0.
La idexación de matrices de Julia se basa en 1 (el primer elemento de un objeto se encuentra en la posición 1, igual que en los lenguajes R o Matlab).

Python se escribe dinámicamente, esto es útil para crear variables. Las variables de Julia son estáticas y dinámicas. (Explicación variables dinámicas y estáticas).

Python puede ejecutar operaciones paralelas pero requiere otros procesos. Julia tiene una mejor y más estable paralelización.

Conclusión.

En la actualidad, Python es un lenguaje más maduro y más completo que Julia, pero Julia poco a poco está creciendo cada vez más, haciéndose con el paso del tiempo más conocido y contando con una comunidad día tras día cada vez mayor, así como sus bibliotecas.
Cuando pasen los años y Julia gane madurez, puede que este lenguaje sea tan utilizado como Python e incluso llegue a ser más completo.
Ambos se utilizan en inteligencia artificial, realidad virtual, aprendizaje automático.
En mi opinión seguiría trabajando con Python para programar, pero me parece una buena idea comenzar a estudiar o aprender a utilizar el lenguaje de Julia, ya que en un futuro podría ser muy útil.

Bibliografía.

¿Conoces el lenguaje de programación Julia? – ANALYTICS LANE

Comparación entre los Lenguajes Julia y Python ¿Qué Lenguaje de Programación es Mejor? – LovTechnology

Página web oficial de Julia

Sitio web oficial de Julia

Descargar Julia – Sitio web oficial

Documentación de Julia – Sitio web oficial

Ejemplos de código Julia – Sitio web oficial