arrow_back Volver
Inicio keyboard_arrow_right Artículos keyboard_arrow_right Artículo

Lenguajes modernos y por qué aprender.

Uriel Hernández

CTO de Código Facilito

av_timer 3 Min. de lectura

remove_red_eye 42525 visitas

calendar_today 05 Febrero 2016

Los lenguajes de programación son muy nuevos cuando no pasan de los 10 años, basta con pensar que Ruby cumplirá este año 21 años y se inició hace 23; Python tiene ya 25 años.

Ruby, Python y contemporáneos, representaron una nueva forma de diseñar lenguajes de programación, fue un momento en el que la preocupación fue la productividad, era lógico pensando que, considerando los precios actuales, el costo de hardware es barato pero el de un programador no. Esta generación de lenguajes sacrificó parte del performance en pro de crear lenguajes amigables, que más allá de ser fáciles, son productivos, lo que significa que puedes desarrollar x tarea en pocas líneas de código, o poco tiempo.

El límite de estos lenguajes

La generación de lenguajes productivos y dinámicos no está para nada mal, hay que recordar que las tecnologías de desarrollo son herramientas, algunas son buenas para algunos casos, y otras para otros. Por ejemplo, si necesitas desarrollar un MVP para mostrar tu idea, definitivamente un lenguaje dinámico es la mejor herramienta, de hecho, la mayoría de las aplicaciones (90% del internet probablemente) funciona perfectamente bien con las pequeñas limitaciones de los lenguajes dinámicos, así que no nos volemos las cabezas y pensemos que es la muerte de ningún lenguaje, siguen siendo excelentes opciones para muchas tareas.

El asterisco de estos lenguajes es que en la actualidad, la mayoría de las aplicaciones se comunican en tiempo real, los usuarios esperan tiempo de respuesta inmediatos y algunas aplicaciones reciben visitas con números de 6 dígitos. En estos casos, el tiempo de ejecución es crítico, normalmente cada milisegundo, cada porcentaje del CPU y cada MB de la RAM cuentan.

Los lenguajes evolucionan, y aunque la generación anterior sigue siendo muy buena y muy útil, hay nuevos desafíos que se busca resolver.

La nueva generación

Los lenguajes de nueva generación están diseñados para mantener la expresividad de la generación pasada (dentro de lo posible) y además ofrecer el performance necesario para los desafíos modernos. Estas son las características que en mi opinión tienen los lenguajes modernos:

  1. Concurrencia, los lenguajes dinámicos e interpretados, no suelen tener buena fama en este apartado; los lenguajes modernos están diseñados para funcionar concurrentemente utilizando hilos o procesos.
  2. Paralelismo: Al buen entendedor pocas palabras:
    View post on imgur.com
  3. Compilan a lenguaje máquina o byte code. La generación anterior es de lenguajes, normalmente, interpretados.
  4. Recolectores de basura más eficientes o de plano utilizan otras formas de manejar la memoria sin que el usuario tenga que hacerlo.
  5. Manejo óptimo de la memoria, este caso es particularmente notorio en versiones iniciales de Ruby que se comían la memoria de la misma forma que Google Chrome :3

Particularmente la concurrencia es muy útil en situaciones de tiempo real, varios lenguajes anteriores manejan concurrencia, los lenguajes basados en la JVM son un buen ejemplo, sin embargo, los lenguajes modernos hacen que manejar múltiples ejecuciones de tu código sea más fácil, (cough... Go... cough).

Que sean compilados optimiza el performance y además hace que el deploying de aplicaciones sea más fácil, no tienes que instalar nada en el servidor (a menos que el código corra en una máquina virtual), solo subes el binario y listo.

¿Quiénes son?

4 ejemplos de lenguajes nuevos que pueden cumplir alguna o varias de las características mencionadas antes son:

Aprende alguno de ellos, en serio, mi opinión es que lo que significó para muchos aprender Ruby, javaScript o Python hace 5 o 10 años, lo es para nosotros aprender uno de estos lenguajes.

¿No sabes con cuál de ellos empezar? Crea un hola mundo con alguno de ellos (o una estructura de datos o un algoritmo de ordenación, son súper buenos para probar lenguajes), y decide por ti mismo cuál te gusta más. De hecho, ni siquiera necesitas instalar nada para iniciar con estos lenguajes, varios de ellos tienen versiones para programar alguna que otra línea de código en el navegador, y si no, puedes usar CodePicnic.

Pero en serio, no dejes pasar el tiempo.

Just do it

Final

¿Sigues aquí? Pensé que habíamos dicho que no dejaras pasar el tiempo >.< !! Jaja, ok... antes de irte, no olvides dejar un comentario en el box de discusión en la parte de abajo del artículo.

Nos ayudas infinitamente compartiendo el post. Así que no lo dudes, da click en compartir :)