Quels cadres web décent existe pour la programmation fonctionnelle? [fermé]
https://softwareengineering.stackexchange.com/questions/3049
-
16-10-2019 - |
Question
Je voudrais faire de la programmation web en utilisant la programmation fonctionnelle. Qu'est-ce que le web-cadres décents existe pour les langages de programmation fonctionnelle?
La solution
Lift est un cadre intéressant pour Scala. L'avantage pratique de la Scala est qu'il peut utiliser toutes les bibliothèques Java existantes.
Autres conseils
- WebSharper (F #)
- Yessod (Haskell)
- SNAP (Haskell)
- Ocsigen (OCaml)
Il y a beaucoup d'autres (même que je développe une en F #) mais je pense que ceux-ci (et un ascenseur, déjà mentionné) sont les plus complets / populaire / documenté. Je ne peux pas commenter sur les cadres Erlang.
Il y a une liste de frameworks disponibles pour Erlang. Résumant cette liste ici:
- Erlang-web
- webmachine
- Zotonic (ce qui est un CMS.)
- azote
- patron de Chicago
- erlyweb (Basé sur pian, mais il est un peu mort.)
Parmi les deux qui semblent le plus d'intérêt pour moi sont webmachine et azote . YMMV.
Noir est beau, fonctionnel et simple (dans le Rich Hickey " simple Made Easy" sens):
(defpage "/welcome" []
"Welcome to Noir!")
(server/start 8080)
Je aime particulièrement la façon dont vous pouvez construire votre application Web entière juste en utilisant la composition de fonctions, pris en charge avec quelques macros pour permettre une belle DSL déclarative.
Compojure est un framework web open source pour le langage de programmation Clojure.
Comme vous l'avez laissé toutes les langues de la question, je suppose que vous acceptez plusieurs langues ...
Donc, pour la langue F # il existe FSharp.WebTools .
Les F # Outils Web augmentent la distribution F # avec des outils homogènes à l'auteur des applications web client / serveur / base de données dans un projet contrôlé de type. Les distinctions modales entre client et serveur sont vérifiées par l'utilisation des flux de travail F # et LINQ peuvent être utilisés pour l'accès base de données. Dans la première version, les parties de l'application sont dynamiquement servi JavaScript. extensions prévues comprennent des parties servant côté client code Silverlight.
Je recommande à la recherche en Erlang et pian . Erlang est un langage de programmation fonctionnelle légère avec un grand ensemble de fonctionnalités, de bonnes bibliothèques et une communauté de développement actif. Le pian est efficace et bien matained.
snap est agréable et vraiment framework web rapide pour Haskell.
un cadre simple de développement web pour les systèmes unix, écrit dans le langage de programmation Haskell. Pression a un haut niveau de couverture de test et est bien documenté. Les caractéristiques comprennent:
- Une bibliothèque de serveur HTTP rapide
- Une monade raisonnable et propre pour la programmation web
- Un système de modèles à base de HTML pour générer des pages ...
Il y a une comparaison des frameworks web Erlang sur Github:
https://github.com/evanmiller/ChicagoBoss/ wiki / Comparaison-de-Erlang-Web-cadres
Je n'ai pas joué avec tous les cadres qui y sont énumérés, donc je ne veux pas juger, mais je me sers Zotonic assez largement dans mon projet en cours et je peux recommander de tout coeur. Pour autant que je sais que c'est le seul cadre Erlang qui est non seulement un cadre, mais aussi un CMS complet. Ainsi, vous pouvez commencer facilement avec seulement les fonctionnalités CMS et puis développez le site Web en ajoutant vos fonctionnalités personnalisées avec vos propres modules. Dans mon cas, je l'utilise uniquement comme un cadre, car à ce moment, le CMS propose que le travail avec PostgreSQL et je ne peux pas utiliser une base de données séparée. Mais même comme un cadre, il offre de nombreuses fonctionnalités ne trouve pas toujours dans les autres cadres.
Ce qui est très agréable est que le projet est en cours d'élaboration très activement parce que les gens derrière la conception Zotonic et mettre en œuvre des sites Web et ils l'utilisent comme leur CMS de choix.
Si je devais choisir alors je serais probablement donner Zotonic la première chance, puis ChicagoBoss, puis l'azote.