¿Qué lenguaje aprender para Data Science?

En la era de la transformación digital donde muchas compañías se plantean ser una compañía ‘data driven’ como centro de su propia transformación, muchas de las desarrolladoras se proponen transformar su propio perfil para surfear la increíble ola que está provocando Big Data, aunque más específicamente en este caso el Data Science (Machine Learning).

Mientras cientos de colegas se debaten sobre lo real o lo irreal de la ola (diagnóstico: rechazo al cambio), intentamos dar una visión con datos de las distintas alternativas para convertirte en un Data Scientist.

Si USA es un indicador avanzado en tecnología de miles de negocios (no todos),  es inevitable mirar qué está ocurriendo más allá de los mares. Para dibujar el camino lo haré desde una visión objetiva con datos, antes de aportar opiniones propias, que ya se sabe que cuando se habla de lenguajes de programación, sale el forofismo intrínseco del developer como si de un Madrid-Barça se tratara.

 

 

Es obvio que existe una creciente demanda en Machine Learning como antesala de lo que vendrá de Inteligencia artificial.

Algunos datos que nos aporten perspectiva :

  • C, C++, Java, Javascript se suben a la inercia de Machine Learning.
  • Julia recién llega a la batalla, veremos como se desarrolla en un futuro.
  • Scala muy minoritario hace tres años, toma su protagonismo porque Spark está desarrollado con Scala. Siendo Spark una de las tendencias más pujante.
  • R nace en 1993 en la Universidad Auckland dentro del departamento de estadística, toda una declaración de intenciones.
  • Python creado a finales de los 80 en un centro para las matemáticas e informática en los Países Bajos, una buena muestra de su ADN.

Una observación antes de continuar (la cuña publicitaria del matemático), si existe un rasgo característico del Machine Learning es la implementación de algoritmos matemáticos que tanto su uso como su interpretación requiere de conocimientos de estadística y probabilidad, aspecto que explica la pujanza en este ranking tanto de Python como R que nativamente fueron construidos para un fin cercano al que hoy ocupan dentro del ecosistema de Machine Learning.

Podríamos afirmar aquello de Nativo Data Science para R y Python.

Cada uno de los lenguajes están llevando a cabo planes para paliar sus respectivos talones de Aquiles, en unos su performance comparado, en otros la disponibilidad de recursos de valor dentro de la comunidad (algoritmos, gráficos, librerías, etc).

Algunos datos de contexto aportarán datos a la contienda, lo podemos ver en decisiones de alguno de los ‘Big Players’ del mundo IT, por ejemplo:

  • Microsoft dentro de su plataforma Machine Learning se integra con R y Python como lenguajes para desarrollar scripts o programas dentro de su modelo de ML Studio.
  • Oracle: pendiente.
  • IBM: pendiente.
  • Apache Fundation crea Spark como una de las iniciativas más pujante dentro del ecosistema Big Data open source, sobre todo en entornos que requieran un elevado performance y/o con clusters de múltiples nodos. Su concepto RDD de procesamiento distribuido, es inspiración a futuras apariciones por su flexibilidad y performance. Dentro Spark, podemos implementar ML con R, Python, Scala o Java. Pros y contras:
    • Java aporta madurez y una población de developers expertos amplio, aterrizado en España podríamos decir que es la mayor comunidad de desarrolladores.
    • Scala es lenguaje nativo con el que se crea y desarrolla Spark, por lo tanto es profundamente amigable, y su performance saca varios puestos al resto.
    • Tanto Python, como R aportan mucho más recursos a la comunidad que el resto de lenguajes, por razones ya explicadas.

¿Qué está pasando en España?

Ofertas publicadas en Infojobs y LinkedIn por lenguaje para los términos Data Sciences / Data Scientist / Machine Learning

  • Mayor comunidad de developers es Java.
  • Oferta mayor para R que para Python, tiene cierta lógica si vamos a ver que están enseñando nuestras Universidades o nuestras escuelas de negocio especializadas en Big Data/Data Science (pujante crecimiento, ¿Por qué será?).
    • R es lenguaje mayoritario para el perfil Data Scientist.
    • Seguido de Python.
  • Los perfiles expertos con C / C++ son perfiles en vías de extinción para otras aventuras y en esta se hace complejo que vayan a crecer, cuando se ha desterrado de los centros de conocimiento ambos lenguajes y la oferta formativa es minoritaria. Este párrafo lo escribí antes de ver el gráfico, y he de reconocer que sorpresa mayúscula el % de C, aunque no me aleja de mi comentario inicial, me ha hecho reflexionar, desempolvando estoy mi libro de Kernighan and Ritchie que tantas alegrías me dió.

¿Qué nos está ocurriendo a nosotros?

Mayoritariamente R 85% y Python 15%.

¿Algo más de luz?

  • R es elegido mayoritariamente por aquellos perfiles que tienen un background más orientado a la estadística y menos developers.
  • Python es elegido preferiblemente por aquellos que tienen un perfil más Developer y que puede entender los desafíos del performance de procesos de data mining o data science.
  • Java por aquellos que su background viene del propio lenguaje.
  • Scala por aquellos cuya apuesta en el ecosistema es Spark. Aquellos que busquen nuevas emociones con ejecuciones distribuidas y necesiten un alto performance en clusters con multiples nodos, se requiere un perfil Developer experto.

Autor: Javier García Paredes | Strategy Director/CEO Latam | Grupo Solutio

Fuentes:

Comparte