Ich möchte einige Web-Programmierung mit funktionaler Programmierung tun. Welche vernünftigen Web-Frameworks gibt es für funktionale Programmiersprachen?
Ich möchte einige Web-Programmierung mit funktionaler Programmierung tun. Welche vernünftigen Web-Frameworks gibt es für funktionale Programmiersprachen?
Antworten:
Lift ist ein interessanter Rahmen für Scala. Der praktische Vorteil von Scala ist, dass alle vorhandenen Java-Bibliotheken verwendet werden können.
Es gibt noch viele weitere (ich entwickle sogar eine in F #), aber ich denke, diese (und Lift, bereits erwähnt) sind die vollständigsten / populärsten / dokumentiertesten. Ich kann Erlang-Frameworks nicht kommentieren.
Es gibt eine Liste der verfügbaren Web-Frameworks für Erlang. Diese Liste hier zusammenfassen:
Von den beiden, die mich am meisten interessieren, sind webmachine und nitrogen . YMMV.
Noir ist schön, funktional und einfach (im Sinne von " Simple Made Easy " von Rich Hickey ):
(defpage "/welcome" []
"Welcome to Noir!")
(server/start 8080)
Mir gefällt besonders die Art und Weise, wie Sie dann Ihre gesamte Webanwendung mithilfe der Funktionskomposition erstellen können, die mit ein paar Makros unterstützt wird, um eine schöne deklarative DSL zu ermöglichen.
Compojure ist ein Open Source-Webframework für die Programmiersprache Clojure.
Da Sie keine Sprachen in Frage gestellt haben, werden Sie wahrscheinlich mehrere Sprachen akzeptieren ...
Für die Sprache F # gibt es also FSharp.WebTools .
Die F # Web Tools erweitern die F # -Distribution um Tools zum Erstellen homogener Client / Server / Datenbank-Webanwendungen in einem typüberprüften Projekt. Die modalen Unterscheidungen zwischen Client und Server werden mithilfe von F # -Workflows überprüft, und LINQ kann für den Datenbankzugriff verwendet werden. In der ersten Version werden Teile der Anwendung dynamisch als JavaScript bereitgestellt. Zu den geplanten Erweiterungen gehört die Bereitstellung clientseitiger Teile als Silverlight-Code.
Ich empfehle, Erlang und Gieren zu untersuchen . Erlang ist eine kompakte funktionale Programmiersprache mit vielen Funktionen, guten Bibliotheken und einer aktiven Entwicklergemeinschaft. Gieren ist effizient und gut ausgereift.
Snap ist ein schönes und sehr schnelles Web-Framework für Haskell.
Ein einfaches Webentwicklungsframework für Unix-Systeme, das in der Programmiersprache Haskell geschrieben ist. Snap hat eine hohe Testabdeckung und ist gut dokumentiert. Features sind:
- Eine schnelle HTTP-Server-Bibliothek
- Eine vernünftige und saubere Monade für die Webprogrammierung
- Ein HTML-basiertes Template-System zum Generieren von Seiten ...
Es gibt einen Vergleich von Erlang-Webframeworks auf Github:
https://github.com/evanmiller/ChicagoBoss/wiki/Comparison-of-Erlang-Web-Frameworks
Ich habe nicht mit allen dort aufgelisteten Frameworks gespielt, daher möchte ich nicht beurteilen, aber ich habe Zotonic in meinem aktuellen Projekt ziemlich ausgiebig verwendet und kann es von ganzem Herzen empfehlen. Soweit ich weiß, ist es das einzige Erlang-Framework, das nicht nur ein Framework, sondern auch ein vollständiges CMS ist. So können Sie ganz einfach mit den CMS-Funktionen beginnen und dann die Website erweitern, indem Sie Ihre benutzerdefinierten Funktionen mithilfe Ihrer eigenen Module hinzufügen. In meinem Fall verwende ich es nur als Framework, da die CMS-Funktionen derzeit nur mit PostgreSQL funktionieren und ich keine separate Datenbank verwenden kann. Aber auch nur als Framework bietet es viele Funktionen, die nicht immer in den anderen Frameworks zu finden sind.
Das Schöne ist, dass das Projekt sehr aktiv entwickelt wird, da die Leute, die hinter Zotonic stehen, Websites entwerfen und implementieren und sie als CMS ihrer Wahl verwenden.
Wenn ich mich entscheiden müsste, würde ich Zotonic wahrscheinlich die erste Chance geben, dann ChicagoBoss und dann Stickstoff.