Julia vs Python: ¿Qué lenguaje es mejor para tareas de Datascience?

Python es sin duda a día de hoy el lenguaje estrella en mataría de análisis de datos, es el lenguaje más utilizado actualmente y el que tiene más impacto. Debido a esto el ecosistema de Python dispone de una gran cantidad de librerías, herramientas y aplicaciones, todas ellas rápidas y perfectamente ajustadas a su objetivo.

Julia es un lenguaje creado especialmente para computación científica, machine learning, data mining, algebra a gran escala ejecutandose en computación paralela y distribuida, a diferencia de Python, que se ejecuta de manera predeterminada en una sola instancia. Para los defensores de Julia Python puede ser útil para algunas tareas, pero terrible para otras.

Julia fue creado en 2009 por un equipo de cuatro personas con el objetivo de llegar más allá de donde podía llegar Python. Fue creado teniendo en mente las siguientes características:

  • Es un lenguaje compilado, no interpretado, por lo que se ejecutará mucho más rápido que Python llegando a velocidades similares a C.
  • Es interactivo, incluye un REPL (read-eval-print-loop) con línea de comandos para interactuar durante su ejecución.
  • Tiene una sintaxis robustas, es similar a la de Python, pero más expresiva y potente.
  • Dispone de tipos dinámicos y estáticos, puedes especificar tipos para variables y además puedes generar tipos jerarquizados.
  • Puede invocar librerías de Python (a través de PyCall), C y Fortram. Puede compartir datos también con Python.
  • Soporta meta-programación, es decir, los programas de Julia pueden generar otros programas escritos en Julia, incluso modificar su propio código.
  • Dispone de un debugger completo, ejecuta el código en un REPL local y te permite revisar la ejecución paso a paso, inspeccionar variables e incluso agregar breakpoints.

Ahora vamos a comparar Julia con Python. Esto estas son las ventajas de Julia sobre Python:

  • Es mucho más rápido que Python al ser un lenguaje compilado y no interpretado. Es verdad que hay soluciones de terceros como PyPy o Cython para compilar Python, pero no consigue llegar a la velocidad de Julia.
  • Tiene una sintaxis matemática mucho más amplia que la de Python, fue creado desde el principio como un lenguaje orientado a cálculos científicos.
  • Implementa gestión automática de la memoria, bueno, Python también, pero bueno, Julia aquí le iguala. Aunque por experiencia propia cuando puedes gestionar la memoria hilas mucho más fino -y mejor- que los gestores automáticos, aunque es más pesado programar.
  • Su ejecución en paralelo está mucho más optimizada que la de Python.

Ventajas de Python sobre Julia:

  • Los arrays de Python empiezan en 0 -como en la inmensa mayoría de los lenguajes-, los de Julia en 1. Esto provoca siempre problemas.
  • Tiene más de 30 años de vida, Julia solo tiene unos 10 a día de hoy. Python es un lenguaje mucho más maduro.
  • Tiene una comunidad mucho más grande por lo que Python dispone de miles de paquetes y librerías de desarrollo.
  • Tiene millones de usuarios y hay mucha formación disponible. Julia no tiene ese alcance todavía.
  • Python es cada vez más rápido, sobre todo gracias a la ayuda de tecnología de terceros como PyPy y Cython.

Bueno, pues saca tú tus propias conclusiones. Las mías son que voy a seguir apostando por Python a nivel profesional, es donde hay más terreno laboral y donde tengo más opciones de formación, pero en cuanto pueda haré unas pruebas con Julia, igual me enamoro del lenguaje y puedo sacarle partido.

Espero que te haya sido de utilidad ^_^.

Comentarios