Cuál lenguaje de programación debería aprender?

Karl Niebuhr
Karlbooklover Español
2 min readOct 10, 2018

Este es un tema sensible ya que depende mucho de lo que quieras hacer. Cada lenguaje tiene sus trade-offs (pro y contra). Pero en hay algunas pautas muy útiles.

  • Un lenguaje de programación debería maximizar a tu productividad.

What? Sólo eso? Si! Opino que es lo que más personas deberían preguntarse antes de seleccionar un lenguaje. Muchas veces los informáticos nos dejamos guiar por nuestros instintos nerd para aprender los lenguajes más exóticos y rápidos en ejecución. Pero mientras no sea un caso de uso muy específico como drivers, kernels etc, el rendimiento de los lenguajes no es un punto muy importante a la hora de elegirlos por una simple razón.

La gran mayoría de cpu-cycles (tiempo de ejecución en la cpu) que el código de un programador en general se ejecutará, no será crítico en términos de performance. Y para las pequeñas partes que sí lo son, uno puede integrar una librería de alto rendimiento. Para dar un ejemplo mas concreto está el caso de Python.

Python en sí no es un lenguaje rápido. En 95% del tiempo no necesito que sea rápido, necesito que mi tiempo de desarrollo lo sea. Para el 5% de las ocasiones que si necesito que sea más rápido, hay montones de librerías y extensiones que puedo usar. Por ejemplo si quiero que mi servidor web sea rápido, puedo usar un web framework como vibora que rivaliza a frameworks de alto performance escritos en rust y cpp.

https://github.com/the-benchmarker/web-frameworks

Otro ejemplo muy bueno es machine learning. Python es el de facto lenguage de ML, pero ML necesita operaciones de alto rendimiento! No problem porque existen abundancia de librerías como numpy, pandas, skikit-learn que son librerías altamente optimizadas en C, utilizables desde python.

Dicho lo anterior, hay lenguajes más nuevos que sí me llaman la atención. Por el momento hay un lenguaje que me gustaría dedicar tiempo para aprender, Crystal.

Crystal tiene todo lo que siempre quise en un lenguaje. Una sintaxis elegante basada en Ruby, sin sacrificar al performance. Tradicionalmente siempre hubo un trade-off entre facilidad de uso y velocidad de ejecución. Crystal cambió eso y rompió paradigmas. Ahora croe que crystal tiene una comunidad suficientemente madura como para usarlo como lenguaje en producción.

Además soporta Concurrency lo cual es imprescindible, todos los mayores lenguajes están moviendose más hacia el paradigma concurrente incluso python. La gente de crystal hasta esta implementando paralelismo similar a Go.

No voy a entrar en más detalles sobre todas las razones que hacen explotar al uso de Crystal, si quieres aprender más recomiendo que leas a este artículo.

Originally published at Karlbooklover.

--

--