Blog

Erste Schritte mit Scala

Arjan Blokzijl

Aktualisiert Oktober 23, 2025
6 Minuten

Scala hat in den letzten Monaten/Jahren immer mehr an Popularität gewonnen. Seine hybride Natur, sowohl eine imperative als auch eine funktionale Sprache zu sein, zieht sowohl die Java-Welt als auch funktionale Fundamentalisten an, die aus der Welt kommen, in der Aussagen wie x=x+1 mit völligem Unglauben betrachtet werden. Es wurde gesagt, dass Scala 'Java, wie es hätte sein sollen' ist, aber es gibt auch zahlreiche Beschwerden über die Sprache und ihre Eigenschaften (wie z.B. dass sie nicht frei von Seiteneffekten ist, zu komplex, zu viel von allem, zu viel Abstraktion, eine seltsame Syntax usw.). Letzteres könnte sogar ein Beweis für ihre Beliebtheit sein, denn die Leute scheinen die Sprache tatsächlich zu benutzen, anstatt sie nur kurz anzuschauen und müde, aber glücklich aufzuhören, nachdem sie "Hallo Welt" damit geschrieben haben. In diesem Blogbeitrag gebe ich Ihnen einige (hoffentlich) nützliche Tipps, wie Sie am besten anfangen, wenn Sie diese Sprache lernen wollen, die einer der Kandidaten ist, um "unsere nächste große Sprache" zu werden und Java in dieser Hinsicht zu übertreffen.

Wählen Sie eine IDE, oder nicht Das erste Problem, auf das Sie stoßen könnten, ist, dass die verschiedenen Scala-IDE-Plugins noch nicht die Reife der Java-Unterstützung erreicht haben, an die Sie vielleicht gewöhnt sind. Es wird zwar hart daran gearbeitet, aber es kann sein, dass Ihre Lieblings-IDE immer noch Probleme macht und einfriert (so wie ich). Im Moment scheint das Netbeans-Plugin am stabilsten zu sein (dies ist die IDE, die David Pollak, der Schöpfer von Lift, zu verwenden scheint). Wenn Sie Eclipse verwenden, werden Sie wahrscheinlich die Nightly-Build-Version des Scala-Plugins benötigen, da dies die einzige Version ist, die aktiv entwickelt wird. Das bedeutet jedoch, dass Sie den Scala-Stamm benötigen, um damit zu arbeiten. Es gibt auch reichlich Unterstützung für Nicht-IDEs, und kürzlich habe ich versucht, wieder zu Emacs zu wechseln. Für einige weckt das Erinnerungen an die gute alte Universitätszeit, für andere ist es der reinste Horror. Ich muss sagen, dass es für mich nach Jahren der Entwicklung mit Eclipse eine eher beruhigende Erfahrung war. Sie müssen ein paar Vorbereitungen treffen, um ein gutes Scala-Erlebnis zu haben. Einen ausgezeichneten Blogbeitrag, in dem beschrieben wird, wie Sie Ihre Emacs-Umgebung für Scala mit Yasnippet, exuberant ctags und maven einrichten, finden Sie hier. Probieren Sie den Stamm aus Die letzte veröffentlichte Version von Scala ist 2.7.5. Die nächste Version wird 2.8.0 sein, aber ihr Veröffentlichungsdatum ist noch nicht bekannt. Der unschätzbare Paul Philips hat jedoch viele Fehlerkorrekturen und Verbesserungen am Scala-Compiler und an der REPL vorgenommen, die alle im Trunk aushängen. Um die Vorteile voll auszuschöpfen, sollten Sie sich die Quellen ansehen und sie bauen. Beachten Sie, dass die Scala Collections API im Trunk neu gestaltet wurde und sich von der Version 2.7.5 unterscheidet. Um ein gutes Verständnis für das neue Design und die API im Allgemeinen zu bekommen, sollten Sie den neuen SIP (Scala improvement proposal) für Sammlungen lesen. Das Standardwerk ist Programming in Scala, mitverfasst von Martin Odersky (dem Erfinder von Scala) selbst. Dieses Buch ist sehr umfangreich, aber sehr gründlich und enthält viele Beispiele. Ein weiteres Buch, das das Licht der Welt erblickt hat, ist Beginning Scala von David Pollak (bereits erwähnt). Ich habe es nicht gelesen, aber die Rezensionen deuten darauf hin, dass es ebenfalls ein ausgezeichneter Einstieg ist. Weitere Bücher werden in diesem Jahr auf den Markt kommen. Informieren Sie sich über Lift Es ist durchaus möglich, dass Ihnen Scala gefällt und Sie es in Ihrem Unternehmen einsetzen möchten. Lift ist das erste in Scala geschriebene Web-Framework, das von David Pollak entwickelt wurde. Das Herunterladen und Erstellen einer einfachen Webanwendung ist ein Kinderspiel. Die Distribution enthält eine Vielzahl von Maven-Archetypen, mit denen Sie in weniger als fünf Minuten eine einfache Webanwendung erstellen können. Lift hat sein eigenes Datenbank-Mapping-Framework, aber es gibt auch JPA-Unterstützung, wenn Sie das mögen. An der JTA-Integration wird ebenfalls gearbeitet. Lesen Sie einige Artikel Es gibt jede Menge (sowohl akademische als auch etwas weniger akademische) Artikel über Scala. Wenn Sie z.B. wissen wollen, welche Überlegungen hinter dem Design der Scala-Akteursbibliothek stehen, lesen Sie die scala actor papers.Martin Oderskys Homepage enthält auch eine lange Liste seiner Veröffentlichungen.Sie bietet eine Menge Material, das Ihnen einen Einblick in das Design von Scala und seinen Bibliotheken gibt. Wenn Sie nicht so akademisch veranlagt sind und einen Java-Hintergrund haben, versuchen Sie The busy java developer's guide to Scala von Ted Neward. Bietet eine gute Einführung. Lesen Sie einige Blogs. Es gibt viele Blogs, hier sind einige, die ich mag:

  • Daniel Spiewak Viele nützliche Scala-Beispiele.
  • Tony Morris. Er ist der Schöpfer von funktionalem Java und von Scalaz. Aber Vorsicht, wenn Sie sich das ansehen, könnten Sie in den tiefen funktionalen Gewässern landen, in denen Monaden herrschen.
  • Jonas BonerErhat eine Menge Erfahrung mit der Verwendung von Scala in der realen Welt, über die er zum Teil ausführlich gebloggt hat. Die Lektüre lohnt sich.
  • Planet Scala Vielleicht brauchen Sie nicht einmal mehr als dies. Hier werden zahlreiche Blogbeiträge (einschließlich des oben erwähnten) über Scala gesammelt.

