Go, el lenguaje de programación para inteligencia artificial y ciencia de datos de los años 20

Hace 30 años, Python hizo su primera aparición. Pero tomó 20 años ganar el reconocimiento de los desarrolladores. Avance rápido hasta 2019, se convirtió en el segundo idioma más querido entre los desarrolladores.
Su crecimiento en el pasado ha sido enorme, especialmente durante los últimos 5 años. Python se convirtió en el lenguaje de referencia de los desarrolladores de ciencia de datos y aprendizaje automático.

El dominio de Python en estos campos sin duda será enorme durante los próximos años. Pero tiene algunas desventajas serias en comparación con los lenguajes más nuevos. Esto podría ser un obstáculo para los desarrolladores de los años 20.
Este es el momento adecuado para examinar los problemas de Python y reemplazarlo con una mejor alternativa. En el caso del desarrollo de inteligencia artificial y ciencia de datos, nuestro próximo lenguaje de referencia puede ser el Golang.

Razón de la popularidad de Python

La razón principal de la popularidad de Python es que es fácil de aprender. Su sintaxis es simple en comparación con otros lenguajes y cualquiera puede aprender los conceptos básicos de Python en unas pocas horas o días.
Incluso después de aprender otros lenguajes como C ++ o Java, los desarrolladores a menudo prefieren seguir con Python. Eso es porque hay una biblioteca de Python para casi todo lo que uno puede pedir.
Las bibliotecas y la sintaxis simple hicieron que el desarrollo de software en Python fuera simple y productivo. Estas ventajas hicieron de Python el lenguaje de los principiantes.

Problemas con Python

Velocidad
Python es un lenguaje interpretado, que causa el mayor problema de Python: ejecución lenta. La ejecución en Python es lenta, muy lenta en comparación con otros lenguajes compilados como C ++ y Go.
Python es un lenguaje escrito dinámicamente. El tipo de datos de las variables se asigna automáticamente durante el tiempo de ejecución. Esto hace que la ejecución sea mucho más lenta.

Uso de C / C ++

Para superar la lentitud de Python, las bibliotecas como Tensorflow, Numpy y Pandas están parcialmente escritas en C o C ++. Ayudan a aumentar significativamente la velocidad de ejecución.
Básicamente, Python necesita la ayuda de otros lenguajes para superar su problema.

Bloqueo de intérprete global

Global Interpreter Lock (GIL) ² de Python permite que solo se ejecute un hilo a la vez mientras mejora el rendimiento de un solo hilo. El multiproceso de Python realmente no tiene varios subprocesos ejecutándose al mismo tiempo.
En realidad, Python no puede realizar verdaderos subprocesos múltiples.
(Nota: las implementaciones de Python que no son CPython, como Jython e IronPython, no tienen GIL)

¿Por qué Go Language?

Go es un lenguaje de programación de código abierto que facilita la creación de software simple, confiable y eficiente.
‘Go’ hizo su primera aparición hace 10 años. Fue desarrollado en Google como lenguaje de uso general.
Tiene varias ventajas sobre Python y otros lenguajes de programación, y es por eso que estamos interesados.

Rápido

Go es un lenguaje escrito y compilado estáticamente. Esto significa que la ejecución será varias veces más rápida que Python. A diferencia de Python, Go no necesita la ayuda de otros lenguajes para ser más rápido.
Aquí hay una pequeña comparación de juegos de referencia entre Go y Python. Go es casi tan rápido como C ++ y Java. Además, Go compila el código extremadamente más rápido que C ++ y Java.

Fácil de aprender

La sintaxis de Go es simple y similar a C. Es un lenguaje de programación fácil de aprender, particularmente si alguien ya conoce los conceptos básicos del lenguaje C o Java.
Para aprender los conceptos básicos de Go, visite A Tour of Go para un recorrido interactivo o visite los documentos oficiales .

Popularidad creciente

Go es el lenguaje de programación más buscado de 2020 según esta encuesta de Hackearth a más de 16,000 desarrolladores de 76 países.
No debería sorprender que el 32% de los desarrolladores experimentados y el 29% de los estudiantes digan que quieren aprender Go.

Concurrencia

La concurrencia es una de las principales fortalezas de Go. Go tiene Goroutines³ para lograr la concurrencia. Goroutines son funciones que se pueden ejecutar de forma simultánea e independiente.
Las gorutinas son livianas y ocupan solo 2 kB de memoria. Como los Goroutines son livianos, es posible tener miles de ellos funcionando al mismo tiempo.

Qué hace que Go sea adecuado para la investigación de IA

No hay nada realmente especial en usar Go específicamente para investigación de inteligencia artificial o ciencia de datos. ¿Por qué debería usarse Go para IA y ciencia de datos? Te lo diré … pero un minuto,
Hace 30 años, Python no se desarrolló para construir algoritmos de aprendizaje automático o aprendizaje profundo ni para realizar visualizaciones de datos.
Es lo que es hoy porque a los desarrolladores y estudiantes les encantaba codificar en Python y el lenguaje soportado para desarrollar lo que pretendían los desarrolladores .
Go tiene como objetivo hacer que los programadores sean más productivos. Tiene varias ventajas en comparación con Python. Puede suceder fácilmente a Python como el lenguaje más querido y popular en los próximos años.

Entonces, se reduce a solo 1 línea

Go puede ayudar a los ‘desarrolladores de los años 20’ a desarrollar sus ideas mucho mejor que cualquier otro idioma.

Referencias:
[1]: Resultados de la encuesta para desarrolladores de Stackoverflow (2019), https://insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-wanted
[2]: Bloqueo de intérprete global (GIL), https://wiki.python.org/moin/GlobalInterpreterLock
[3]: Goroutine, https://tour.golang.org/concurrency/1