The Origins of Scala
artima.com
artima.com
What we did in Scala was try to be more complete and
orthogonal.
These are two of the most important contributions of PL academia: orthogonality and completeness. (I would say that soundness is the third.) Separating out designs into their atomic parts paves the way for better implementations and improved programmer understanding. I believe one of the things we have to work on is better
tool support. Right now when you get a type error, we try
to give you a nice error message. Sometimes it spans
multiple lines to be able to explain more. We try to do a
good job, but I think we could do much better if we could
be more interactive.
Type inference research has spent a lot of time trying to infer types in more complicated settings (GADTs in Haskell, etc.). More time, I think, should be spent on understanding failure to infer types. The Damas-Milner inference algorithm for the Hindley-Milner type system is a good starting point -- few would argue that Ocaml and SML type errors are sufficient!http://www.artima.com/scalazine/articles/goals_of_scala.html
http://www.artima.com/scalazine/articles/scalas_type_system....
http://www.artima.com/scalazine/articles/pattern_matching.ht...
Edited: to fix hyperlinks.