1unitedpower: TicTacToe mit Elm

Beitrag lesen

und die Community [ist] sehr daran interessiert Neulingen den Einstieg in die funktionale Programmierung so schmerzlos wie möglich zu gestalten.

Kannst du da mehr zu sagen?

Man sagt FP-Communities oft hinterher, dass sie zu viel fancy Talk abhalten, dass sie nur Akademiker erreichen und sich um "reale Probleme" zu wenig kümmern würden. Das ist die Sicht von außen.

A monad is just a monoid in the category of endofunctors, what's the problem?

Die Elm-Entwickler kennen dieses Image und wollen es sich abstreifen. Der Schlüssel dazu ist eine vergleichsweise einfache Programmiersprache und eine sehr ausführliche und in sich abgeschlossene Dokumentation, die keine Vorkenntnisse mit FP voraussetzt.

Neben der Sprache drücken die Elm-Entwickler dem Neuling auch gleiche eine Architektur mit in die Hand, der alle Elm-Anwendungen folgen. Diese Architektur ist die logische Konsequenz des Sprach-Designs von Elm, jede Anwendung läuft darauf hinaus (wissentlich oder unwissentlich). Das macht es besonders leicht schrittweise größere Code-Basen zu erkunden.

Die Elm-Suite enthält außerdem einen Entwicklungs-Server, der Programme automatisch kompiliert, sodass ein Neuling schnell loslegen kann, ohne sich näher mit dem Copmilier zu beschäftigen. Damit erreicht man vorallem Web-Entwickler, die es nicht anders gewohnt sind.

Elm will eine Programmiersprache für den Menschen sein, nicht für die Maschine. Der Debugger ist ein gutes Beispiel dafür: In herkömmlichen Sprachen analysiert man Stack-Traces und Variablen-Inhalte per Step-Through-Debugging. In Elm kann man Programme aufzeichnen, sie vorwärts und rückwärts abspielen oder direkt an eine bestimmte Position springen. Man kann Code live austauschen und die Änderungen sofort beobachten. Die Mario-Demo veranschaulicht diese Konzepte auf beeindruckende Art und Weise.