Curso
Los campos de la ciencia de datos y el machine learning han hecho posible que las máquinas aprendan de la experiencia y obtengan conclusiones sorprendentes sobre cómo funcionan las cosas y las personas. Ahora bien, para aprovechar todo su potencial se necesita un nivel moderado de capacidad técnica. Se han creado muchas herramientas para simplificar los procesos al trabajar en proyectos de ciencia de datos y machine learning. Por ejemplo, echa un vistazo a los lenguajes de programación más usados por data scientists en 2022.
Al principio, las conversaciones sobre qué lenguaje deberían aprender quienes empiezan en ciencia de datos y machine learning estaban dominadas por Python vs. R (puedes saber más sobre las diferencias entre Python y R para Data Science en otro artículo). Ahora la cosa está cambiando: no hay duda de que Python ha sido uno de los lenguajes más populares de los últimos tiempos. Según el Índice TIOBE de noviembre de 2022, Python encabeza los ránkings de popularidad, pero ha llegado una nueva herramienta llamada Julia.
A medida que Julia gana tracción, muchos profesionales con experiencia en ciencia de datos y machine learning se preguntan si merece la pena formarse en él, mientras que quienes empiezan se plantean preguntas como: «¿debería aprender Python o Julia?». En este artículo, presentamos las diferencias entre Python y Julia para ayudarte a simplificar la decisión y que puedas empezar a avanzar o reforzar tu carrera profesional.
¿Qué es Python?
La mayoría de personas del mundo de la tecnología han oído hablar de Python: lleva siendo popular entre desarrolladores muchos años, especialmente desde el auge de la ciencia de datos y el machine learning. El lenguaje fue concebido por Guido van Rossum y se lanzó por primera vez en 1991 como sucesor del lenguaje de programación ABC.
Python es un lenguaje de programación interpretado, orientado a objetos y de alto nivel, con semántica dinámica; es decir, sus variables son objetos dinámicos. El intérprete de Python y su amplia biblioteca estándar se distribuyen de forma gratuita y están disponibles en formato de código fuente o binario.
«Sus estructuras de datos integradas de alto nivel, combinadas con tipado y enlace dinámicos, lo hacen muy atractivo para el desarrollo rápido de aplicaciones, así como para usarlo como lenguaje de scripting o “pegamento” para conectar componentes existentes.»
[Fuente: Documentación de Python]
¿Quién usa Python?
Python es un lenguaje de propósito general. Por tanto, puedes usarlo para crear software en un amplio abanico de dominios de aplicación y en múltiples configuraciones de hardware y sistemas operativos.
Algunos ejemplos de uso:
- Ciencia de datos (mira esta chuleta de Python para ciencia de datos para principiantes)
- Scripting/automatización (p. ej., seguimiento de precios de productos y cumplimentación de formularios)
- Desarrollo web
- Machine learning
- Pruebas de software
Echa un vistazo a nuestro artículo ¿Para qué se usa Python? 7 usos reales para profundizar en los casos de uso de Python.
Ventajas de Python
Varios factores explican por qué Python es tan popular. Aquí van algunos:
- Accesibilidad: la sintaxis de Python casi imita el lenguaje natural, lo que facilita que otros desarrolladores lo lean y comprendan. Como resultado, se pueden crear y mejorar proyectos más rápido, ya que el lenguaje es extremadamente sencillo.
- Versatilidad: al ser de propósito general, Python puede hacer y crear muchas cosas distintas, desde machine learning hasta scripting y automatización de tareas cotidianas.
- Open source: Python se desarrolla bajo una licencia open source aprobada por la OSI. Por tanto, es gratuito para usar y distribuir con cualquier fin, incluido el comercial. El hecho de ser gratuito y su creciente popularidad han impulsado una comunidad muy fuerte en torno al lenguaje, a la que puedes recurrir siempre que necesites ayuda.
- Bibliotecas: las bibliotecas son herramientas muy útiles que hacen a los desarrolladores más eficientes. En el momento de escribir esto, hay más de 137 000 bibliotecas de Python para crear aplicaciones en multitud de ámbitos.
Desventajas de Python
Pese a todas sus ventajas, Python también tiene detractores por motivos como los siguientes:
- Velocidad: una de las principales críticas a Python es su velocidad. Al ser un lenguaje interpretado y de tipado dinámico, es más lento que lenguajes compilados como C o Java (que también puede considerarse híbrido con parte interpretada).
- Consumo de memoria: Python es flexible con los tipos de datos, lo que provoca un mayor consumo de memoria.
- Entorno móvil: aunque destaca en el desarrollo de aplicaciones de servidor y escritorio, no es ideal para desarrollo móvil por su alto consumo de memoria y menor velocidad de procesamiento frente a otros lenguajes.
- Errores en tiempo de ejecución: al ser de tipado dinámico, los tipos se asocian a los valores y no a las variables. Muchos usuarios critican este diseño porque puede causar problemas: por ejemplo, el valor asignado a una variable puede cambiar en cualquier momento del programa, con lo que el tipo de esa variable podría cambiar y provocar errores en tiempo de ejecución.
¿Qué es Julia?
A comienzos de 2022, en el año de su décimo aniversario, Julia Computing anunció que el lenguaje había sido descargado casi 35 millones de veces, casi cinco veces el total acumulado de tres años antes. Este crecimiento ha puesto a Julia en el radar de muchos desarrolladores.
Nota: desarrolla tus habilidades de programación en Julia con el curso Introduction to Julia.
Los creadores de Julia —Jeff Bezanson, Alan Edelman, Stefan Karpinski y Viral B. Shah— tenían un objetivo claro: mejorar las carencias de otros lenguajes de programación e incorporar a la vez sus cualidades distintivas y deseables. En una entrada titulada Why we Created Julia, los autores afirman sin tapujos: «Somos ambiciosos: queremos más», y enumeran una serie de características deseables —y exigentes— que querían para Julia.
«Queremos un lenguaje open source, 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. Queremos algo tan útil para programación general como Python, tan sencillo para estadísticas como R, tan natural para procesar cadenas como Perl, tan potente para álgebra lineal como Matlab, tan bueno uniendo programas como el shell. Algo facilísimo de aprender que a la vez encante a los hackers más exigentes. Lo queremos interactivo y lo queremos compilado. (¿Hemos dicho ya que debe ser tan rápido como C?).»
[Fuente: Why we Created Julia]
Cuando lanzaron Julia 1.0.0 en 2018, habían cumplido el 90% de las promesas hechas seis años antes.
Pero ¿qué es exactamente Julia?
Piensa en él como un lenguaje de programación de alto nivel, dinámico, rápido y fácil de usar, con funciones muy adecuadas para el análisis numérico y la computación científica. Puedes saber más sobre el auge de Julia en otro artículo.
¿Quién usa Julia?
Uno de los objetivos principales de Julia era permitir escribir código conciso, de alto nivel, genérico y abstracto —similar a las fórmulas matemáticas— y, al mismo tiempo, generar rápido el código máquina de bajo nivel propio de lenguajes estáticos.
Aunque se diseñó pensando especialmente en usuarios técnicos y científicos, Julia también se considera un lenguaje de propósito general, es decir, aplicable a muchos dominios de aplicación y sin rasgos excesivamente especializados.
Estas características hacen que Julia resulte muy atractiva para desarrolladores en ámbitos como:
- Cómputo numérico
- Machine learning
- Estadística
- Desarrollo web
Consulta nuestro artículo ¿Para qué se usa Julia? 10 aplicaciones de Julia para profundizar en sus casos de uso.
Ventajas de Julia
- Velocidad: uno de sus grandes atractivos es, sin duda, la velocidad. Julia es rápida. Usa compilación just-in-time (JIT), lo que reduce que el código se interprete varias veces y, por tanto, el overhead. Además, supera de forma consistente a lenguajes de datos como Python, R y Matlab en pruebas de benchmark, básicamente porque es un lenguaje compilado y no interpretado.
- Accesibilidad: Julia tiene una sintaxis clara —más limpia que C++—, sencilla de usar y fácil de aprender. Es de tipado dinámico, generalmente más conciso que los lenguajes de tipado estático.
- Con un propósito claro: el trabajo diario de sus creadores incluía computación científica, machine learning, minería de datos, álgebra lineal a gran escala y cómputo distribuido y en paralelo. Por eso Julia se diseñó pensando en la computación científica y cuenta con un sólido conjunto de paquetes que habilitan más casos de uso en ciencia, matemáticas, estadística y machine learning.
Desventajas de Julia
A pesar de la buena acogida, el lenguaje está lejos de ser perfecto y aún presenta limitaciones importantes.
- Antigüedad: Julia es un lenguaje nuevo. Por ello, no es tan popular ni está tan respaldado como otros como Python o R.
- El problema del “time to first plot”: todavía hay cuestiones con el compilador JIT de Julia que provocan una latencia notable al ejecutar por primera vez código de algunos paquetes. Los autores señalan: «Por cómo funciona Julia internamente, es un problema difícil de resolver, pero en los últimos años se ha avanzado mucho para reducir este tiempo de compilación». [Fuente: Documentación de Julia].
- Ecosistema pequeño: como cabría esperar de una tecnología nueva, la comunidad y el ecosistema de Julia aún están en fases tempranas. Aunque tiene soluciones y paquetes propios muy interesantes, quedan empequeñecidos frente a los ecosistemas de Python y R, que llevan más de 20 años evolucionando.
Python vs. Julia: diferencias clave
Python cuenta con una comunidad amplia y consolidada que contribuye al lenguaje y apoya a otros desarrolladores. Además, es muy versátil y tiene multitud de casos de uso, haciendo honor a su condición de lenguaje de propósito general. En cambio, aunque Julia también se considera de propósito general, es bastante menos versátil que Python; ahora bien, es una gran herramienta para programación científica.
Uno de los factores que hacen a Julia tan atractiva es su velocidad: supera a Python en rapidez y rendimiento. Esto se debe a que Julia es un lenguaje compilado desde su base, mientras que Python es interpretado y cada línea debe reprocesarse, lo que ralentiza la ejecución.
|
Características |
Python |
Julia |
|
Año de lanzamiento |
1991 |
2012 |
|
Tipo |
Interpretado |
Compilado |
|
Bibliotecas |
137000+ |
7400+ |
|
Ránking en Índice TIOBE (dic 2022) |
1.º |
24.º |
|
Comunidad |
Python tiene una comunidad grande y muy desarrollada |
La comunidad de Julia es más nueva y mucho más pequeña que la de Python |
|
Indexación de arrays |
Empieza en 0 |
Empieza en 1 |
|
Velocidad |
Más lenta en algunas áreas |
Más rápida en algunas áreas |
|
Dificultad |
Fácil |
De fácil a media |
Julia vs Python: ¿con cuál quedarte?
Todavía es pronto para afirmar que Julia desbancará a Python en dominios como la ciencia de datos o el machine learning. Aunque ambos lenguajes presumen de una sintaxis fácil de leer y aprender, cada uno tiene sus ventajas. Por ejemplo, Python cuenta con una comunidad consolidada, una gran variedad de frameworks y bibliotecas y es extremadamente versátil. Julia, por su parte, es una herramienta excelente para la computación científica que gana popularidad por su velocidad.
Para profesionales con experiencia, aprender un nuevo lenguaje puede ser una inversión interesante si los beneficios son significativos, ya que adquirir la competencia lleva tiempo y puede afectar a la productividad. Quienes empiezan deberían revisar las ofertas de empleo para ver qué habilidades se demandan y prepararse en consecuencia.
Otra forma de decidir es pensar en el tipo de programas que quieres crear. Para programas que no sean muy grandes, Python puede dar resultados más rápido que Julia al ser interpretado en lugar de compilado. Sin embargo, si planeas desarrollar programas con cálculos muy intensivos en CPU, probablemente te convenga más Julia.