Julia, Python, y Machine Learning, ¿quién da más?


Con sus más de 30 años de solera, Python sigue siendo uno de los grandes lenguajes de programación de la historia y sigue en alza. Utilizado en gran medida por los Data Scientist y muy apreciado por su uso aplicado a Machine Learning, parece que su reinado se ve amenazado por un nuevo competidor que está ganando posiciones y adeptos: Julia.

Jeff Bezanson, Alan EdelmanStefan Karpinski, y Viral B. Shah son los padres de este lenguaje nacido en 2009 (de la mano del MIT) y que fue lanzado, públicamente, en 2012. Desarrollado para ser una alternativa a los lenguajes de programación Python y R, Julia es un lenguaje ideal para el análisis de datos, sean complejos o no (de ahí que se utilice en muchos proyectos de big data). Y, si lo queremos aterrizar un poco más, podemos ver que Julia también se aplica a la medicina de precisión, coches autónomos, impresoras 3D, realidad aumentada, genómica, machine learning y gestión de riesgos.

Aunque Julia nació (para el gran público) en 2012, su gran despegue se ha producido en 2018, donde se ha posicionado como uno de los lenguajes de programación de más rápido crecimiento (a fecha de hoy, ya ocupa el puesto 40en el ranking de TIOBE, a gran distancia de Python, que se mantiene en el tercer puesto). 

Además, si ya sabes CPythonR, tienes mucho ganado porque, ya que el objetivo de sus creadores fue el de combinar lo mejor de otros lenguajes, es decir, conseguir un “todo en uno”, lo que se traduce en: la velocidad de C, la usabilidad de Python, el dinamismo de Ruby, la destreza matemática de MatLab, y las estadísticas de R. 

¿Qué es lo que más nos gusta de Julia?Para empezar, es un lenguaje compilado y no interpretado, por eso es tan rápido como puede ser C ; su sintaxis es directa, bastante similar a la de Python y, sobre todo, fácilmente entendible por los menos expertos. Admite la metaprogramación, y puede acceder a bibliotecas de otros lenguajes como F, Fortran o Python. 

Pero, ¿qué es lo que le hace ser tan especial? Los profesores Ben Lauwens y Allen Downey lo tienen claro: “Julia es único porque resuelve el llamado “problema de dos lenguajes”. No se necesita ningún otro lenguaje de programación para escribir código de alto rendimiento. Esto no significa que suceda automáticamente, sino que es responsabilidad del desarrollador el optimizar el código que forma un cuello de botella, pero esto se puede hacer en la propia Julia”.

Además, Julia viene con Flux, un framework/librería (depende de autores, para unos es framework y para otros, librería) para Machine Learning (ML) e Inteligencia Artificial. Flux proporciona una interfaz altamente intuitiva. A pesar de lo fácil que es usarlo, Flux es uno de los frameworks más flexibles que existen, ya que se puede integrar fácilmente con otras librerías de Julia, o incluso trabajar con él en varios kernels a la vez, tal y como comentan desde Julia Computing, la compañía creada por los 4 creadores de este lenguaje (y otros dos socios más), donde también aseguran que Julia también cuenta con uno de los mejores soportes para otros frameworks de Machine Learning, como son TensorFlow y MXNet. 

¿Será Julia una burbuja temporal que se desinflará dentro de poco? Eso está aún por saber… sí es cierto que cuenta con muchos puntos a su favor pero, ¿serán suficientes como para desbancar a Python, un rey que lleva muchos años en su trono? Sólo el tiempo nos lo dirá…

Post a Comment

* requerido

Comment Area

  1. Juan Pablo8 mayo, 2019

    Hola, saludos desde Chile.

    Bueno, hace pocos meses me topé con Julia Lang. Interesante, tanto es así, que apuesto por el desafío de desarrollar varias soluciones de ML usando Julia, sólo espero que las que librerías estén lo suficientemente maduras para hacer el contrapeso a Python y no morir en el intento. Por ahora, la cosa inicia bien, con falta de info de solución de Issues y ejemplos en castellano… Pero me está gustando, e incluso el CLI es muy intuitivo y proactivo… y la integración con Jupyter es bien fácil….

    Salu2