Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=bdf779eb-a6a3-4ef4-9b6d-d7901eb26cbe

Los 4 mejores lenguajes de programación para Inteligencia Artificial / Machine Learning

Imagen ornamentalCuando te planteas aprender Inteligencia Artificial o, hablando con más propiedad, aprendizaje automático, una de las preguntas que cualquier programador se va a hacer es ¿qué lenguajes existen para IA?, ¿qué lenguaje debo utilizar? ¿me vale alguno de los lenguajes que ya conozco?...

Lo primero que debemos tener claro es que la programación orientada a la inteligencia artificial es muy diferente a la programación convencional y, por lo tanto, los lenguajes de programación se emplean de una manera muy distinta. En programación convencional tú le dices a la máquina exactamente qué tiene que hacer, mientras que en Machine Learning le tienes que enseñar a la máquina a programarse sola, es decir, la entrenas para ello.

Se trata de un cambio de punto de vista muy radical, que se visualiza perfectamente con este gráfico:

Esquema que muestra las diferencias entre un programa clásico y uno orientado a aprendizaje automático

Como vemos, a un programa convencional le decimos exactamente qué hacer con la información que procesa de modo que se obtengan unos resultados concretos. Pero en Machine Learning es justo al contrario: partiendo de unos datos y de unos resultados previos ya conocidos, se entrena un modelo para que genere automáticamente las reglas para procesar nuevos datos y obtener resultados futuros.

Una consecuencia de esto es que el proceso de trabajo para Aprendizaje Automático es muy diferente a la construcción de una aplicación convencional y, por el mismo motivo, la manera de utilizar los lenguajes de programación es diferente, así como las características de estos que se utilizan, sus objetivos, etc...

Popularidad y ecosistema, los dos factores determinantes

No hay muchos análisis sobre este tema que estén orientados específicamente a IA/ML, pero en 2019, GitHub analizó todos los proyectos de Machine Learning que había en su ingente colección de repositorios, clasificando los lenguajes más populares así como los paquetes más utilizados entre otras cosas. Así que, dado su tamaño e importancia, aunque ya ha pasado tiempo, sigue siendo una fotografía muy relevante que nos ayuda a entender las preferencias del mundillo y a orientarnos sobre qué elegir.

Más recientemente, la popular herramienta de Machine Learning Anaconda, hizo una encuesta global a sus usuarios sobre los lenguajes de programación que utilizaban, que seguramente está mucho más sesgada dado el enfoque de la herramienta, pero que es una buena representación de lo que usan los profesionales.

Gráfica con los lenguajes por popularidad del estudio de Anaconda

La popularidad de un lenguaje importa porque es una señal del tamaño de su comunidad, de la ayuda que puedes recibir, de qué pedirán en las empresas... Pero, su ecosistema es tanto o más importante ya que te indica si dispones de las herramientas necesarias para llevar a cabo el trabajo y tener mayor productividad. Finalmente, la idoneidad del lenguaje para el trabajo es otro factor relevante, ya que si un lenguaje está diseñado con una determinada tarea o propósito en mente, hará que esta sea mucho más eficiente y productiva.

Basándonos en popularidad, uso en proyectos, ecosistema y utilidad real, esta es nuestra elección de lenguajes para Inteligencia Artificial:

#1: Python para Inteligencia Artificial / Machine Learning / Ciencia de Datos

Logo de Python

Una de los principales motivos por los que Python se está convirtiendo en el lenguaje de programación más popular del mundo es por su sencillez unida a una gran versatilidad. Lo puedes aprender rápido y luego utilizarlo para casi todo: desde desarrollo web hasta inteligencia artificial, pasando por el desarrollo de juegos. Pero, de hecho, su gran crecimiento en los últimos años viene de la mano de la inteligencia artificial, a pesar de no ser el más rápido o el más potente.

Aparte de su popularidad, el principal motivo para aprender Python para machine learning es, sin duda, el enorme ecosistema de cosas ya hechas que existen alrededor del lenguaje. Los paquetes de aprendizaje automático y deep learning más conocidos y utilizados del mundo, como Pandas, NumPy, TensorFlow, Keras, Scikit-learn... y miles más, están todos escritos en Python.

