En el mundo, siempre cambiante, de la ciencia de datos, nada es para siempre. Cada vez que aparecen nuevas herramientas y software, pueden poner en jaque el statu quo tecnológico. Esta dinámica se nota especialmente en el panorama de los lenguajes de programación. Hay un buen número de lenguajes ideales para ciencia de datos. Aunque hoy el espacio de datos está dominado por unos pocos lenguajes muy populares, otros nuevos, supuestamente más potentes, están ganando tracción. Uno de los ejemplos más prometedores es Julia.
Lanzado por primera vez en 2012, Julia puede considerarse la estrella emergente de la ciencia de datos. A pesar de su relativa juventud, ya ha sorprendido al mundo del cálculo numérico por su alto rendimiento y una velocidad de cómputo difícil de batir. Con los años, Julia ha madurado y hoy se la suele etiquetar como uno de los “lenguajes del futuro” para ciencia de datos e inteligencia artificial.
Hay muchos motivos de peso para empezar a aprender Julia. Ahora bien, el camino de transición puede variar según los lenguajes de programación con los que ya estés familiarizado. Aunque la mayoría de artículos y cursos se centran en cómo pasar de MATLAB a cualquiera de los dos lenguajes más populares para ciencia de datos, Python y R, también es importante ofrecer recursos a quienes, viniendo de otros lenguajes, quieren pasarse a Julia.
El objetivo de este artículo es presentar Julia a programadores de MATLAB. Veremos diferencias y similitudes entre ambos lenguajes y daremos algunos consejos para migrar de MATLAB a Julia para análisis y visualización de datos. ¡Vamos allá!
¿Para qué se usa MATLAB?
MATLAB es un lenguaje de programación diseñado específicamente para el cálculo numérico. Desde su lanzamiento en 1984, MATLAB (abreviatura de "MATrix LABoratory") se ha adoptado ampliamente en el mundo académico y la investigación científica. Aunque es relativamente veterano, sigue siendo un lenguaje extremadamente popular. En octubre de 2022 ocupaba el puesto 14 tanto en el Índice PYPL como en el Índice TIOBE.
El lenguaje MATLAB destaca en tareas computacionales de alto nivel, como operaciones matemáticas y estadísticas avanzadas. También incluye capacidades de representación gráfica e implementación de algoritmos, lo que lo convierte en un candidato perfecto para ciencia de datos.
Sin embargo, MATLAB tiene una salvedad importante: es una herramienta propietaria. Esto significa que, salvo que tu institución te dé acceso, como suele ocurrir en entornos académicos, puede que tengas que pagar una suma considerable por una licencia. Además, al no tener acceso a su código fuente, puede resultar difícil entender cómo funcionan algunas de sus capacidades.
Estos factores pueden hacer que MATLAB resulte menos atractivo frente a otros lenguajes de programación que puedes usar gratis.
¿Para qué se usa Julia?
Detrás de toda innovación está el deseo de mejorar o superar a las tecnologías dominantes de su época. Esa fue la fuerza motriz de Julia, que se inspira en algunos de los lenguajes de programación más potentes. Como explicaron Jeff Bezanson, Stefan Karpinski, Alan Edelman y Viral B. Shah, sus creadores, en una entrada sobre por qué crearon Julia:
“Queremos un lenguaje de código abierto, con una licencia permisiva. Queremos la velocidad de C con el dinamismo de Ruby. Queremos un lenguaje homoicónico, con macros de verdad como Lisp, pero con una notación matemática obvia y familiar como Matlab. Lo queremos tan útil para programación general como Python, tan sencillo para estadística como R, tan natural para procesar cadenas como Perl, tan potente para álgebra lineal como Matlab, y tan bueno para orquestar programas como el shell. Algo sencillísimo de aprender, pero que mantenga contentos a los hackers más exigentes. Lo queremos interactivo y lo queremos compilado.”
Gracias a sus características únicas, fruto de este proceso de selección de lo mejor de cada lenguaje, Julia está ganando impulso rápidamente.
Desde su primera versión estable en 2021, Julia se ha descargado más de 40 millones de veces, y la comunidad ha registrado más de 8.000 paquetes para su uso comunitario. Incluyen bibliotecas matemáticas, herramientas de manipulación de datos y paquetes para computación de propósito general.
En cuanto a su popularidad frente a otros lenguajes, Julia ocupa las posiciones 25 y 27 en los índices PYPL y TIOBE de octubre de 2022, respectivamente.
Julia es un lenguaje de propósito general, lo que significa que puede usarse en muchas tareas de desarrollo, como desarrollo web o de videojuegos, pero es especialmente adecuado para machine learning y computación estadística. De hecho, a los entusiastas de Julia les gusta presentarlo como el heredero de Python y R en ciencia de datos.
Dicho esto, a Julia aún le queda camino para convertirse en el lenguaje por defecto de la ciencia de datos. Quienes empiezan probablemente querrán aprender antes Python y R. Sin embargo, como complemento a tus habilidades actuales, Julia puede ser una elección excelente. Puedes saber más sobre para qué se usa Julia en otra entrada del blog.
Qué deben saber los usuarios de MATLAB sobre Julia
Hay razones de peso para pasarse a Julia. En esta sección, analizaremos de cerca las características que lo convierten en un lenguaje tan potente y en un candidato ideal para que los usuarios de MATLAB den el salto.
Velocidad: MATLAB vs. Julia
Julia se diseñó pensando en usuarios técnicos y científicos. Para resolver problemas de negocio y apoyar la toma de decisiones, los profesionales de datos suelen trabajar con grandes conjuntos de datos y técnicas complejas, incluidos algoritmos de machine learning y redes neuronales artificiales.
Estas actividades no solo requieren muchos recursos de cómputo, también piden un lenguaje capaz de ejecutar código muy rápido, para que los profesionales de datos no tengan que esperar demasiado para obtener resultados.
Sin embargo, elegir el lenguaje adecuado puede ser difícil. La mayoría se enfrenta a la disyuntiva entre rendimiento y legibilidad del código.
Tradicionalmente, los lenguajes con alto rendimiento han sido más complejos de usar, y viceversa. Por ejemplo, los lenguajes “de alto nivel” populares, como MATLAB y Python, sacrifican velocidad a cambio de flexibilidad y gran legibilidad, mientras que lenguajes como C, C++ y Fortran son muy rápidos, pero tienen una sintaxis mucho más compleja.
Esto significa que los desarrolladores necesitan más tiempo y, a menudo, más experiencia para programar en este tipo de lenguajes.
Aquí es donde entra Julia. Está diseñado para ser relativamente fácil y rápido a la hora de escribir programas, pero también para ejecutar código y hacer cálculos a gran velocidad. Con un rendimiento cercano al de C, Julia ya es uno de los lenguajes más rápidos de la historia. Al comparar el rendimiento de ambos, MATLAB es significativamente más lento que Julia.
Para ilustrar el rendimiento de Julia, en la siguiente tabla encontrarás un benchmark de cómo se comportan Julia y MATLAB al ejecutar un bucle for para crear una matriz a partir de un vector dado. Puedes ver más detalles sobre la prueba en este artículo.
|
N |
Julia (un solo hilo) |
Julia (multihilo) |
MATLAB (un solo hilo) |
MATLAB (multihilo) |
|
1000 |
0.035s |
0.007s |
0.067s |
0.0367s |
|
2000 |
0.126s |
0.031s |
0.255s |
0.034s |
|
3000 |
0.289s |
0.062s |
0.543s |
0.073s |
|
4000 |
0.554s |
0.116s |
0.965s |
0.123s |
|
5000 |
0.831s |
0.215s |
1.510s |
0.189s |
|
6000 |
1.108s |
0.274s |
2.161s |
0.268s |
|
7000 |
1.489s |
0.304s |
2.936s |
0.364s |
|
8000 |
1.948s |
0.402s |
3.830s |
0.478s |
|
9000 |
2.460s |
0.505s |
4.847s |
0.610s |
|
10000 |
3.039s |
0.616s |
5.977s |
0.753s |
Sintaxis: MATLAB vs. Julia
Como comentábamos, Julia ha zanjado el debate entre rendimiento y legibilidad. Su sintaxis se lee casi como inglés y es de tipado dinámico, lo que la hace tan sencilla de aprender y escribir como MATLAB o Python, pero al ser un lenguaje compilado, consigue ser tan rápido como lenguajes de tipado estático como C o Fortran.
Y hay más. Si estás pensando en pasar de MATLAB a Julia, aquí va una buena noticia: ambos lenguajes son bastante similares desde el punto de vista sintáctico. No es de extrañar: al fin y al cabo, MATLAB fue una de las principales fuentes de inspiración para los creadores de Julia.
Estos son algunos ejemplos de operaciones básicas en MATLAB y Julia:
Bucles for
% for loop in MATLAB
for i = 1:N
% do something
end
# for loop in Julia
for i in 1:N
# do something
end
Condicionales if / else
% if/else in MATLAB
if i <= N
% do something
else
% do something else
end
# if/else in Julia
if i <= N
# do something
else
# do something else
end
Funciones UDF
% function in MATLAB
function out = f(x)
out = x^2
end
# function in Julia
function f(x)
return x^2
end
Pese a las similitudes, conviene recordar que Julia no es un clon de MATLAB. Existen diferencias sintácticas y funcionales importantes. En la siguiente sección, cubrimos algunas similitudes y diferencias entre MATLAB y Julia.
Julia vs. MATLAB: comparación
A continuación encontrarás una tabla con diferencias entre Julia y MATLAB:
|
Julia |
MATLAB |
|
|
Propósito |
Lenguaje centrado en computación científica, análisis de datos e inteligencia artificial |
Lenguaje y plataforma científica para análisis de datos y cálculo matemático |
|
Tipo de lenguaje |
Lenguaje de alto nivel, de propósito general, compilado y dinámico |
Lenguaje de alto nivel, específico de dominio, interpretado y dinámico |
|
¿Código abierto? |
Sí |
No |
|
Fecha de lanzamiento |
2012 |
1984 |
|
Escrito en |
C, C++ y la propia Julia |
C, C++, Java y el propio MATLAB |
|
Quién lo usa |
Principalmente científicos de datos y otros profesionales de datos |
Ingenieros, científicos, académicos y profesionales de datos de todo el mundo |
|
Ecosistema |
Más de 8.000 paquetes registrados |
Principalmente bibliotecas integradas y personalizadas |
|
Facilidad de aprendizaje |
Julia es un lenguaje sencillo con sintaxis similar al inglés. |
MATLAB es un lenguaje fácil de aprender. |
|
Extensión de archivo |
Los archivos se guardan con la extensión ‘datacamp.jl’. |
Los archivos se guardan con la extensión ‘datacamp.m’. |
|
Ventajas |
|
|
|
Desventajas |
|
|
|
Tendencias |
Puestos 25 y 27 en los índices PYPL y TIOBE, respectivamente (octubre de 2022) |
Puesto 14 en los índices PYPL y TIOBE (octubre de 2022) |
Pasar de MATLAB a Julia
¿Listo para empezar? Aquí tienes algunos pasos que te ayudarán a pasar de MATLAB a Julia:
Aprende los fundamentos de Julia
La mejor forma de aprender un lenguaje nuevo es programando. Hay muchos recursos para empezar con Julia, pero te recomendamos nuestro curso de introducción a Julia.
Pensado para quienes se inician en Julia y, en general, para principiantes en ciencia de datos, el curso empieza por los fundamentos del lenguaje y avanza de forma progresiva hacia aspectos más detallados. Al finalizar, te sentirás cómodo programando en Julia y dominarás lo básico: tipos y estructuras de datos, funciones y paquetes, y cómo usar DataFrames para trabajar con datos tabulares.
También puedes consultar nuestro tutorial de Julia para principiantes y nuestro práctico cheat sheet de Julia.
Usa Julia en tus proyectos de datos
Una gran manera de consolidar lo aprendido y adquirir práctica esencial con Julia es usar el lenguaje en tus proyectos de datos favoritos. Emplear Julia en tus propios proyectos te ayudará a descubrir todo su potencial y a construir un portafolio de ciencia de datos sobresaliente.
Usa Julia en tus proyectos profesionales
Cuando ya domines Julia, es hora de incorporarlo a tu día a día. Su combinación de alto rendimiento y legibilidad puede marcar la diferencia en entornos profesionales. Desde modelización farmacéutica hasta la planificación de misiones espaciales, profesionales de todo tipo de industrias ya programan hoy en Julia. Es una herramienta potente para llevar tus aplicaciones y tareas de ciencia de datos al siguiente nivel.
Busca tu próximo trabajo con Julia
Ahora es un gran momento para aprender Julia. Como afirma Ari Joury en su artículo, Julia puede ser tu billete dorado al futuro si empiezas a aprenderlo antes de que se convierta en la nueva norma en ciencia de datos. Cada vez más empresas de todo el mundo adoptan Julia para sus proyectos de datos, lo que significa que harán lo posible por atraer a los (aún) pocos programadores con experiencia en Julia. Cuando hayas desarrollado suficientemente tus habilidades, puedes empezar a buscar puestos que requieran conocimientos de Julia y MATLAB.
Descubre tu próximo movimiento profesional usando Julia con la plataforma de empleo en datos de DataCamp.
Conclusión
Julia es una de las estrellas emergentes en el ámbito de los datos. En los diez años desde su primera versión, el lenguaje ha madurado y hoy ofrece prestaciones excepcionales que pocos pueden igualar.
Aunque MATLAB sigue en plena forma, ningún lenguaje está a salvo en un panorama de ciencia de datos que evoluciona a gran velocidad. Lo que hoy es popular mañana puede quedar atrás, superado por herramientas más modernas y potentes.
En los últimos años, el principal hándicap de Julia era su juventud. Sin embargo, hoy es uno de los lenguajes más apasionantes de la industria. ¿Merece la pena aprender Julia? ¿Es posible pasar de MATLAB a Julia? La respuesta a ambas preguntas es un rotundo sí.
Preguntas frecuentes: de MATLAB a Julia
¿Qué es MATLAB?
MATLAB es un lenguaje de programación de alto nivel diseñado específicamente para el cálculo numérico.
¿Qué es Julia?
Julia es un lenguaje de programación de alto nivel y compilado. Sus características encajan muy bien con el análisis numérico y la computación científica.
¿Cuándo se lanzó Julia?
La primera versión de Julia se publicó en 2012.
¿Cuál es la principal fortaleza de Julia?
Julia es un lenguaje único porque combina alto rendimiento con gran legibilidad del código.
¿Debería pasar de MATLAB a Julia?
Hay varios motivos para hacerlo, como la velocidad de Julia, su carácter de código abierto y su ecosistema en rápida evolución. Una gran forma de empezar es nuestro curso de introducción a Julia.
