En el mundo de los datos existe esta batalla campal por decidir cuál de estos dos lenguajes de programación (Python o R) es el mejor.
Cada que se habla de alguno de ellos, indudablemente sale a relucir el otro y hay quienes se ven sesgados por las opiniones encontradas y no se deciden por aprender/utilizar alguno de ellos.
En esta entrada, veremos algunas de las bondades de ambos lenguajes de programación desde una perspectiva muy superficial que podrían ser de gran interés para ti que estás buscando respuestas…
Python
Es un lenguaje de programación interpretado (que se traduce al lenguaje máquina al momento de la ejecución) de propósito general. Es uno de los lenguajes de programación más populares del mundo, algunas razones son las siguientes:
- Su sintaxis es muy intuitiva.
- Soporta varios paradigmas, pero la mayoría de la gente describe a python como un lenguaje orientado a objetos. En este paradigma todo lo que creas es un objeto, los objetos tienen diferentes propiedades y puedes operar estos objetos de distintas maneras.
- Python se integra bien con otros componentes de software y con diferentes tecnologías. El ser un lenguaje de propósito general hace que puedas construir un pipeline de inicio a fin.
¿Para que puede ser utilizado Python?
Entre lo más importante…
- Data science: Python es el lenguaje default para las Jupyter notebooks, las cuales son del agrado de la mayoría de los data scientists. En ellas puedes explotar librerías de machine learning, de manipulación de datos y de visualización, entre otros.
- Web development: Existe una variedad de frameworks de Python que facilitan la creación de sistemas web y APIs; los más populares son Flask y Django.
- Análisis de datos: Python tiene librerías que permiten la creación de reportes y facilitan el análisis de datos.
- Automatización de procesos/operaciones: Al ser utilizado como lenguaje de scripting, permite crear código que automatiza operaciones-procesos de una manera muy eficiente.
R
R es un lenguaje de programación y entorno de software para análisis estadístico, representaciones gráficas y reporteo.
R provee una extensa variedad de paquetes para estadística y gráficos (modelos lineales y no lineales, tests estadísticos, time series analysis, classification, clustering… etc.). Una de las fortalezas de R es la facilidad con la cual los gráficos son producidos y bien diseñados, pueden incluir símbolos matemáticos y fórmulas donde se necesiten, esto sin duda es un gran plus.
¿Para que puede ser utilizado R?
- Data science: R es el lenguaje de programación predilecto en la academia para desempeñar tareas de ciencia de datos.
- Data Wrangling: R tiene una extensa librería para manipulación de datos y bases de datos, por ejemplo dplyr y data.table.
- Data Visualization: Una de las fortalezas de R con su gran número de paquetes para hacer de los gráficos las más bellas representaciones.
- Machine learning: R provee amplias herramientas a los data scientists para entrenar y evaluar un algoritmo y así predecir eventos futuros.
- Análisis de datos: Como R está diseñado para el análisis estadístico, es una buena herramienta para realizar complejos análisis de información.
¿El ganador?
Desde mi punto de vista (como SE y DE) creo que Python es ligeramente superior a R por algunas razones: Al ser Python un lenguaje de propósito general, hace que la colaboración con otros equipos sea más sencilla. Otra causa sería el desarrollo de modelos, aunque R es utilizado por un número de gente muy grande la mayoría proveniente de la academia, y R tiene mejores paquetes para estadística, Python tiene el deep learning (muy de moda por cierto) y está preparado para manejar sets de datos más grandes y lidiar con los recursos del sistema.
Pero, para decidir cuál de los dos lenguajes utilizar basta con saber que quieres lograr y conocer las bondades que cada uno de ellos ofrece (incluyendo las bondades técnicas, que no están listadas en esta entrada). Lo más bonito, es que no están peleados y puedes utilizar ambos lenguajes en un solo proyecto, dependerá de tu diseño.
Y tú, ¿con cuál te quedas?
