SlideShare uma empresa Scribd logo
1 de 2
Baixar para ler offline
Plus CD!                       Stellenmarkt   S. 62   Das Tutorial: Lose Kopplung mit Mule                     S. 71

8.09
                                                                     Deutschland € 7,50 Österreich € 8,60 Schweiz sFr 15,80
Java Magazin




                          Java • Architekturen • SOA • Agile                            www.javamagazin.de      ALLE IN
                                                                                                                          FOS ZU
                                                                                                                                   R


    CD-Inhalt                                                                                                    AB SEIT
                                                                                                                           E 29
       Apache Commons
       Compress
       Grails 1.1.1
       Spring dm 1.2


                        Project Mojarra
                        Scala 2.7.5
                        Mule 2.2.1



                       Ed Burns:
                       Secrets of
                                                 Die nächste Generation der
                                                 Webentwicklung 42
                       the Rockstar
                       Programmers


     Session von der
     JAX 2009

                         Alle CD-Infos    3

     Java Core
     OSGi on Scala
     DSLs mit ScalaModules       18

     XML vs. Annotations
     Sind Annotations die
     erhoffte Rettung? 37

     Tools                                       Quo vadis JSF?
     Java-Spracherweiterung
     mit JetBrains MPS                           Interview mit Ed Burns                  52
     Effizient DSLs erstellen   78

     Enterprise
     Garbage Collector
                                                 Grails in Action
     Das unbekannte Wesen        65              Erfahrungsbericht: WerKannWann.de                                    56
 D 45 86 7




                                                 OSGi mit Spring dm
                                                 Viele Köche verderben (nicht) den Brei                                 24
Bücher Magazin



David Pollak


Beginning Scala

                  Gleich nachdem „Beginnig Scala“ von David           einem Chat-Server und Transaktionen auf Basis von Actors: Sehr
                  Pollak veröffentlicht wurde, lud ich mir das        aufschlussreich.
                  druckfrische eBook herunter. Der Autor ist Vater    Bisher betrachtete der Autor die Scala-Welt mit der Brille des
                  des innovativen Lift-Webframeworks und prägt        Library Consumers, für den es darum geht, die Einfachheit von
                  die Scala Community maßgeblich. Da ich David        Scala und den Komfort mächtiger Libraries zu nutzen, um sehr
                  persönlich kenne und seine anschauliche Art zu      produktiv Anwendungscode zu schreiben. In den nächsten zwei
erklären sehr schätze, hatte ich hohe Erwartungen. Soviel vorweg:     Kapiteln setzt David Pollak die Brille des Library Producers auf,
Sie wurden voll und ganz erfüllt.                                     der die Mächtigkeit von Scala nutzt, um Libraries und Domain
Das Buch beginnt mit einer sehr gelungenen Motivation: „Wa-           Specific Languages zu erstellen. Dabei werden fortschrittliche
rum Scala?“ beantwortet David Pollak mit einem Abriss seiner          Features wie Implicit Conversions, Mixins mit Traits, Variance, Par-
Programmiererfahrungen mit C/C++, Java und Ruby/Rails.                ser Combinators etc. unter die Lupe genommen. Überwiegend
Wie erwartet, fiel mir sofort der lockere Schreibstil auf, ganz auf   sind auch diese Kapitel sehr gelungen, einzig das Beispiel der
persönliche Ansprache ausgerichtet. Ein Auszug mit Botschaft:         Persistenzschicht fällt zu komplex aus.
„Let's go and have some fun“. Es folgen typische erste Gehver-        Das Buch endet mit dem Kapitel „Scaling Your Team“, das or-
suche unter Anleitung, natürlich das obligatorische „Hello World“     ganisatorische Fragen und Soft Facts anspricht: Welche Tools?
sowie ein etwas anspruchsvolleres Programm, das einige der            Scala und mein Projektteam? Welche Best Practices? Und be-
Besonderheiten von Scala zeigt. Für mich ist es gut dosiert, so-      sonders interessant: Wie kann ich Scala in meinem Unternehmen
dass Lust auf Mehr aufkommt und kein Frust über zu viel Neues.        verkaufen?
Anschließend eine – Originalzitat – „long and boring tour“ durch      Fazit: Das Buch ist nicht nur empfehlenswert, sondern ein abso-
die Skala-Syntax und grundlegende Konzepte. Aufgrund der sehr         lutes Muss für alle Scala-Interessierten. Es ist inhaltlich gelungen
hohen Beispieldichte und der Konzentration auf das Wesentliche        und bringt alle wichtigen Grundlagen. Darüber hinaus glänzt es
aus meiner Sicht, ist es aber recht kurzweilig und wiederum gut       aus didaktischer Sicht: Immer genügend Tiefe, um das Interesse
dosiert. Das darauffolgende Kapitel beginnt mit einem Plädo-          zu wecken, aber stets so anschaulich, um „dabei bleiben“ zu kön-
yer für Immutable Objects und deren Vorteile in Bezug auf Per-        nen. Für mich ist „Beginning Scala“ eines der besten IT-Fachbü-
formance und Concurrency. Dann wird anhand der mächtigen              cher, das ich je in den Händen hielt. Viel Spaß beim Lesen!
Collection-Bibliothek die funktionale Programmierung vor- und                                                            Heiko Seeberger
imperativem Java-Code gegenübergestellt: Sehr überzeugend!            David Pollak   Beginning Scala 350 Seiten   24,95 Euro
Scalas mächtiger XML-Support befindet sich aufgrund seiner            Apress 2009     ISBN 978-1430219897
Nähe zu den Collections auch in diesem Kapitel und wird sehr
anschaulich dargestellt. Zu guter Letzt gibt es noch ein Beispiel
für Lock-freie Multi-Thread-Programmierung mittels Immutable
Objects.
Danach geht es um wesentliche Details der funktionalen Pro-
grammierung mit Scala, u. a. um Funktionen als „echte“ Objekte,
Partially Applied Functions etc. Besonders erhellend fand ich die
Beispiele für Call-by-Name-Parameter und das Erstellen eigener
Kontrollstrukturen. Spätestens jetzt werden die meisten Leser
das Buch beiseite legen, aber nicht, weil es ihnen missfällt, son-
dern weil sie soviel Enthusiasmus getankt haben, dass sie selbst
in die Tasten greifen müssen. Aber das Weiterlesen lohnt sich,
                                                                                                          Anzeige
