Vorwort
Vorwort, Dritte Auflage
Zukunftsweisende Programmiersprachen haben es nicht immer geschafft. Doch Scala überlebt nicht nur, sondern gedeiht. Manche Sprachen werden nie kommerziell genutzt. Die ersten paar Unternehmen, die mutig genug sind, ihr Geschäft auf deine Sprache zu setzen, sind schwer zu finden. Andere Sprachen bekommen ihre Zeit in der kommerziellen Sonne, schaffen es aber nicht, sich zu behaupten, wie Common Lisp und Smalltalk. Sie leben als Einflüsse weiter, ihre Gene sind in den heutigen Sprachen immer noch zu erkennen. Das ist eine Art von Erfolg, aber nicht das, was die Schöpfer wollten.
Scala trotzt diesen Trends nun schon seit über einem Jahrzehnt. Etwa 2008 brachten Unternehmen wie Twitter und Foursquare Scala aus dem akademischen Bereich in die kommerzielle Welt. Seitdem werden der Arbeitsmarkt und das Ökosystem von Scala nicht nur von unabhängigen Enthusiasten, sondern auch von Open-Source-Projekten wie Spark und Kafka sowie von Unternehmen wie denjenigen, die im Beirat des Scala Centers vertreten sind, getragen, die zusammen eine beeindruckende Anzahl von Scala-Programmierern beschäftigen.
Kann Scala das weiterhin schaffen? Sein Schöpfer, Martin Odersky, glaubt das, und ich stimme ihm zu. Scala 3, das 2021 auf den Markt kommt, ist ein kühner Sprung in die Zukunft der Programmierung. Andere Sprachen werden in den kommenden Jahren aufholen müssen.
Und das auch nicht zum ersten Mal. In den Jahren seit dem ersten Erfolg von Scala ist Java aus seinem langen Dornröschenschlaf erwacht und hat eine Reihe von Scala-inspirierten Sprachfunktionen eingeführt. Auch Swift und Rust zeigen den Einfluss von Scala. Es sind auch direkte Konkurrenten aufgetaucht. Kotlin bleibt ein Konkurrent, während andere, wie Ceylon, bereits auf der Strecke geblieben sind.
Wie viel Innovation ist zu viel? Wie viel ist zu wenig? Entdecker/innen müssen mutig sein, aber nicht tollkühn. In neuen Meeren und auf neuen Ländereien lauern Gefahren, aber du wirst nie etwas entdecken, wenn du einfach zu Hause bleibst.
Scala setzt darauf, dass es nicht ausreicht, ein besseres Java zu sein, um die Bedürfnisse der Programmierer zu erfüllen - nicht einmal, wenn dieses bessere Java Java selbst ist. Mit Java zu konkurrieren, ist nicht mehr genug. Wenn das Wachstum von Scala in den letzten Jahren etwas abgeflacht ist, liegt das vielleicht daran, dass es auch bei Java so ist und dass wir bereits alle Java-Programmierer bekehrt haben, die wir zu bekehren hoffen. Wir müssen zeigen, dass Scala auch eine mehr als würdige Alternative zu den heutigen Mainstream-Sprachen wie Python und TypeScript und zu aufstrebenden Sprachen wie Rust und Haskell ist.
Der Hauptgrund, warum Scala immer noch wichtig ist und es sich lohnt, dafür zu kämpfen, ist, dass es die funktionale Programmierung vollständig umarmt. Ja, es ist wunderbar, dass Java Lambdas und Pattern-Matching hinzugefügt hat - Funktionen, die aus der funktionalen Tradition stammen. Aber funktionale Programmierung ist nicht nur eine Ansammlung von einzelnen Funktionen. Es ist ein Paradigmenwechsel, eine neue Art zu denken. Wenn du Scala oder eine andere funktionale Sprache lernst, wirst du dich fragen, wie du jemals anders programmiert hast.
Scala zu lernen bedeutet nicht, dass du alles vergessen musst, was du bereits weißt. Scala verschmilzt die Traditionen der objektorientierten und funktionalen Programmierung zu einer einzigen Sprache, aus der du nie herauswachsen wirst. Und obwohl Scala sein eigenes lebendiges Ökosystem von Bibliotheken bietet, können Scala-Programmierer/innen auch die riesigen Welten von Java und JavaScript nutzen.
Das Design von Scala 3 behält den gleichen Pragmatismus bei, der schon immer entscheidend für seinen Erfolg war. Meine Teamkollegen und ich bei Lightbend sowie unsere Kollegen im Scala Center und in Martins Labor arbeiten hart daran, die Migration auf neue Versionen reibungslos zu gestalten, auch wenn wir dir an einem Weihnachtsmorgen neue Spielzeuge zum Spielen anbieten.
Es ist wirklich bemerkenswert, wie viele Teile des Scala-Ökosystems den Sprung bereits geschafft haben. Scala 3 ist erst diesen Monat erschienen, aber es gibt bereits eine Vielzahl von Bibliotheken und Werkzeugen dafür.
Egal, ob du ganz neu in Scala bist oder den Übergang von 2 auf 3 schaffst, Dean Wampler ist der ideale Reisebegleiter. Bei manchen Scala-Büchern hast du das Gefühl, wieder in einem Klassenzimmer zu sitzen. Bei diesem Buch hast du das Gefühl, dass du mit einem hilfreichen Experten zusammen programmierst. Der Text strotzt nur so vor praktischem Know-how, mit all den Feinheiten und dem, was du wissen musst, wenn du tatsächlich an der Tastatur sitzt und versuchst, etwas zum Laufen zu bringen. Dean begeistert damit, wie das Programmieren in Scala sein sollte, und ist offen darüber, wie es tatsächlich ist. Er gibt dir das Morgen und das Heute.
Was auch immer die Zukunft für Scala bereithält, sie wird immer als die Sprache bekannt sein, die funktionale Programmierung von einem gewagten Experiment zu einer praktischen, alltäglichen Realität gemacht hat.
Mein sehnlichster Wunsch für dieses Buch ist, dass es den Weg in die Hände einer neuen Generation von Scala-Programmierern findet. Diese neue Mannschaft wird jünger und vielfältiger sein als die alte Garde und weniger von der Vergangenheit der Programmierung belastet. Professoren: Bringt euren Studenten Scala bei! Ich kann es kaum erwarten, zu sehen, was sie entwickeln werden.
Vorwort, erste und zweite Auflage
Wenn es ein gemeinsames Thema in meiner Karriere als Programmierer gibt, dann ist es die Suche nach besseren Abstraktionen und besseren Werkzeugen, die das Handwerk des Software-Schreibens unterstützen. Im Laufe der Jahre habe ich eine Eigenschaft mehr als alle anderen geschätzt: die Zusammensetzbarkeit. Wenn man Code mit einer guten Zusammensetzbarkeit schreiben kann, bedeutet das in der Regel, dass andere Eigenschaften, die wir Softwareentwickler schätzen - wie Orthogonalität, lose Kopplung und hohe Kohäsion - bereits vorhanden sind. Es ist alles miteinander verbunden.
Als ich vor einigen Jahren Scala entdeckte, hat mich vor allem seine Kompositionsfähigkeit beeindruckt.
Durch einige sehr elegante Designentscheidungen und einfache, aber mächtige Abstraktionen, die aus der objektorientierten und funktionalen Programmierung stammen, ist es Martin Odersky gelungen, eine Sprache mit hoher Kohäsion und orthogonalen, tiefen Abstraktionen zu schaffen, die in allen Dimensionen des Softwaredesigns zur Kompatibilität einlädt. Scala ist wirklich eine SCAlable LAnguage, die mit der Nutzung skaliert, vom Scripting bis hin zu großen Unternehmensanwendungen und Middleware.
Scala wurde in der akademischen Welt geboren, hat sich aber zu einer pragmatischen und praktischen Sprache entwickelt, die für den Einsatz in der Praxis bestens geeignet ist.
Was mich an diesem Buch am meisten begeistert, ist, dass es so praktisch ist. Dean hat fantastische Arbeit geleistet, indem er die Sprache nicht nur durch interessante Diskussionen und Beispiele erklärt, sondern sie auch in den Kontext der realen Welt stellt. Es ist für den Programmierer geschrieben, der etwas erreichen will.
Ich hatte das Vergnügen, Dean vor einigen Jahren kennenzulernen, als wir beide Teil der aspektorientierten Programmiergemeinschaft waren. Dean hat eine seltene Mischung aus tiefgründigem, analytischem akademischem Denken und einer pragmatischen, umsetzungsorientierten Mentalität.
Du wirst lernen, wie du wiederverwendbare Komponenten mit Mixin- und Funktionskomposition schreibst; wie du verteilte Anwendungen mit Akka schreibst; wie du fortgeschrittene Funktionen in Scala wie Makros und höherwertige Typen effektiv nutzt; wie du die reichhaltige, flexible und ausdrucksstarke Syntax von Scala nutzt, um domänenspezifische Sprachen zu entwickeln; wie du deinen Scala-Code effektiv testest; wie du mit Scala deine Big-Data-Probleme vereinfachst; und vieles mehr.
Genieße die Fahrt. Das habe ich auf jeden Fall.
Get Scala programmieren, 3. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.