Aprender varios lenguajes de programación es cada vez más fácil e útil. Si usas Java, Ruby o JavaScript, puedes utilizar en tus proyectos lenguajes compatibles que te ofrecen ventajas cómo una sintaxis más amigable o un mejor diseño de sus características.
Pero, ¿cómo lograrlo cuando no tienes tiempo por las tareas del trabajo? Para comenzar, puedes aprovechar cuando tengas que realizar pequeñas tareas no-criticas, especialmente si:
* Usan arquitecturas con modelos publicar-suscribir u orientadas a servicios.
Éste tipo de arquitecturas, al conectar sus partes de forma holgada mediante APIs que intercambian mensajes con JSON o protocol buffers, permite que cualquiera de las partes sea intercambiada por otra implementación sin que el resto se percate de ello.
* Suelen crear aplicaciones con Rails.
Rails es un gran framework, pero en la búsqueda de tener herramientas que puedan escalar con mayor facilidad, ha llevado a la implementación de frameworks con la misma filosofía y estilo en otros lenguajes. En Elixir se encuentra Phoenix y en Haskell se encuentra Yesod. Con ambos, los desarrolladores acostumbrados a trabajar con Rails se encontrarán en un ambiente familiar, obteniendo las ventajas de los respectivos lenguajes.
* Tienen que usar JavaScript para cualquier cosa.
Nos guste o no, JavaScript (acompañado de sus detalles) está cada vez en más lugares... afortunadamente, ¡eso no significa que tienes que usarlo todo el tiempo! Muchos buenos desarrolladores han creado formas de compilar el código fuente de otros lenguajes, unos 300+, a JavaScript. Así que, en vez de pelear en el infierno que puede ser el debugging, puedes aprovechar para aprender un nuevo lenguaje que como Elm o ClojureScript.
* Se requiere un programa de un sólo uso.
Hay tareas para las cuales se escriben programas que seguramente quedarán olvidados después de usarlos una vez, como la migración de una base de datos a otra, así que no hay que preocuparse de su mantenimiento. Aprovecha esas oportunidades para hacerlo en un lenguaje de tu interés.
Una vez que te hayas decidido, procura escribir código que no te duela perder. Algo que puedas hacer en un día o dos. Realizar benchmarks para justificar tus cambios de implementación si alguien se acerca a discutirlos. Y finalmente, no te preocupes por los errores (siempre que hayas seguido el consejo de no experimentar con partes criticas), cuando pasen, te buscarán. Aprovecha para preguntar que no les gustó de tu solución.
Ésta entrada es un condensado de la charla «Beyond Ruby: Easy ways to go polyglot», impartida por Wojciech Ogrodowczyk en la edición 2015 de la Poly Conf.