IRC beitreten Scala hat einen IRC-Kanal, den Sie hier finden. Wenn Sie bei einem Problem nicht weiterkommen, gibt es immer noch die Mailinglisten, aber im IRC-Kanal tummeln sich täglich viele kompetente Leute. Verwenden Sie lodgeit, um den Code zu zeigen, bei dem Sie nicht weiterkommen, und Sie werden in kürzester Zeit eine Antwort erhalten. Fangen Sie an zu programmieren. Lift könnte die richtige Wahl sein, wenn Sie wirklich einige nützliche, praktische Webanwendungen für die reale Welt schreiben wollen. Wenn Sie so unpraktisch sind wie ich, wählen Sie ein paar Probleme aus dem Projekt euler oder den 99-Probleme-Projekten (Lösungen in Scala finden Sie hier. Viele hervorragende Programmierer haben diesen Weg eingeschlagen, es macht Spaß und ist eine hervorragende Möglichkeit, mit der Scala-Kern-API herumzuspielen.Um das, was ich hier predige, in die Praxis umzusetzen, hier ein paar Zeilen Scala-Code, die entweder Ihren Appetit anregen oder Sie schreiend davonlaufen lassen. Beachten Sie, dass sich meine Scala-Kenntnisse noch im Vorschulalter befinden und ich kaum sprechen kann, also lachen Sie ruhig, wenn Sie diesen Code sehen. Zunächst ein zufällig ausgewähltes Euler-Problem, Nummer 48, nur weil ich Onliner mag: [scala] (1 bis 1000).map(x => new java.math.BigDecimal(x).pow(x)).reduceLeft((a,b) => a.add(b)).remainder(new java.math.BigDecimal(10).pow(10)) [/scala] Dieser One-Liner ist nicht annähernd so prägnant und übersichtlich wie die Haskell-Version, aber er ist ausreichend. Zumindest hat er das kleine Verdienst, die Interoperabilität zwischen Scala und Java zu zeigen. Ein weiteres zufällig ausgewähltes und etwas komplexeres Problem, Problem Nummer 21: [scala] object Euler21 { def sumOfDivisors(number: Int): Int = { List.range(1, number).filter{i => (number % i) == 0}.foldLeft(0){(a,b) => a+b} } def solver(): Int = { (for (i <- 0 bis 10000; di = sumOfDivisors(i); if(di > i && sumOfDivisors(di) == i) ) yield (i+di)).foldLeft(0){(a,b) => a+b}; } } [/scala] Genießen Sie.

Verfasst von

Arjan Blokzijl

Contact

Let’s discuss how we can support your journey.