Cuando trabajas en proyectos de ciencia de datos, tienes muchas opciones en cuanto a los lenguajes de programación más usados. Además de pesos pesados como Python, R y SQL, también hay otros lenguajes generales y especializados como MATLAB, C/C++ y Go. ¿Y qué pasa con Julia, una recién llegada al panorama? Aquí vemos para qué se usa Julia y por qué deberías plantearte aprenderla.
¿Qué es Julia?
Julia es un lenguaje de programación relativamente nuevo y muy interesante, diseñado para ser ideal en computación científica, aprendizaje automático y minería de datos. Lanzado en 2012, Julia se ha convertido rápidamente en una favorita entre profesionales de datos con experiencia.
Con la velocidad de C, la capacidad de programación general de Python y la potencia estadística de R, Julia es un lenguaje potente y, en comparación con otros, razonablemente sencillo de aprender.
Hoy, Julia se ha descargado más de 40 millones de veces y cuenta con una comunidad que ha registrado más de 8.000 paquetes para el lenguaje. En octubre de 2022, Julia ocupa los puestos 25 y 27 en los índices PYPL y TIOBE, respectivamente. Es decir, aunque aún no es tan popular como Python, R o MATLAB, Julia va al alza y tiene una popularidad similar a SAS o Scala.
Ventajas y desventajas de Julia
Es fácil entusiasmarse con un lenguaje nuevo, sobre todo cuando aspira a ser tan revolucionario. Sin embargo, como con todos los lenguajes, Julia tiene pros y contras. A continuación, resumimos algunos. Los exploramos con más detalle en nuestro artículo sobre el auge de Julia:
Ventajas de Julia
- Es rápida. Oirás mucho hablar de la velocidad de Julia. En términos de microbenchmarks (mediciones del rendimiento en patrones de código comunes), rinde muy bien, aunque estos resultados no incluyen el tiempo de compilación. Un análisis en profundidad encontró que el paquete CSV.jl de Julia para manejar datos de texto delimitado era entre 1,5 y 5 veces más rápido que pandas de Python al leer datos CSV.
- Tiene una sintaxis clara. La sintaxis de Julia se inspira en lenguajes de programación de datos existentes. Piensa en algo parecido a MATLAB pero con buenas ideas tomadas de Python, R y Ruby.
- Es versátil. Como veremos, Julia tiene muchos usos. Varias de sus características, como el multiple dispatch, la hacen aplicable en muchos sectores y en todo tipo de proyectos.
Desventajas de Julia
- El lenguaje es joven. Como hemos comentado, Julia es relativamente nueva. Por eso no está tan extendida ni tan bien soportada como lenguajes como Python y R.
- Su ecosistema es pequeño (pero crece). Debido a su reciente aparición, la comunidad y el ecosistema aún son relativamente reducidos. Están surgiendo muchas soluciones y paquetes interesantes, pero comparado con gigantes como Python, aún le queda camino.
- Tiene algunas cuestiones de compilación. Varias fuentes han señalado cierta latencia al compilar código con el compilador just-in-time (JIT) de Julia. JIT compila todo el código a código máquina antes de ejecutarlo. Este retraso puede resultar algo frustrante cuando quieres hacer scripts rápidos.
Usos de Julia
Como lenguaje emergente, Julia tiene pros y contras. Pero, ¿para qué se usa Julia?
Uno de los objetivos principales al crear Julia fue disponer de un lenguaje que permitiera escribir código claro, de alto nivel, genérico y abstracto, parecido a fórmulas matemáticas, y que aun así pudiera generar código máquina rápido y de bajo nivel, como en lenguajes estáticos. Mira el lenguaje en acción con nuestro tutorial de Julia.
A continuación, destacamos varias áreas en las que este lenguaje destaca.
1. Cálculo numérico
Existe una variedad de paquetes que permiten a quienes programan en Julia realizar tareas de cálculo numérico. Por ejemplo, para álgebra lineal está el módulo LinearAlgebra.jl; para búsqueda de raíces, NonlinearSolve; y para diferenciación automática, ForwardDiff o Enzyme.
2. Aprendizaje automático
Julia se creó pensando en el aprendizaje automático, en particular el aprendizaje automático científico, que se centra en los retos e insights de conjuntos de datos científicos. Como lenguaje compilado y diseñado para el paralelismo, Julia puede ofrecer una velocidad enorme en determinadas tareas de machine learning. Por ejemplo, puede mejorar notablemente los tiempos de entrenamiento y reducir costes al desplegar modelos en producción.
Con una comunidad en plena expansión y muchos paquetes nuevos para ML, muchos de ellos integrados en el framework MLJ, Julia puede ser una gran opción en este campo. Un ejemplo destacado procede de una empresa australiana que mantiene líneas eléctricas: al crear un mapa 3D y usar machine learning en Julia, pudieron identificar fallos y posibles fallos 100 veces más rápido que antes.
3. Estadística
Otra de las funciones principales de Julia es la estadística y el análisis estadístico. Por ejemplo, el metapaquete StatsKit reúne paquetes de Julia para funciones estadísticas básicas, además de herramientas para trabajar con datos tabulares en DataFrames, distribuciones de probabilidad, análisis estadístico multivariante, pruebas de hipótesis y más.
4. Programación general
Como lenguaje de propósito general, Julia permite crear una amplia variedad de software y funcionalidades. Por ejemplo, el paquete Blink te permite crear aplicaciones GUI con Electron, GameZero introduce el desarrollo de videojuegos para principiantes y Miletus permite construir contratos financieros en Julia.
Ya hemos mencionado que Julia se diseñó para que escribir programas fuera relativamente fácil y rápido, gracias a su sintaxis directa. Además, ejecuta código y realiza cálculos con mucha rapidez.
5. Desarrollo web
Hay varias herramientas excelentes para desarrollo web en Julia. Paquetes como Genie.jl y Dash.jl. Genie permite trabajar con datos en la web con Julia. Es un framework web full‑stack que ofrece un flujo de trabajo ágil y eficiente para desarrollar aplicaciones web. Dash.jl es una interfaz de Julia para el ecosistema Dash, con la que puedes crear aplicaciones web en Julia.
Ejemplos de Julia por sectores
Ahora que ya sabemos a grandes rasgos para qué se usa Julia, veamos algunos ejemplos por sectores. En la web de Julia se listan muchas de sus aplicaciones, y aquí destacamos algunas de las más relevantes:
6. Modelización y desarrollo farmacéutico
Julia se usa ampliamente en el ámbito médico. Las personas investigadoras la emplean para identificar y probar nuevos fármacos, optimizar tratamientos y para diagnóstico y terapias. Paquetes como BioJulia (infraestructura de bioinformática) y Pumas (para modelización farmacométrica, la ciencia de cualificar la información de ensayos clínicos) son habituales. Por ejemplo, la farmacéutica Pfizer utilizó Julia para acelerar simulaciones de nuevas terapias.
7. Supercomputación en paralelo
Uno de los mejores ejemplos de la velocidad de Julia está en astronomía, donde se usa a menudo el conjunto AstroLib.jl de rutinas astronómicas y astrofísicas.
Un ejemplo del uso de Julia en astronomía es el proyecto Celeste, en el que un equipo de astrónomos, físicos, ingenieros informáticos y estadísticos desarrolló un nuevo método de computación en paralelo con Julia. Tras tres años de desarrollo, usaron este método para producir el catálogo más preciso de 188 millones de objetos astronómicos en solo 14,6 minutos, una mejora de rendimiento superior a 1.000x.
8. Modelización y gestión financiera
El rendimiento y la flexibilidad de Julia la convierten en una herramienta potente en finanzas. Se usa para desarrollar modelos y proyecciones que ayudan en la toma de decisiones financieras. Uno de los paquetes populares es JuliaFin, especializado en gestión de activos, gestión de riesgos, trading algorítmico, backtesting y otras áreas de finanzas computacionales, incluida la modelización de contratos financieros.
9. Robótica
Roboticistas del MIT utilizan Julia para programar robots. Hay ejemplos de entrenamiento para caminar, subir escaleras y moverse por terrenos difíciles y peligrosos. De nuevo, se señala la flexibilidad y el carácter genérico del código en Julia como claves en este sector, ya que permite escribir funciones claras que operan sobre diversos tipos de datos.
Una de las colecciones de paquetes populares en este ámbito es JuliaRobotics, que incluye paquetes como MotionCaptureJointCalibration.jl, que proporciona calibración cinemática para robots a partir de datos de captura de movimiento.
10. Seguridad de redes
Especialistas de redes en Cisco usaron el paquete Flux.jl de Julia para mejorar la seguridad de red y para aprendizaje automático. La posibilidad de escribir código eficiente en un único lenguaje se cita como uno de los principales beneficios de usar Julia en este campo.
Cómo empezar con Julia
Está claro que los usos de Julia son numerosos. Aunque está lejos de sustituir de inmediato a Python o R en ciencia de datos, dado lo asentados que están, sí tiene potencial para ampliar tu repertorio. Si te interesa aprender Julia, empieza con nuestro curso Introduction to Julia, que te llevará por las funciones clave de este lenguaje en rápido desarrollo. También puedes consultar nuestra chuleta de Julia, un recurso práctico con lo básico de Julia.