Python te da un soporte sobresaliente para cada uno de los pasos del proceso de aprendizaje automático. Por ejemplo, con Pandas podrás importar y manipular los datos casi de cualquier manera que puedas imaginar, algo crucial para esta disciplina, y con TensorFlow podrás crear los modelos más potentes basados en redes neuronales. ¿Necesitas automatizar alguna tarea? Con Python lo tienes hecho en unos minutos... Elige cualquier paso o disciplina que quieras y lo tienes Python, te lo da solucionado (o casi).

El lenguaje ha evolucionado en paralelo a la disciplina de inteligencia artificial y ello hace que sea casi indispensable conocerlo si vas a trabajar en este campo. Aunque luego uses también otros.

Además, nos proporciona un código muy claro y por tanto fácil de entender, flexibilidad, capacidades de prototipado rápido y colaboración con otros gracias a cuadernos Jupyter y muchas cosas más.

Su mayor "pega": que no es tan rápido como otros lenguajes, aunque en la actualidad existen proyectos como Cinder, PyPy y otros similares que lo compilan y aceleran su rendimiento muchísimo si fuese necesario.

Para no darle más vueltas: en la actualidad si vas a trabajar en este campo, Python es un lenguaje que debes aprender sí o sí. Por eso lo incluimos de primero de la lista.

#2: Lenguaje R para Inteligencia Artificial / Machine Learning / Ciencia de Datos

Logotipo del lenguaje R

R es otro lenguaje de programación popular en esta disciplina. Si bien en los rankings aparece debajo de otros y se ha relacionado tradicionalmente con entornos más académicos, es nuestro número 2 por una razón muy importante: se trata de un lenguaje específico para trabajar en análisis de datos y aprendizaje automático, lo cual lo dota de una gran ventaja frente a otros lenguajes de propósito general.

Está diseñado desde el primer momento para orientarlo a este tipo de trabajos. Por eso, incluso muchos programadores acostumbrados a lenguajes convencionales, lo acaban adoptando como lenguaje principal. También lo utilizan muchas personas que no tienen un perfil de programador, como analistas de datos, financieros o especialistas en estadística. No tiene la misma flexibilidad para hacer otras cosas fuera del ámbito de la IA, pero está diseñado para moverse en él como pez en el agua.

Es un lenguaje open source, multiplataforma, funcional y también orientado a objetos, y fácil de aprender. Dispone de un entorno de desarrollo muy popular que es específico para el lenguaje (R-Studio, que también soporta Python).

Al igual que Python dispone de una cantidad increíble de paquetes listos para ser utilizados para casi cualquier cosa que necesites en ciencia de datos: carga y procesado de datos, visualización de datos, regresión no lineal, algoritmos genéticos, redes neuronales... También facilita mucho el hacer cosas muy rápido y compartir la información y trabajar en equipo a través de cuadernos Jupyter, como con Python.

Su mayor inconveniente es, seguramente, que no se parece a los lenguajes convencionales que tienes costumbre de ver. Sin embargo, su simbiosis con la materia y su amplio uso en el mundillo hacen que sea un lenguaje que toda persona que se dedique a ciencia de datos debería conocer, al menos en sus fundamentos.

3: Lenguaje SQL para Inteligencia Artificial / Machine Learning / Ciencia de Datos

Un icono de base de datos con la palabra SQL

El lenguaje SQL (Structured Query Language) lleva con nosotros desde hace muchas décadas. Es un lenguaje declarativo pensado para facilitar la consulta de datos de forma parecida al habla natural (en inglés) y es la manera principal de comunicarse con cualquier gestor de datos relacional.

Ya hemos comentado en este blog que SQL es quizá uno de los conocimientos más valiosos a largo plazo que puedes adquirir. Y si haces cualquier cosa relacionada con ciencia de datos o IA, sin duda esto aplica...

