Auf der diesjährigen Scala Exchange Keynote erhielt Jessica Kerr eine nette Runde Applaus, als sie uns alle aufforderte, beim Teilen von Codeschnipseln bitte unsere Import-Anweisungen mit einzubeziehen. Das ist ein großartiger Ratschlag - aber können wir das nicht besser machen? Was wäre, wenn wir tatsächlich laufenden, hackbaren Code mit anderen teilen könnten? Wie sich herausstellte, können wir das: Es gibt eine Reihe von Projekten im Stil vonJSFiddle, von denen ich Ihnen einige kurz vorstellen möchte.
Scala-Js-Fiddle
Scala-Js-Fiddle nutzt Scala.js: Sobald es auf dem Server kompiliert wurde, läuft Ihre Scala-Anwendung im Browser. So können Sie schöne visuelle Effekte erzeugen, während Ihre Anwendungen laufen. Dies könnte ein großartiges Lehrmittel sein. Schauen Sie sich unbedingt die Dokumentation an, die on-the-fly von einem Scala-Snippet generiert wird! Der Nachteil bei der Verwendung von Scala.js ist natürlich, dass Sie bei der Auswahl der Bibliotheken, die Sie einbinden können, eingeschränkt sind.
Scripster
Scripster von Razvan Cojocaru(github) ermöglicht es Ihnen, Scala-Code in einer Umgebung mit Syntaxhervorhebung zu schreiben, und gibt Ihnen eine gewisse Kontrolle darüber, welche Ausdrücke ausgewertet werden. Obwohl dieses Tool nicht auf Scala.js beschränkt ist, ist nur eine begrenzte Anzahl von Bibliotheken enthalten.
Scala Kata
Scala Kata von Guillaume Massé(github) ist ein attraktiver Editor mit Vervollständigungsfunktionen, der sich viel flüssiger anfühlt als Scripster. Auch hier haben Sie zwar keine Kontrolle darüber, welche Abhängigkeiten verfügbar sind, aber eine schöne Sammlung ist enthalten. Im Gegensatz zu anderen Optionen zeigt Scala Kata nicht die Ausgabe des Programms, sondern den Wert des Ausdrucks in jeder Zeile an, was Ihnen vielleicht bekannt vorkommt, wenn Sie schon einmal mit der 'Notebook'-Funktion der Scala IDE gearbeitet haben. Das ist zwar manchmal etwas einschränkend, fördert aber einen schönen funktionalen Stil. Scala Kata ist derzeit meine bevorzugte Online-Scala-Umgebung, obwohl es leider keine einfache Möglichkeit bietet, Ihre Schnipsel zu speichern und weiterzugeben.
Scala Notizbuch
Scala Notebook sieht ziemlich sauber aus, scheint aber leider nirgendwo in gehosteter Form verfügbar zu sein. Das Projekt ist vom IPython Notebook inspiriert, das in der Tat ein großartiges Beispiel ist. Ein interessanter Aspekt von Scala Notebook ist, dass es, ähnlich wie scala-js-fiddle, reichhaltige Ausgaben ermöglicht: Wenn ein Befehl HTML oder ein Bild zurückgibt, wird es gerendert/angezeigt.
scastie
Benutzer von scastie müssen auf ausgefallene Funktionen wie fortgeschrittene Hervorhebung und Vervollständigung verzichten, haben dafür aber die vollständige Kontrolle über die sbt-Konfiguration - was es zu einer sehr leistungsfähigen Alternative macht.
Round-up
Übersicht
| Zwischenwerte | Abschluss | git(hub) | abhängigkeiten | scala version | |
|---|---|---|---|---|---|
| Scala-Js-Fiddle | keine | keine | ja | keine | k.A. |
| Scripster | keine | keine | keine | begrenzt | 2.9.1 |
| Scala Kata | ja | ja | keine | begrenzt | 2.11.7 |
| Scala Notizbuch | ja | nein | nein | volle Kontrolle | |
| scastie | keine | keine | keine | volle Kontrolle | konfigurierbar |
Die Zukunft
Einige wünschenswerte Funktionen, wie z.B. eine 'direktere' REPL-ähnliche Schnittstelle, werden nicht umfassend unterstützt. Außerdem scheint keines der verfügbaren Angebote besonders einfach in eine bestehende Website oder einen Blog eingebettet werden zu können. Wenn diese Dienste sehr populär werden, frage ich mich, ob die Sicherstellung einer ausreichenden Back-End-Rechenleistung zu einer Herausforderung werden könnte. Andererseits werden die Computer immer billiger, so dass dies vielleicht gar kein Problem mehr ist.
Schlusswort
Ich war erstaunt über die Anzahl der Projekte, die es geschafft haben, eine funktionale Scala-Programmierumgebung im Browser verfügbar zu machen. Es gibt zwar noch viel zu tun, aber das Potenzial ist enorm.
Verfasst von

Arnout Engelen
Unsere Ideen
Weitere Blogs
Contact



