関数型プログラミングを使用していくつかのWebプログラミングを実行したいと思います。関数型プログラミング言語には、適切なWebフレームワークがありますか?
Lift はScalaの興味深いフレームワークです。 Scalaの実際的な利点は、既存のJavaライブラリを使用できることです。
他にもたくさんありますが(F#で開発している場合でも)、これら(および前述のLift)は最も完全で人気があり、文書化されていると思います。 Erlangフレームワークについてはコメントできません。
Erlangで使用できる list のWebフレームワークがあります。ここにそのリストを要約すると:
それらのうち、私が最も興味を持っているように見えるのはwebmachineとnitrogen。 YMMV。
Noir は美しく、機能的でシンプルです(リッチヒッキーでは " Simple Made Easy "の意味で):
(defpage "/welcome" []
"Welcome to Noir!")
(server/start 8080)
特に、Nice宣言型DSLを有効にするためにいくつかのマクロでサポートされている関数構成を使用して、Webアプリケーション全体を構築できる方法が好きです。
Compojureは、Clojureプログラミング言語用のオープンソースのWebフレームワークです。
質問から言語を除外したので、複数の言語を受け入れると思います...
したがって、F#言語には FSharp.WebTools が存在します。
F#Webツールは、1つのタイプチェックされたプロジェクトで同種のクライアント/サーバー/データベースWebアプリケーションを作成するためのツールでF#ディストリビューションを強化します。クライアントとサーバーのモーダルな違いはF#ワークフローを使用して確認され、LINQをデータベースアクセスに使用できます。最初のバージョンでは、アプリケーションの一部がJavaScriptとして動的に提供されます。計画されている拡張機能には、クライアント側の部分をSilverlightコードとして提供することが含まれます。
Erlangと yaws を調べることをお勧めします。 Erlangは軽量の関数型プログラミング言語であり、優れた機能セット、優れたライブラリ、アクティブな開発コミュニティを備えています。 Yawsは効率がよく、十分に管理されています。
Snap は、Haskellのナイスで本当に高速なWebフレームワークです。
haskellプログラミング言語で書かれた、UNIXシステム用のシンプルなWeb開発フレームワーク。 Snapはテストカバレッジのレベルが高く、十分に文書化されています。機能は次のとおりです。
- 高速HTTPサーバーライブラリ
- Webプログラミングのための賢明でクリーンなモナド
- ページを生成するためのHTMLベースのテンプレートシステム...
GithubにErlang Webフレームワークの比較があります:
https://github.com/evanmiller/ChicagoBoss/wiki/Comparison-of-Erlang-Web-Frameworks
私はそこにリストされているすべてのフレームワークで遊んだわけではないので、判断したくありませんが、現在のプロジェクトではZotonicをかなり広範囲に使用しており、心からお勧めできます。私が知る限り、それはフレームワークだけでなく本格的なCMSでもある唯一のErlangフレームワークです。したがって、CMS機能だけで簡単に開始し、独自のモジュールを使用してカスタム機能を追加することで、Webサイトを拡張できます。私の場合は、純粋にフレームワークとして使用しています。現時点では、CMS機能はPostgreSQLでのみ機能し、別のデータベースを使用できないためです。しかし、フレームワークとしても、他のフレームワークには必ずしもない多くの機能を提供します。
非常に素晴らしいのは、Zotonicの背後にいる人々がWebサイトを設計および実装し、選択したCMSとして使用するため、プロジェクトが非常に活発に開発されていることです。
私が選択しなければならなかった場合、私はおそらくZotonicに最初のチャンスを与え、それからChicagoBoss、そして次にNitrogenを与えます。