Welche vernünftigen Web-Frameworks gibt es für die funktionale Programmierung? [geschlossen]


26

Ich möchte einige Web-Programmierung mit funktionaler Programmierung tun. Welche vernünftigen Web-Frameworks gibt es für funktionale Programmiersprachen?


1
Ich weiß, das ist nicht das, wonach Sie gefragt haben, aber Javascript in Kombination mit Underscore.js unterstützt einen funktionalen Programmierstil sehr gut.
user16764

Antworten:


6

Lift ist ein interessanter Rahmen für Scala. Der praktische Vorteil von Scala ist, dass alle vorhandenen Java-Bibliotheken verwendet werden können.


11

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.



8

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.



3

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.


Die Codeplex-Verbindung ist defekt, sollte fswebtools.codeplex.com sein
Robert Harvey

Behoben, ich werde von nun an> eingeben, da die Schaltfläche nicht richtig funktioniert.
Tamara Wijsman

2

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.


Ja, ich mag Erlang und Yaws, aber ich suche einen anständigen Rahmen.
Jonas

1

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 ...

0

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.