From: Christian Szegedy Date: 2004-01-21T09:50:00+09:00 Subject: Re: Proposal for programming language of the year Volkmann, Mark wrote: > I think one of the main points of learning a new language each year is that > it should differ in some significant way from the languages you already > know. Having a syntax that resembles Ruby may disqualify Scala. Ruby's syntax resembles that of C, Perl and Python. This did not disqualify Ruby. Familiar syntax is simply a courtesy of the language designer(s). > > You could say the same about Groovy, however, for those looking for a > language that borrows heavily from Ruby and interacts well with Java, I > suggest looking at Groovy (http://groovy.codehaus.org). I did not find Groovy particularly interesting, since it really seems to be yet another Ruby/Python-clone, written in/for Java. On the other hand, Scala really does have a lot of distinguishing features known from functional languages: static typing with polymorphic types and methods, type inference, pattern matching and pi-calculus for concurrent programming. Over mainstream functional languages, Scala features traits, type bounds, compound types, variance annotations, target typing, value classes, XML integration and a great deal of reflexivity exceeding even that of Ruby. These are unprecedented and well motivated add-ons, significantly improving the programming efficiency. For pragmatic reasons (like Groovy) Scala aims at perfect and seamless interaction with Java classes. This is not a feature on its own right, but it guarantees that Scala is apriori usable for practical programming better than established functional languages which lack important support libraries.