denn das nächste Kapitel bringt mit Pattern Matching vielleicht
DAS Scala-Feature schlechthin. Wiederum wird sehr anschaulich
erklärt, wie Scala objektorientierte Strukturierung und funktiona-
le Dekomposition höchst nutzbringend kombiniert. Dann kommt
Concurrency mit Actors, eine Scala-Paradedisziplin, sehr aus-
führlich an die Reihe. Ein Beispiel, bei dem das Listener Pattern
klassisch und mit Actors implementiert wird, zeigt die Vorteile
des asynchronen Actor Messaging: Synchronisierung ist nicht
erforderlich, um Fehler leichter zu vermeiden. Weiter geht es mit




www.JAXenter.de

Mais conteúdo relacionado

Semelhante a JM 08/09 - Beginning Scala Review

Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken Martin Gfeller
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!OPEN KNOWLEDGE GmbH
 
BED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerBED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerPatrick Baumgartner
 
Day CQ 5.3 WCM - Was ist neu
Day CQ 5.3 WCM - Was ist neuDay CQ 5.3 WCM - Was ist neu
Day CQ 5.3 WCM - Was ist neuCédric Hüsler
 
Supersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusSupersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusOPEN KNOWLEDGE GmbH
 
Oracle vs. PostgreSQL - Unterschiede in 45 Minuten
Oracle vs. PostgreSQL - Unterschiede in 45 MinutenOracle vs. PostgreSQL - Unterschiede in 45 Minuten
Oracle vs. PostgreSQL - Unterschiede in 45 MinutenMarkus Flechtner
 
RoofTop Brains & BBQ: Ein Gästbuch für China
RoofTop Brains & BBQ: Ein Gästbuch für ChinaRoofTop Brains & BBQ: Ein Gästbuch für China
RoofTop Brains & BBQ: Ein Gästbuch für ChinaJohann-Peter Hartmann
 
Entwicklung für OS X und iOS mit Ruby
Entwicklung für OS X und iOS mit RubyEntwicklung für OS X und iOS mit Ruby
Entwicklung für OS X und iOS mit RubyBoris Bügling
 
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & CoReady for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & CoOPEN KNOWLEDGE GmbH
 
Archivistavm OpenTuesday Digicomp
Archivistavm OpenTuesday DigicompArchivistavm OpenTuesday Digicomp
Archivistavm OpenTuesday DigicompDigicomp Academy AG
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013Oliver Zeigermann
 
