¿Recomendarías aprender Scala o Clojure para el futuro?

Sí. Ambos lenguajes son mejores que Java para desarrollar en la JVM. Dado el “o” en su pregunta, yo (y he) elegido a Clojure sobre Scala. Mirando el 2, Scala es comparativamente complejo y trata de complacer a todos en cada idioma. Los idiomas de este tipo pueden volverse demasiado complejos y dificultar el trabajo humano, utilizarlos completamente o incluso seguir el código de otros.

Por otro lado, Clojure es un lenguaje sencillo que comenzó siendo pequeño y simple. Ha tomado un enfoque único con algunas decisiones pragmáticas sobre cómo trabajar con varios problemas (sin TCO en la JVM, bien, el lenguaje agrega algo para resolverlo). Algunas de las adiciones más recientes al lenguaje lo han hecho más complejo, pero las razones para seguir ese camino son decentes y probablemente valgan la pena.

Si bien ambos lenguajes son compatibles con el estilo de programación funcional, Clojure es pura y proporciona una manera para que un desarrollador sea más productivo y tenga una manera diferente de pensar en los problemas. El mayor costo en la memoria y el tiempo de CPU son mínimos en la mayoría de los casos. Los casos en los que ese intercambio no vale la pena, Scala tampoco es su mejor opción.

Las otras respuestas excelentes cubren en gran medida esto, pero lo tomaré desde una perspectiva de reclutamiento y desarrollo de la felicidad. He empezado y crecido equipos en núcleos de Ruby, Scala, Python y Clojure.

Clojure atrae a los ingenieros que aman la esencia de Lisps, que es la simplicidad y la fp. Combinados, estos son efectivamente el arte de usar un lenguaje expresivo para hacer las cosas de manera clara y sucinta al mismo tiempo. En Java, no hay nada sucinto. En Scala, la claridad puede ser difícil de lograr. Manejado con cierta habilidad, Clojure proporciona un equilibrio elegante de ambos.

Las herramientas de Clojure (script) han recorrido un largo camino en los últimos años, y a mis equipos les ha encantado el desarrollo real basado en REPL. Creo que ayuda a las personas a aprender y producir un buen código cuando son nuevas en Clojure, en lugar de cambiar de modo entre aprender y hacer.

Y vale la pena señalar aquí que Clojure tiene una historia de frontend cada vez más convincente con enlaces Clojurescript y React como Om Next y Reagent. “Un lenguaje para dominarlos a todos” es una sobre-caracterización tonta que ignora las complejidades, pero me encuentro diciendo de vez en cuando porque Clojure se está acercando.

Y es muy divertido. Mi voto es para Clojure.

Me gusta Clojure personalmente, mi respuesta reflejará este sesgo.

Mis herramientas ideales me permiten ser conciso pero expresivo. Clojure (script) hace esto bien y me permite aprovechar el ecosistema del host (bibliotecas java / javascript) sin hacer un extraño ritual masónico.

He visto las bases de código de Scala, las primeras 20 líneas impares son incomprensibles. Sin embargo, Scala tiene una sólida participación mental en varias organizaciones exitosas y en la comercialización y divulgación de who’s who who (los cursos de coursera y similares) de Scala han sido bastante exitosos.

No te puedes equivocar con ninguno de los dos. Es (IMO) una pequeña inversión con una buena recompensa.

Dadas solo esas dos opciones …

Si se encuentra en un tipo de rol de ciencia de datos, Scala se ha convertido en el estándar allí. Aparte de R o Python, pero no estamos hablando de esos dos aquí.

Clojure se ve un poco desde el punto de vista de las aplicaciones de negocios, pero personalmente sé poco al respecto y sé que hay MUCHAS personas que lo usan.

Sí definitivamente.