¿Me conviene utilizar Python en Data Science? Vamos a recorrer las ventajas y desventajas que hoy tiene Python como lenguaje de programación.
Python en Data Science, principales características
Vamos a hablar un poco sobre la velocidad de ejecución. Como impacta el hecho cada vez que asignamos una variable de poder cambiar el tipo a la variable. Observaremos su sensibilidad a la indentación. Su compatibilidad hacia atrás, si teníamos algo desarrollado en versiones viejas de Python, sigue andando en versiones más nuevas. ¿Qué pasa si las librerías cambian de versión? Evaluaremos su curva de aprendizaje y lo compararemos con una herramienta que están naciendo y se presenta como alternativa en Data Science, Julia.
Velocidad de ejecución de Python
Hubo montones de lenguajes, encontramos como 700 lenguajes de programación distinto. De esos hay unos 250 de los que sigue habiendo grupo de usuarios mas o menos importante. Lo otro que sabemos que una computadora rápida es cara. La velocidad desde el hardware se puede conseguir pero se paga. Consecuentemente nos va a interesar muchísimo que el software acompañe. Realizar la misma tarea en distintos lenguajes de programación puede tardar muy distinto.
Cada vez que alguien construye y diseña un lenguaje de programación lo hace para conseguir algo. Ese algo puede incluir la velocidad de ejecución o puede no incluirla. Entonces puede hacerse el lenguaje para implementar un modelo de objetos bien puro, hacer un lenguaje para que la curva de aprendizaje sea muy suave, uno puede hacer un lenguaje que sea tan difícil que solo los excelentes lo puedan usar, y entonces termina saliendo código muy bueno, no tanto por el lenguaje sino por el a pesar de él.
Vamos a rescatar dos diferencias importantes:
- Lenguaje complicado vs interpretado.
- Tipos estáticos vs tipos dinámicos
Identación de Python
Python tiende a obligarnos a que la indentación sea correcta. Tenemos errores específicos cuando nuestro código no respeta la indentación. Lo primero que nos puede pasar es que se nos pueden producir errores por haber mezclado tabuladores con espacios en blanco que sean difíciles de encontrar. No se ve la diferencia según el editor. Así como asegurarse de que el código legible es maravilloso tener errores difícil de encontrar es un problema.
Compatibilidad hacia atrás con Python
Aca tenemos una piedrita en el zapato. La gente que hizo cosas en Python 2, sufrió cuando salió Python 3. Muchas cosas dejaron de andar. Cosas simples de Python en Data Science al cambiar las librerías no ha dejado de andar código. La comunidad de Python tomo una aproximación de favorecer la velocidad de cambio en contra de la estabilidad de lo construido. A mi personalmente eso no me gusta, lo que andaba debería seguir andando.
Curva de Aprendizaje
La curva de aprendizaje de Python es muy suave. En otros lenguajes como C++ hay que aprender mucho para poder hacer poco. Aquí una aprendiendo un poco ya puede hacer bastante. Eso permite que vengan programadores nuevos y rápidamente ya puedan estar produciendo. Ahora bien están produciendo sin dejar de ser nuevos, consecuentemente es muy fácil que los primeros códigos que produzcan no sean de alta calidad y entonces refuercen el problema de la lentitud del lenguaje con código ineficiente.
Alternativas a Python en Data Science
Una alternativa es Julia. Tiene cosas muy interesantes, es software libre. Con lo cual es gratis y de código abierto. Es compilado ahí ya se diferencia con Python. Mantiene la asignación dinámica y esta ya diseñado para poder hacer programación en paralelo y distribuida. Tenemos menos librerias que nos traigan problemas resueltos lo cual puede ser espantoso. Menos soporte de la comunidad. La comunidad de Python es enorme y además cuenta con herramientas de soporte.