

The Origins of Scala - pageman
http://www.artima.com/scalazine/articles/origins_of_scala.html

======
mgreenbe
Scala 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!

------
mgreenbe
Parts two, three, and four of the interview:

<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/scalas_type_system.html)

[http://www.artima.com/scalazine/articles/pattern_matching.ht...](http://www.artima.com/scalazine/articles/pattern_matching.html)

Edited: to fix hyperlinks.

