Quale dovrei imparare: Scala o Clojure? Vorrei imparare qualcosa che mi renda più impiegabile e che mi renda un ingegnere del software migliore.

Vengo da un background C/C++ anni fa e Java dal 1998. Solidamente OO per molto tempo. Ho imparato prima Clojure. Anche se non assomiglia per niente a Java ed evita fortemente gli oggetti, dopo una settimana mi sono trovato in grado di leggere il codice con poco sforzo, dopo 2 settimane potevo scrivere codice efficace, e dopo 3 settimane potevo scrivere macro. Ci sono voluti circa 6 mesi per scrivere codice (per lo più) idiomatico. Per me Clojure è stato facile da imparare. È molto semplice, ha una sintassi molto leggera e una sensazione molto coerente. Tutte cose che lo rendono un percorso di apprendimento diretto. La cosa più grande è imparare a pensare in modo funzionale. Questo è un cambio di mentalità.

Ho fatto Scala negli ultimi due anni. La mia esperienza è stata un processo di apprendimento molto più lento. Scala è un linguaggio estremamente ricco con molte caratteristiche ed elementi diversi. Non è un linguaggio che si impara in un solo boccone, o anche due o tre. È una festa completa di un linguaggio. Uno che offre a uno studente dedicato un pasto soddisfacente. Ma richiede uno sviluppatore sopra la media per imparare tutto, e fare pieno uso dello sforzo.