この質問は、自由回答形式であるため、クローズされる可能性がありますが、それでも興味があります。
静的に型付けされた言語を使用してクロスプラットフォームの Web アプリケーションを開発したい場合、どのような選択肢がありますか? Mono と Java は知っていますが、他に何がありますか?
(クロスプラットフォームとは、Windows と少なくとも 1 つの一般的な Linux のフレーバーを意味します)
この質問は、自由回答形式であるため、クローズされる可能性がありますが、それでも興味があります。
静的に型付けされた言語を使用してクロスプラットフォームの Web アプリケーションを開発したい場合、どのような選択肢がありますか? Mono と Java は知っていますが、他に何がありますか?
(クロスプラットフォームとは、Windows と少なくとも 1 つの一般的な Linux のフレーバーを意味します)
クライアント部分とサーバー部分の両方に単一の言語を使用できます。
強力な静的正確性を強調する高性能 Haskell Web フレームワークがいくつかあります。
目標は、型システムに依存して高度に最適化されたコードを提供し、ランタイム エラーの可能性をゼロにすることです。
Yesod の Web サイトを引用するには:
実行時のバグをコンパイル時のエラーに変える
Yesod は、コンパイラを敵ではなく味方にするという哲学を信じています。型システムを使用して、適切なリンクの生成から、XSS 攻撃の回避、文字エンコーディングの問題への対処まで、可能な限り強制します。一般に、コードがコンパイルされれば機能します。そして、あらゆる場所で型を宣言する代わりに、コンパイラーに型推論でそれらを理解させます。
静的に型付けされていることを意味する場合、残念ながらそれほど多くの選択肢はありません。Google のGo言語は、Web アプリケーションの分野で成長し始めているようです (Google の App Engine やGoWebなどのプロジェクトに対する Go のサポートがあります) が、これらの取り組みはおそらくまだ十分に成熟していません。
Scalaは別の可能なオプションかもしれません。JVM でも実行されますが、その Web フレームワークは、言語の高度な機能 ( Liftなどを参照) により大きく異なり、個別に検討する価値があるかもしれません。
Java と C# (mono 経由) に加えて、(最新の) C++ を
Wt (C++ Web Toolkit)の形式で使用することもできます。現在、C++ の C 下位互換性部分は厳密に型指定されていませんが、それ以外の場合、C++ プログラムは型安全です。
本当に強力な型安全性が必要な場合は、 Haskell とYesodを使用できます。Yesod の目標は、強力な型を使用して、Web アプリケーションのプログラミングでよくあるエラーを防ぐことです。たとえば、URL は型チェックされます。正しいパラメーターを指定しないと、アプリケーション内リンクを作成できません。Web ページをレンダリングするときのユーザー コンテンツのエスケープは、レンダリングされたページに含まれる前に文字列が適切にエスケープされることを保証するために Haskell コンパイラが使用される別の状況です。
私は、 Rubyは厳密に型付けされていると信じているので、Ruby on Railsはこれに適した選択です。