Scala
Empfohlene Schulungsdauer: 3 Tage, insgesamt 24 Unterrichtsstunden à 45 Minuten
Kursziele
Scala ist eine moderne, objektorientierte und funktionale Programmiersprache auf der Java-Laufzeitumgebung. Bekanntester Nutzer dürfte der Mikro-Blogging-Dienst Twitter sein, der seine hochperformante Nachrichtenverarbeitung via Scala realisiert. Mit Scala lässt sich klassisch imperativ programmieren, und die Applikationen haben Zugriff auf die gesamte Java-Klassenbibliothek. Gleichzeitig werden Entwicklern alle Möglichkeiten einer funktionalen Programmiersprache geboten, vor allem bei der Entwicklung von nebenläufigen Programmen, um hochperformante Anwendungen auf Multi-Core-Prozessoren zu realisieren. Teilnehmer des Scala-Seminars bekommen einen umfangreichen Einblick in die Sprache und die verfügbaren Standardbibliotheken. Spezielle Anwendungsfälle aus der parallelen und funktionalen Programmierung zeigen den Reiz der Sprache, den auch Java-Vater James Gosling mit den Worten ›Wenn ich eine andere Programmiersprache als Java wählen würde, wäre es Scala‹ lobt. Groovy-Erfinder James Strachan spannt den Bogen weiter: ›Wenn mir jemand 2003 das Scala-Buch von Martin Odersky, Lex Spoon und Bill Venners gezeigt hätte, hätte ich vermutlich nie Groovy entwickelt‹.
Zielgruppe
Software-EntwicklerKursvoraussetzungen
Gute Programmiererfahrung in einer objektorientierten Programmiersprache, bevorzugt JavaSeminarinhalte
![[LOGO]](../../images/seminare/logos/scala.gif)
Einstieg in Scala
- Entstehung von Scala
- Dokumentationen
- Scala-Installation, benötigte Java-Archive, Scala Interpreter
- Klassendeklaration, Objekt, Singleton
- Definitionen von Variablen, einfache Funktionen schreiben, Parameter
- Literale, Ausdrücke, Tupel, Blöcke
- Kontrollstrukturen
- Entwicklungsumgebungen: Plugins für Eclipse, NetBeans und IntelliJ
Funktionale Programmierung mit Scala
- Theoretische Grundlagen
- Mutable versus Immutable
- Anweisungen sind Ausdrücke
- Statisches Typsystem von Scala
- Funktionen erster Ordnung und Funktionen höherer Ordnung
- Rekursion, geschachtelte Funktionen, anonyme Funktionen, Currying, teilweise angewandte Funktionen
- Generatoren, Definitionen, Filter
- Scala und der Einfluss anderer Programmiersprachen
Fortgeschrittene objektorientierte Konzepte in Scala
- Objektmodell von Scala
- Typen in Scala: Wertetypen und Nicht-Wertetypen
- Klassen und Objekte, Überschreiben, dynamisches Binden, Polymorphie
- Typkonformität, Konvertierung
- Compilationseinheiten, Pakete, Imports
- Überladen von Operatoren, Operatoren sind Funktionen
- Sequenzen
- Abstraktionen, Traits, Mixins, Views
- Generics und Varianz
- Case-Klassen, Pattern Matching, reguläre Ausdrücke
Scala-Bibliotheken
- Anbindung der Java-Standard-Bibliotheken und Scala-API
-Predef-Objekt
- Rich-Wrapper
- String-Klasse
- Kollektionen: Set, Map, List
- Listen im Detail, funktionale Operationen auf Listen
- XML-Ausdrücke, XML-Pattern und XML-Verarbeitung
Parallele Programmierung mit Scala
- Herausforderungen bei der parallelen Programmierung
- Aktoren und Nachrichtenaustausch
- Asynchrone und synchrone Nachrichten
- Timeouts
- Spezialisierung von Aktoren
- Aktoren und Threads
Weiterführende Themen
- Testen von Scala-Applikationen
- Performance
- Scala-API mitscaladoc
- Servlet-Entwicklung mit Scala
- Ausblick auf das Web-Framework Lift
Eingesetze Seminar-Software
Standardmäßig basiert der Kurs auf Scala 2.7.x.
Schlagwörter
![Zu einem Bookmark-Anbieter hinzufügen [Addthis]](../../images/bookmarks/addthis.png)
![Zu Google Bookmarks hinzufügen [Google Bookmarks]](../../images/bookmarks/google.png)
![Zu Yahoo! Bookmarks hinzufügen [Yahoo! Bookmarks]](../../images/bookmarks/yahoo.png)
![Zu Delicius hinzufügen [Delicius]](../../images/bookmarks/delicious.png)
![Zu Mister Wong hinzufügen [Mister Wong]](../../images/bookmarks/misterwong.png)