Java script security for java developers
Java script security for java developersJava script security for java developers
Java script security for java developersJohann-Peter Hartmann
 
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederJSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederChristoph Pickl
 
Nebenläufigkeit mit Kotlins Koroutinen
Nebenläufigkeit mit Kotlins KoroutinenNebenläufigkeit mit Kotlins Koroutinen
Nebenläufigkeit mit Kotlins KoroutinenJörn Dinkla
 
Java Magazin 5 / 2010 - Twitter nachgebaut mit Lift
Java Magazin 5 / 2010 - Twitter nachgebaut mit LiftJava Magazin 5 / 2010 - Twitter nachgebaut mit Lift
Java Magazin 5 / 2010 - Twitter nachgebaut mit LiftJohannes Hohenbichler
 
Article - JDK 8 im Fokus der Entwickler
Article - JDK 8 im Fokus der EntwicklerArticle - JDK 8 im Fokus der Entwickler
Article - JDK 8 im Fokus der EntwicklerWolfgang Weigend
 
Startimpuls at Microsoft w/ IFJ
Startimpuls at Microsoft w/ IFJStartimpuls at Microsoft w/ IFJ
Startimpuls at Microsoft w/ IFJReto Laemmler
 

Semelhante a JM 08/09 - Beginning Scala Review (19)

Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!
 
BED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerBED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als Entwickler
 
Enterprise JS
Enterprise JS Enterprise JS
Enterprise JS
 
Day CQ 5.3 WCM - Was ist neu
Day CQ 5.3 WCM - Was ist neuDay CQ 5.3 WCM - Was ist neu
Day CQ 5.3 WCM - Was ist neu
 
Supersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusSupersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: Quarkus
 
Oracle vs. PostgreSQL - Unterschiede in 45 Minuten
Oracle vs. PostgreSQL - Unterschiede in 45 MinutenOracle vs. PostgreSQL - Unterschiede in 45 Minuten
Oracle vs. PostgreSQL - Unterschiede in 45 Minuten
 
RoofTop Brains & BBQ: Ein Gästbuch für China
RoofTop Brains & BBQ: Ein Gästbuch für ChinaRoofTop Brains & BBQ: Ein Gästbuch für China
RoofTop Brains & BBQ: Ein Gästbuch für China
 
Entwicklung für OS X und iOS mit Ruby
Entwicklung für OS X und iOS mit RubyEntwicklung für OS X und iOS mit Ruby
Entwicklung für OS X und iOS mit Ruby
 
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & CoReady for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
 
Archivistavm OpenTuesday Digicomp
Archivistavm OpenTuesday DigicompArchivistavm OpenTuesday Digicomp
Archivistavm OpenTuesday Digicomp
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
 
Java script security for java developers
Java script security for java developersJava script security for java developers
Java script security for java developers
 
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederJSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael Greifeneder
 
Nebenläufigkeit mit Kotlins Koroutinen
Nebenläufigkeit mit Kotlins KoroutinenNebenläufigkeit mit Kotlins Koroutinen
Nebenläufigkeit mit Kotlins Koroutinen
 
Java Magazin - Lift
Java Magazin - LiftJava Magazin - Lift
Java Magazin - Lift
 
Java Magazin 5 / 2010 - Twitter nachgebaut mit Lift
Java Magazin 5 / 2010 - Twitter nachgebaut mit LiftJava Magazin 5 / 2010 - Twitter nachgebaut mit Lift
Java Magazin 5 / 2010 - Twitter nachgebaut mit Lift
 
Article - JDK 8 im Fokus der Entwickler
Article - JDK 8 im Fokus der EntwicklerArticle - JDK 8 im Fokus der Entwickler
Article - JDK 8 im Fokus der Entwickler
 
Startimpuls at Microsoft w/ IFJ
Startimpuls at Microsoft w/ IFJStartimpuls at Microsoft w/ IFJ
Startimpuls at Microsoft w/ IFJ
 

Mais de Heiko Seeberger

Scaladays 2011 - The Ease of Scalaz
Scaladays 2011 - The Ease of ScalazScaladays 2011 - The Ease of Scalaz
Scaladays 2011 - The Ease of ScalazHeiko Seeberger
 
RheinJUG 2010 - Sprechen Sie Scala?
RheinJUG 2010 - Sprechen Sie Scala?RheinJUG 2010 - Sprechen Sie Scala?
RheinJUG 2010 - Sprechen Sie Scala?Heiko Seeberger
 
