Mh, più che altro non capisco certe ridondanze a livello di linguaggio - non so, ad esempio, tutto l'apparato parallelo dei traits con le loro regolette diverse da quelle delle classi mi puzza un po', e su diverse cose non capisco bene quanto sia voluto e quanto siano workaround rispetto alla struttura rigida della JVM.
Un'altra cosa su cui non ho le idee chiarissime in generale è quanto in là debba spingersi il type system in flessibilità e descrizione precisa di tipi e modi in cui interagiscono (vedi covarianza/controvarianza & co.), non mi è chiaro il punto oltre il quale è più il casino delle costrizioni artificiali che si creano rispetto al vantaggio in sicurezza che ti dà la type-safeness.
Da questo punto di vista, mi sembra che il type system di Scala sia estremamente sofisticato e "nuanced"; una cosa che mi ha colpito è che loro stessi ti consigliano, in generale, di leggere nella documentazione l'overload "facile" (per capire come va invocato), lasciando da parte quello più generale, dato che molte dichiarazioni risultano piuttosto complesse da comprendere. Di nuovo, non so se questo sia un bene o un male.
Capita ogni tanto, spesso invece sono solo complicazioni. PHP rocks!![]()