¿Entrenarás modelos con él? Pues seguramente no o no a menudo. ¿Hay un ecosistema de paquetes con algoritmos ya implementados? Tampoco. Pero si trabajas en ciencia de datos el 80% de tu tiempo o más lo vas a dedicar a interactuar con información. Así que, SQL va a ser una de las herramientas más valiosas de tu arsenal. Lo usarás para leer y guardar datos, limpiar y transformar información, exportarla, hacer scripts que la actualicen periódicamente...

Además, la mayor parte de los gestores de datos relacionales como SQL Server, Oracle o PostgreSQL incorporan ya capacidades de entrenamiento de modelos en sus productos, de modo que puedes llevar a cabo gran parte del workflow de aprendizaje automático sin salir de la base de datos.

No se concibe trabajar con datos y no conocer SQL, así que es otro lenguaje indispensable que deberás aprender.

#4: JavaScript para Inteligencia Artificial / Machine Learning / Ciencia de Datos

Logo de JavaScript

¿Cómo? ¿JavaScript, el lenguaje de la Web? Pue sí. No hay ranking de lenguajes que no tenga a JavaScript en los primeros lugares en cuanto a uso y no hay programador en el mundo que no chapurree al menos en este lenguaje de programación. Y, además, es un lenguaje pensado para crear scripts, macros y cosas por el estilo, algo muy apropiado para la Web de mediados de los años '90.

La principal ventaja de JavaScript es su sencillez de aprendizaje para las cosas comunes (luego se vuelve endemoniado si quieres meterte a fondo, pero eso es otra cuestión) y que funciona tanto en los navegadores como en el servidor (a través de plataformas como Node.js).

Y además, muchas veces es necesario llevar a la Web los resultados de los algoritmos de aprendizaje automático e, incluso, por qué no, aplicarlos en tiempo real en el navegador (o en el servidor).

Pero ¿qué pasa con el ecosistema? ¿Hay paquetes/librerías enfocadas a ciencia de datos que trabajen con JavaScript? Pues sí, y cada vez más, y también APIs de todo tipo que se pueden llamar desde un navegador aunque el procesamiento se haga en otro lado. Por ejemplo, TensorFlow.js es la versión para JavaScript de la archiconocida biblioteca de aprendizaje automático y te permite implementarla en el navegador. ¿Que necesitas hacer procesamiento de imágenes con IA en el navegador? pues OpenCV.js al rescate. ¿Redes neuronales avanzadas? Ningún problema con Synaptic.js. ¿Visualización de resultados? Pues Chart.js es una gran opción. Es evidente que no tiene tanta oferta como otros Python o R, pero cada día hay más, y la oferta actual no es nada desdeñable.

De todos modos hay que ser realista: JavaScript no será tu lenguaje principal para desarrollo en Inteligencia Artificial, pero sí que es un gran complemento para hacer muchas cosas, especialmente visualización, y conviene aprenderlo porque te va a servir para todo un poco. Y, si quieres exponer tus modelos hacia el exterior, seguramente lo acabarás haciendo a través de alguna interfaz web.

En conclusión

Hay muchos lenguajes que se pueden utilizar en Machine Learning para alguno de los pasos de su flujo o para alguna de sus facetas. Sin embargo, a la hora de aprender el tiempo es escaso y hay que decidirse por aquellos que te permitan obtener el mayor beneficio con el menor esfuerzo. En este artículo hemos listado 4 lenguajes de programación que te permiten precisamente eso, y nos hemos basado en su popularidad/demanda, su ecosistema que permite obtener resultados rápidos, y las facetas que cubren.

Con los 4 elegidos cubres la mayor parte de los aspectos que puedas necesitar. Si solo te quieres quedar con uno, seguramente sería Python, ya que es el más completo y que más "checks" marca. SQL Sería otra recomendación casi indispensable, ya que gran parte del trabajo de ciencia de datos implica la interacción con datos, algo para lo que SQL está especialmente diseñado.

 

campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP

¿Te ha gustado este post?
Pues espera a ver nuestro boletín mensual...

Suscríbete a la newsletter

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.