Objektforum 2010 - Sprechen Sie Scala?
Objektforum 2010 - Sprechen Sie Scala?Objektforum 2010 - Sprechen Sie Scala?
Objektforum 2010 - Sprechen Sie Scala?Heiko Seeberger
 
OSGi DevCon Europe 09 - OSGi on Scala
OSGi DevCon Europe 09 - OSGi on ScalaOSGi DevCon Europe 09 - OSGi on Scala
OSGi DevCon Europe 09 - OSGi on ScalaHeiko Seeberger
 
JAX 09 - OSGi Service Components Models
JAX 09 - OSGi Service Components ModelsJAX 09 - OSGi Service Components Models
JAX 09 - OSGi Service Components ModelsHeiko Seeberger
 
Eclipse Magazin 12 - Design by Contract
Eclipse Magazin 12 - Design by ContractEclipse Magazin 12 - Design by Contract
Eclipse Magazin 12 - Design by ContractHeiko Seeberger
 
Eclipse Magazin 16 - Die Stärke der Drei
Eclipse Magazin 16 - Die Stärke der DreiEclipse Magazin 16 - Die Stärke der Drei
Eclipse Magazin 16 - Die Stärke der DreiHeiko Seeberger
 
Eclipse Magazin15 - Performance Logging
Eclipse Magazin15 - Performance LoggingEclipse Magazin15 - Performance Logging
Eclipse Magazin15 - Performance LoggingHeiko Seeberger
 
Eclipse Magazin 14 - Getting hooked on Equinox
Eclipse Magazin 14 - Getting hooked on EquinoxEclipse Magazin 14 - Getting hooked on Equinox
Eclipse Magazin 14 - Getting hooked on EquinoxHeiko Seeberger
 
Eclipse Magazin 12 - Security does matter
Eclipse Magazin 12 - Security does matterEclipse Magazin 12 - Security does matter
Eclipse Magazin 12 - Security does matterHeiko Seeberger
 
EclipseCon 08 - Agile RCP
EclipseCon 08 - Agile RCPEclipseCon 08 - Agile RCP
EclipseCon 08 - Agile RCPHeiko Seeberger
 
W-JAX 07 - AOP im Einsatz mit OSGi und RCP
W-JAX 07 - AOP im Einsatz mit OSGi und RCPW-JAX 07 - AOP im Einsatz mit OSGi und RCP
W-JAX 07 - AOP im Einsatz mit OSGi und RCPHeiko Seeberger
 
W-JAX 08 - Declarative Services versus Spring Dynamic Modules
W-JAX 08 - Declarative Services versus Spring Dynamic ModulesW-JAX 08 - Declarative Services versus Spring Dynamic Modules
W-JAX 08 - Declarative Services versus Spring Dynamic ModulesHeiko Seeberger
 

Mais de Heiko Seeberger (20)

Scaladays 2011 - The Ease of Scalaz
Scaladays 2011 - The Ease of ScalazScaladays 2011 - The Ease of Scalaz
Scaladays 2011 - The Ease of Scalaz
 
JavaSPEKTRUM - Scala 3
JavaSPEKTRUM - Scala 3JavaSPEKTRUM - Scala 3
JavaSPEKTRUM - Scala 3
 
JavaSPEKTRUM - Scala 2
JavaSPEKTRUM - Scala 2JavaSPEKTRUM - Scala 2
JavaSPEKTRUM - Scala 2
 
RheinJUG 2010 - Sprechen Sie Scala?
RheinJUG 2010 - Sprechen Sie Scala?RheinJUG 2010 - Sprechen Sie Scala?
RheinJUG 2010 - Sprechen Sie Scala?
 
Objektforum 2010 - Sprechen Sie Scala?
Objektforum 2010 - Sprechen Sie Scala?Objektforum 2010 - Sprechen Sie Scala?
Objektforum 2010 - Sprechen Sie Scala?
 
W-JAX 09 - ScalaModules
W-JAX 09 - ScalaModulesW-JAX 09 - ScalaModules
W-JAX 09 - ScalaModules
 
W-JAX 09 - Lift
W-JAX 09 - LiftW-JAX 09 - Lift
W-JAX 09 - Lift
 
OSGi DevCon Europe 09 - OSGi on Scala
OSGi DevCon Europe 09 - OSGi on ScalaOSGi DevCon Europe 09 - OSGi on Scala
OSGi DevCon Europe 09 - OSGi on Scala
 
JAX 09 - OSGi on Scala
JAX 09 - OSGi on ScalaJAX 09 - OSGi on Scala
JAX 09 - OSGi on Scala
 
