Una de las primeras preguntas que suele hacerse la gente cuando va a introducirse o profundizar en el mundo del Big Data y Data Science es ¿cuáles son lenguajes de programación más utilizados en Big Data?

Como en tantas otras cosas, la respuesta es depende, ya que no existe, al menos en mi opinión, un lenguaje que sea el mejor en términos absolutos para dar respuesta a todas las situaciones que se pueden plantear. A saber, hay distintos tipos de proyectos Big Data y distintas fases y tareas dentro de cada proyecto que se pueden abordar con lenguajes y tecnologías diferentes.

 

herramientas de programación

 

La frase asociada a la imagen anterior hace referencia al concepto de Martillo de oro o el riesgo de utilizar la misma herramienta para solucionar todos los problemas que se presenten, a pesar de no ser la más adecuada. Lo ideal es conocer las fortalezas y debilidades de cada lenguaje de programación y saber utilizar varios de ellos, aunque siempre cada persona tendrá su preferido y alguno que domine especialmente. De esta manera, se podrán plantear las mejores soluciones y se podrá formar el mejor equipo para cada proyecto según los conocimientos de cada persona. Además, en algunas ocasiones el cliente para el que se realiza el proyecto impone determinada tecnología o lenguaje.

Por dividir en dos grandes bloques en los que se suele categorizar este mundo, por un lado, estarían las necesidades más de infraestructura: capacidades de almacenamiento, transmisión y transformación de datos; y, por otro lado, las necesidades de explotación o analítica del dato para extraer información relevante y conclusiones de negocio.

Empecemos por la segunda parte, la de analítica o Data Science. Aquí las dos principales alternativas en el ámbito del software libre y con grandes comunidades de usuarios son R y Python.

lenguaje de programación R y Python

  • R es un lenguaje creado por estadísticos, para estadísticos, por lo que es especialmente potente, por tanto, en análisis y modelización. Además, tiene muy buenas bibliotecas para representación gráfica, como ggplot2.
  • Python es un lenguaje de programación de propósito general, que puede ser más fácil de aprender para gente con conocimientos previos de programación. Suele ser más eficiente que R en términos de computación y es más robusto a la hora de automatizar procesos y controlar flujos de ejecución. Cada vez va incorporando más bibliotecas para llevar a cabo tareas específicas de analítica, aunque en este punto aún le queda camino para alcanzar a R.

Ambos tienen interfaces y conexiones con otras plataformas de desarrollo Big Data como son Hadoop y todo su ecosistema, o Spark, así como se integran con los proveedores de computación en la nube.

Aunque cada uno tiene sus defensores y detractores, la realidad es que pueden convivir incluso en un mismo proyecto. Tenemos casos de uso reales en los que las tareas de conexión a fuentes de datos, su descarga y transformación están implementadas en Python, y las fases de modelado, predicción y visualización de resultados están programadas con R. Esto no quiere decir que siempre sea ideal hacerlo así, ya que en determinado tipo de algoritmos que aplicamos, la mejor solución pasa por implementarlos en Python. Debe estudiarse cada necesidad particular.

Volviendo a la parte de infraestructura, la tecnología básica que permitió el impulso del Big Data y sobre la que se ha construido todo un ecosistema de aplicaciones, es Hadoop. Permite el almacenamiento y procesamiento distribuidos de la información para ganar tiempo al poder ejecutar los procesos en un conjunto de ordenadores que trabajan de forma coordinada. El algoritmo clave para ello es MapReduce. 

Todo ese ecosistema y otra serie de aplicaciones que han surgido en su entorno están desarrollados en el lenguaje Java. Este lenguaje tiene como una de sus principales virtudes que se ejecuta sobre una máquina virtual propia (la JVM – Java Virtual Machine) que hace que el código sea completamente portable de unos sistemas operativos a otros.

 

Pecera Java y Hadoop

 

Hay otro lenguaje que también corre sobre la JVM: Scala. Parte de su popularidad está asociada a su íntima relación con el framework Apache Spark, mencionado anteriormente, que se caracteriza por su capacidad de procesar grandes volúmenes de datos con notable eficiencia. No obstante, como veíamos, existen ya otras interfaces de Spark con lenguajes como R o Python que permiten explotarlo también.

Si quieres conocer más en detalle cómo utilizamos estos y otros lenguajes de programación y tecnologías en PiperLab, en los proyectos de Big Data y Data Science que abordamos, escríbenos o deja un comentario y te responderemos con gusto.

Mientras tanto, esperamos haberte ayudado a conocer mejor los lenguajes de programación más utilizados en Big Data.