4 ms·
The Origins of Scala
- mgreenbe 17y agoParts two, three, and four of the interview: http://www.artima.com/scalazine/articles/goals_of_scala.html http://www.artima.com/scalazine/articles/goals_of_scala.html http://www.artima.com/scalazine/articles/scalas_type_system.html http://www.artima.com/scalazine/articles/scalas_type_system.... http://www.artima.com/scalazine/articles/pattern_matching.html http://www.artima.com/scalazine/articles/pattern_matching.ht... Edited: to fix hyperlinks.
- mgreenbe 17y agoScala is definitely a rara avis, a serious engineering attempt by a PL academic. This doesn't happen often enough, though the effort involved makes it easy to understand why. Odersky should be applauded for his work, which is a contribution to both academia and industry. 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!