JAX 09 - OSGi Service Components Models
JAX 09 - OSGi Service Components ModelsJAX 09 - OSGi Service Components Models
JAX 09 - OSGi Service Components Models
 
JAX 08 - Agile RCP
JAX 08 - Agile RCPJAX 08 - Agile RCP
JAX 08 - Agile RCP
 
Eclipse Magazin 12 - Design by Contract
Eclipse Magazin 12 - Design by ContractEclipse Magazin 12 - Design by Contract
Eclipse Magazin 12 - Design by Contract
 
JUGM 07 - AspectJ
JUGM 07 - AspectJJUGM 07 - AspectJ
JUGM 07 - AspectJ
 
Eclipse Magazin 16 - Die Stärke der Drei
Eclipse Magazin 16 - Die Stärke der DreiEclipse Magazin 16 - Die Stärke der Drei
Eclipse Magazin 16 - Die Stärke der Drei
 
Eclipse Magazin15 - Performance Logging
Eclipse Magazin15 - Performance LoggingEclipse Magazin15 - Performance Logging
Eclipse Magazin15 - Performance Logging
 
Eclipse Magazin 14 - Getting hooked on Equinox
Eclipse Magazin 14 - Getting hooked on EquinoxEclipse Magazin 14 - Getting hooked on Equinox
Eclipse Magazin 14 - Getting hooked on Equinox
 
Eclipse Magazin 12 - Security does matter
Eclipse Magazin 12 - Security does matterEclipse Magazin 12 - Security does matter
Eclipse Magazin 12 - Security does matter
 
EclipseCon 08 - Agile RCP
EclipseCon 08 - Agile RCPEclipseCon 08 - Agile RCP
EclipseCon 08 - Agile RCP
 
W-JAX 07 - AOP im Einsatz mit OSGi und RCP
W-JAX 07 - AOP im Einsatz mit OSGi und RCPW-JAX 07 - AOP im Einsatz mit OSGi und RCP
W-JAX 07 - AOP im Einsatz mit OSGi und RCP
 
W-JAX 08 - Declarative Services versus Spring Dynamic Modules
W-JAX 08 - Declarative Services versus Spring Dynamic ModulesW-JAX 08 - Declarative Services versus Spring Dynamic Modules
W-JAX 08 - Declarative Services versus Spring Dynamic Modules
 

