Scala
Sedan Java 6 släpptes i december 2006 har det varit lite tyst runt Java. Visst, ekosystemet runt Java kokar över av aktivitet, och det finns mer open source projekt skrivna i Java än i något annat språk. Men själva språket Java har för den oinvigde sett lite övergivet ut, troligen beroende på att ett flertal nyckelpersoner på Sun bytt jobb, och att Sun kanske inte haft de resurser det brukar ha. I detta vakuum har ett flertal spännande språk klivit in, bland annat Groovy, JRuby, Jython , Clojure och Scala. Det som utmärker Scala är:
- Open source
- Rent objektorienterat – klasser, arv, objekt och traits
- Funktionellt – anonyma och högre ordningens funktioner, closures, currying
- Ett exceptionellt kraftfullt typsystem, med statisk och stark typning, samt typ-inferens
- Pattern matching
- Operatoröverlagring
- Fullt stöd för XML i själva Scala koden
- Kompakt syntax – antalet rader blir ofta ca hälften (eller ännu mindre) mot motsvarande Java program
- Ett kraftfullt webbramverk med namnet lift
- Ett actors-bibliotek som liknar det i Erlang
- Utmärkt prestanda som ofta står sig väl i jämförelse med Java
Integrationen med Java är mycket väl genomförd:
- En Scalaklass kan ärva från alla klasser och interface i Java
- Den typ av generics som finns i Java stödjs även i Scala
- Kod skriven i Scala kan anropa kod i Java utan problem
- Scalas kompilator, scalac, genererar .class filer som körs på Javas virtuella maskin
- Eclipse, NetBeans och IntelliJ har alla pluginer för Scala
Scala lämpar sig dessutom väl för att skapa domänspecifika språk (DSL). De vanligaste datastrukturerna är oföränderliga (immutable) vilket är en utmärkt start om den ska exekvera bra mot flera kärnor. På Crisp har vi följt Scala sedan 2007. Flera av oss är aktiva på den svenska mailinglistan Scala-Sweden och har hållit interna och externa Scala-kurser, bland annat på JavaForum i Göteborg 2008. Mats Henricson bloggar dessutom ofta om Scala. Vi tar gärna emot förfrågningar om Scala, utbildningar eller projekt.
Läs mer om Scala
- Den officiella webben för Scala
- En mycket bra jämförelse mellan hur man gör i Scala jämfört med Java
- Wikipedias artikel om Scala
- Ted Newards artiklar om Scala på IBM developerWorks
- Den officiella aggregeringen av bloggar om Scala