¿Qué debería aprender? ¿Scala o Clojure? Me gustaría aprender algo que me haga más empleable y me haría mejor ingeniero de software.

Vengo de una formación en C/C++ hace años y Java desde 1998. Sólidamente OO durante mucho tiempo. Primero aprendí Clojure. Aunque no se parece en nada a Java y evita fuertemente los objetos, después de una semana me encontré capaz de leer código con poco esfuerzo, después de 2 semanas podía escribir código efectivo, y después de 3 semanas podía escribir macros. Tardé unos 6 meses en estar escribiendo código (mayoritariamente) idiomático. Para mí Clojure fue fácil de aprender. Es muy simple, tiene una sintaxis muy ligera, y una sensación muy consistente. Todo ello hace que sea un camino directo de aprendizaje. Lo más importante es aprender a pensar funcionalmente. Eso es un cambio de mentalidad.

He estado haciendo Scala durante el último par de años. Mi experiencia ha sido un proceso de aprendizaje mucho más lento. Scala es un lenguaje extremadamente rico con muchas características y elementos diferentes. No es un lenguaje que vayas a aprender de un solo bocado, o dos o tres incluso. Es una fiesta completa de un lenguaje. Uno que ofrece a un estudiante dedicado un repaso satisfactorio. Pero requiere un desarrollador por encima de la media para aprenderlo todo, y aprovechar al máximo el esfuerzo.