JM 08/09 - Beginning Scala Review

  • 1. Plus CD! Stellenmarkt S. 62 Das Tutorial: Lose Kopplung mit Mule S. 71 8.09 Deutschland € 7,50 Österreich € 8,60 Schweiz sFr 15,80 Java Magazin Java • Architekturen • SOA • Agile www.javamagazin.de ALLE IN FOS ZU R CD-Inhalt AB SEIT E 29 Apache Commons Compress Grails 1.1.1 Spring dm 1.2 Project Mojarra Scala 2.7.5 Mule 2.2.1 Ed Burns: Secrets of Die nächste Generation der Webentwicklung 42 the Rockstar Programmers Session von der JAX 2009 Alle CD-Infos 3 Java Core OSGi on Scala DSLs mit ScalaModules 18 XML vs. Annotations Sind Annotations die erhoffte Rettung? 37 Tools Quo vadis JSF? Java-Spracherweiterung mit JetBrains MPS Interview mit Ed Burns 52 Effizient DSLs erstellen 78 Enterprise Garbage Collector Grails in Action Das unbekannte Wesen 65 Erfahrungsbericht: WerKannWann.de 56 D 45 86 7 OSGi mit Spring dm Viele Köche verderben (nicht) den Brei 24
  • 2. Bücher Magazin David Pollak Beginning Scala Gleich nachdem „Beginnig Scala“ von David einem Chat-Server und Transaktionen auf Basis von Actors: Sehr Pollak veröffentlicht wurde, lud ich mir das aufschlussreich. druckfrische eBook herunter. Der Autor ist Vater Bisher betrachtete der Autor die Scala-Welt mit der Brille des des innovativen Lift-Webframeworks und prägt Library Consumers, für den es darum geht, die Einfachheit von die Scala Community maßgeblich. Da ich David Scala und den Komfort mächtiger Libraries zu nutzen, um sehr persönlich kenne und seine anschauliche Art zu produktiv Anwendungscode zu schreiben. In den nächsten zwei erklären sehr schätze, hatte ich hohe Erwartungen. Soviel vorweg: Kapiteln setzt David Pollak die Brille des Library Producers auf, Sie wurden voll und ganz erfüllt. der die Mächtigkeit von Scala nutzt, um Libraries und Domain Das Buch beginnt mit einer sehr gelungenen Motivation: „Wa- Specific Languages zu erstellen. Dabei werden fortschrittliche rum Scala?“ beantwortet David Pollak mit einem Abriss seiner Features wie Implicit Conversions, Mixins mit Traits, Variance, Par- Programmiererfahrungen mit C/C++, Java und Ruby/Rails. ser Combinators etc. unter die Lupe genommen. Überwiegend Wie erwartet, fiel mir sofort der lockere Schreibstil auf, ganz auf sind auch diese Kapitel sehr gelungen, einzig das Beispiel der persönliche Ansprache ausgerichtet. Ein Auszug mit Botschaft: Persistenzschicht fällt zu komplex aus. „Let's go and have some fun“. Es folgen typische erste Gehver- Das Buch endet mit dem Kapitel „Scaling Your Team“, das or- suche unter Anleitung, natürlich das obligatorische „Hello World“ ganisatorische Fragen und Soft Facts anspricht: Welche Tools? sowie ein etwas anspruchsvolleres Programm, das einige der Scala und mein Projektteam? Welche Best Practices? Und be- Besonderheiten von Scala zeigt. Für mich ist es gut dosiert, so- sonders interessant: Wie kann ich Scala in meinem Unternehmen dass Lust auf Mehr aufkommt und kein Frust über zu viel Neues. verkaufen? Anschließend eine – Originalzitat – „long and boring tour“ durch Fazit: Das Buch ist nicht nur empfehlenswert, sondern ein abso- die Skala-Syntax und grundlegende Konzepte. Aufgrund der sehr lutes Muss für alle Scala-Interessierten. Es ist inhaltlich gelungen hohen Beispieldichte und der Konzentration auf das Wesentliche und bringt alle wichtigen Grundlagen. Darüber hinaus glänzt es aus meiner Sicht, ist es aber recht kurzweilig und wiederum gut aus didaktischer Sicht: Immer genügend Tiefe, um das Interesse dosiert. Das darauffolgende Kapitel beginnt mit einem Plädo- zu wecken, aber stets so anschaulich, um „dabei bleiben“ zu kön- yer für Immutable Objects und deren Vorteile in Bezug auf Per- nen. Für mich ist „Beginning Scala“ eines der besten IT-Fachbü- formance und Concurrency. Dann wird anhand der mächtigen cher, das ich je in den Händen hielt. Viel Spaß beim Lesen! Collection-Bibliothek die funktionale Programmierung vor- und Heiko Seeberger imperativem Java-Code gegenübergestellt: Sehr überzeugend! David Pollak Beginning Scala 350 Seiten 24,95 Euro Scalas mächtiger XML-Support befindet sich aufgrund seiner Apress 2009 ISBN 978-1430219897 Nähe zu den Collections auch in diesem Kapitel und wird sehr anschaulich dargestellt. Zu guter Letzt gibt es noch ein Beispiel für Lock-freie Multi-Thread-Programmierung mittels Immutable Objects. Danach geht es um wesentliche Details der funktionalen Pro- grammierung mit Scala, u. a. um Funktionen als „echte“ Objekte, Partially Applied Functions etc. Besonders erhellend fand ich die Beispiele für Call-by-Name-Parameter und das Erstellen eigener Kontrollstrukturen. Spätestens jetzt werden die meisten Leser das Buch beiseite legen, aber nicht, weil es ihnen missfällt, son- dern weil sie soviel Enthusiasmus getankt haben, dass sie selbst in die Tasten greifen müssen. Aber das Weiterlesen lohnt sich, Anzeige denn das nächste Kapitel bringt mit Pattern Matching vielleicht DAS Scala-Feature schlechthin. Wiederum wird sehr anschaulich erklärt, wie Scala objektorientierte Strukturierung und funktiona- le Dekomposition höchst nutzbringend kombiniert. Dann kommt Concurrency mit Actors, eine Scala-Paradedisziplin, sehr aus- führlich an die Reihe. Ein Beispiel, bei dem das Listener Pattern klassisch und mit Actors implementiert wird, zeigt die Vorteile des asynchronen Actor Messaging: Synchronisierung ist nicht erforderlich, um Fehler leichter zu vermeiden. Weiter geht es mit www.JAXenter.de