Ventajas e inconvenientes de Python y R para la ciencia de datos

Ventajas e inconvenientes de Python y R para la ciencia de datos

Python y R son los dos lenguajes más usados para la ciencia de datos: minería y visualización de información compleja. R es un lenguaje potente; Python es versátil y con una curva de aprendizaje corta. Pero no todo son buenas críticas de los programadores. 

BBVAOpen4U
|
09 Ago. 2016

La ciencia de datos se ha convertido en uno de los campos de mayor desarrollo por parte de las empresas. Dentro del uso de los datos, la visualización de información compleja para extraer conclusiones y mejorar la toma de decisiones de negocio ofrece muchas oportunidades profesionales. En ese campo, los lenguajes de programación Python y R han tomado la delantera. Si tienes información estadística y quieres entenderla, estas sintaxis pueden ayudarte.

R es un lenguaje de programación de código abierto, creado en 1995 por Ross Ihaka y Robert Gentleman para mejorar las prestaciones en visualización y análisis de datos de una sintaxis previa como S. R es una evolución de S. Hoy en día muchos de los usuarios y profesionales que utilizan R proceden del mundo de la estadística o las matemáticas, aplicadas a sectores como la salud. Poco a poco otros profesionales empiezan a entender cuáles son las ventajas de R para la comprensión de información compleja y mejorar la toma de decisiones.

Python es una sintaxis que tiene su origen en 1991, año en el que fue creado por Guido Van Rossem con el objetivo de hacer un lenguaje de programación ágil y sencillo, con una curva de aprendizaje muy corta. Esto es una gran ventaja para el crecimiento en el uso de la sintaxis a nivel internacional. Desde sus comienzos está destinada a los profesionales procedentes del mundo de la estadística, pero sus características han ampliado mucho el campo de uso de Python: ahora se usa para hacer gráficos con los grandes datos. Cada vez más la empresas incorporan en sus equipos, tanto de back-end como front-end, a programadores en Python.

Este lenguaje es una sintaxis de propósito general muy intuitivo: cualquier desarrollador pueda dedicar poco tiempo a aprenderlo y ocuparse más en cómo crear productos innovadores con él, aprovechando sobre todo su gran flexibilidad. Eso lo convierte en un lenguaje divertido y versátil para los programadores

Las ventajas más interesantes de Python y R

●      Buen número de repositorios en GitHub:

GitHub es una de las principales páginas de desarrollo colaborativo del mundo. Gran parte de los programadores utilizan esta página web para reutilizar proyectos de código abierto para sus propias iniciativas. Gracias a eso es un buen termómetro para medir la comunidad que respalda cada uno de los lenguajes de programación y el músculo que mantiene viva la evolución de cada sintaxis.

En el caso de R, GitHub acumula más de 43.000 repositorios y Python, más de 91.000. Quedan por detrás de otros con más actividad: más de 230.000 repositorios de proyectos en JavaScript; 196.000 en Ruby; y 162.000 iniciativas en Java. Por detrás quedan otras sintaxis conocidas como HTML, PHP, CSS, C++ y C#.

No es la única referencia habitual utilizada para sopesar el valor que los lenguajes de programación tienen entre la comunidad de desarrolladores y entre las empresas a la hora de acometer proyectos. Con una perioricidad anual, Dice realiza una encuesta en la que evalúa algunos elementos relacionados con las sintaxis de programación, los perfiles tecnológicos, sus salarios… En el último de los estudios, ‘2015-2016 Dice Tech Salary Survey’, las sintaxis Python y, sobre todo R, ocupan un buen lugar en la tabla de ingresos por profesionales: 126.249 dólares anuales para profesionales con conocimiento en R, 109.782 dólares en Python

●      Paquetes en R y Python para ciencia de datos

Tanto R como Python cuentan con varios paquetes o plugins enfocados en la visualización de datos. En el caso de R, dos de los más usados son ggplot2, una librería que permite gráficos de barras, puntos, líneas, áreas, mapas o escalas. ggplot2 depende de otros paquetes que deben estar descargados e instalados como itertools, iterators, reshape, proto, plyr, RColorBrewer, digest y colorspace. Otro plugin para los programadores de R para hacer visualizaciones con grandes datos es rgl, que facilita la creación de gráficos en 3D en tiempo real. La mayoría de paquetes en R se pueden buscar en RDocumentation.org, donde hay más de 11.000 plugins, con más de 54.000 versiones y 24.000 colaboradores

En Python también hay disponibles varios paquetes para hacer representaciones de datos: matplotlib es una de las librerías más utilizadas en ciencia de datos para gráficos de todo tipo (de barras, gráficos de dispersión, fiebre y también mapas con Basemap y en 3D con mplot3D…) con muy poco código; o Seaborn, otra librería en Python basada en matplotlib para que los científicos dispongan de un paquete que facilite la elaboración de gráficos explicativos a partir de datos muy complejos. Además, los plugins de Python están recortando poco a poco la distancia con los recursos de los que dispone un visualizador de información cuando utiliza R. 

Python y R también tienen desventajas

●      R es un lenguaje de programación lento: esta suele ser una de las afirmaciones recurrentes cuando alguien le pregunta a un desarrollador por los inconvenientes que tiene programar con R. Siempre hay quien recursa que es una sintaxis lenta. Aunque esto puede ser una realidad casi reconocida por todos, también es cierto que algunos programadores explican esta falta de velocidad en que muchos de los paquetes que se utilizan para añadir funcionalidades no están desarrollados en R, sino que se usan otras sintaxis como Fortran y C++. Y eso tiene consecuencias negativas. 
También existen consenso en la sensación de que Python es más rápido, sobre todo porque este lenguaje tiene más recursos para poder hacerlo.

●      R es una herramienta errática para proyectos de machine learning: algunos desarrolladores prefieren Python, sobre todo su librería scikit-learn, una herramienta simple y eficiente para la minería de datos y el análisis de información, que permite la reutilización sencilla del código entre proyectos y todas las ventajas de ser una librería de código abierto (licencia BSD). 

●      Python no dispone de buena documentación: algunos programadores se quejan de forma recurrente de la falta de buena documentación en Python, sobre todo comparado con otros lenguajes de programación, PHP y Java. Tiene otras desventajas, este análisis de datafull.co es un buen resumen