Scala
Die objektorientierte und funktionale Sprache "Scala" findet zunehmend Aufmerksamkeit im Netz und in den Printmedien:
Warum Scala?
- Scala ist eine rein objektorientierte Sprache, die imperativ programmiert werden kann.
Der Umstieg auf objektorientiertes Scala ist für Java-Entwickler denkbar einfach. Scala ist zudem objektorientierter als Java: Alles ist ein Objekt, und static gibt es nicht.
- Scala ist eine funktionale Sprache, mit der man nebenwirkungsfreie (seiteneffektfreie) Programmierung erreichen kann.
Die einfachen Aspekte der funktionalen Programmierung können ohne großen Aufwand erlernt und eingesetzt werden. Und mittelfristig hat man das gesamte Potential funktionaler Programmierung verfügbar.
- Scala bringt eine Bibliothek zur nebenläufigen Programmierung (Actors) mit, die es deutlich einfacher macht, parellele und dennoch verklemmungsfreie Software zu entwickeln.
wait(), notify() und synchronized gehören der Vergangenheit an. Durch Nachrichten-basierte Kopplung ist der Datenaustausch zwischen Threads einfach zu bewerkstelligen.
- Scala ist streng und statisch typisiert.
Wie Java! Scala lässt sich so schnell und einfach wie eine Skriptsprache programmieren, besitzt aber die bereits vom Compiler überprüfbare Typsicherheit von Java-Programmen.
- Scala ist präzise und ausdrucksstark.
Aufwändige Algorithmen lassen sich mit weniger Code eleganter und besser lesbar schreiben. Viel von dem in Java nötigen Standard-Struktur-Code ("Boilerplate Code") kann entfallen.
- Scala ist skalierbar und performant.
Wie der Name schon sagt. Scala-Programme profitieren auf einfache Weise von mehreren Prozessoren und mehreren Prozessorkernen. Und der Erfinder von Scala kennt sich ziemlich gut mit Java und dem Java-Compiler aus – er und sein Team wissen, was sie tun.
- Scala erzeugt Java-Bytecode und lässt sich problemlos in bestehende Java-Anwendungen integrieren.
Ein zusätzliches JAR genügt, um
vom dem Scala-Compiler erzeugte class-Dateien innerhalb der normalen Java-Laufzeitumgebung nutzen zu können.
- Scala zeigt, dass starke, statische Typisierung und effiziente, produktive Entwicklung hervorragend zusammenpassen!