静的に型指定されたWebスクリプト言語はありますか?[閉まっている]


12

Webサーバーバックエンドをセットアップするには、主に2つの方法があるようです。LAMPスタックを使用して、PHPやPython(または、Pで始まらないRubyまたはJavaScript)のようなサーバーサイドコードを使用できます。これらのスクリプト言語は、動的に型付けされる傾向があります。動的に型付けされた言語がもたらすパフォーマンス、正確性、および保守性が、すべてのページ生成ロジックが外部スクリプトに格納されているため、サーバーの更新は簡単です。

広く使用されている他の主要なアーキテクチャスタイルはASP.NETで、ページ生成ロジックはコンパイルされたコードで記述されています。これは静的に型付けされた言語を使用する傾向があるため、コンパイラーの利点を備えたコードを取得しますが、すべてのページ生成ロジックはサーバーにコンパイルされます。つまり、何かを変更する必要がある場合、サーバーを停止し、新しいビルドに置き換えてください。

だから、私は不思議に思う。両方の長所のために、静的型付けを使用するサーバー側スクリプト言語はありますか?


2
Goの使用について考えたことはありますか?
pswg


4
「動的に型付けされた言語がもたらすパフォーマンス、正確性、および保守性におけるすべての欠点」。これらのアサーションはせいぜい議論の余地があり、最悪の場合は間違っています(最近のJITは動的に型付けされた言語用です)。
ハビエル

2
「ページ生成ロジックはサーバーにコンパイルされます。つまり、何かを変更する必要がある場合は、サーバーを停止して新しいビルドに置き換える必要があります。」サービスを中断せずに新しいバイナリにハンドオーバできるサーバー環境がいくつかあります。すなわち。uWSGIグレースフルリロード
ハビエル

1
JVMには、オンザフライで再コンパイルとホットスワップを可能にするフレームワークがいくつかあります。
back2dos

回答:


8

更新:AtScriptを含む最新のソリューション

Google Dartをお試しください。

これにはオプションの型指定があります。つまり、実行時に「チェック済み」別名開発者モードでチェックされる型注釈を追加できますが、必須ではなく、言語はpythonなどの他の動的言語の多くの利点を提供します。ただし、エラーを事前に発見できるように、エディターは型推論を行います。dart VMは高速で、スナップショットを作成できるため、起動時間を最大10倍に短縮できます。また、javascriptにコンパイルされ、高速です。

ここでの主な欠点は、それがやや新しい技術であるため、そのためのライブラリがそれほど多くないことであり、正直なところ、javascriptとの相互運用性はそれほど単純ではありません。また、この言語はまだ開発中なので、時々変更が加えられます。


TypeScriptをお勧めします。dartに似ていますが、JavaScriptと互換性があります。
ケナード

4

あなたの質問は、いくつかの誤った仮定に基づいています。

Python、Rubyは両方とも実行前にバイトコードにコンパイルされます。プロセスは自動ですが、アプリケーションの変更には完全な再起動が必要です。Node.JSも同じように動作しますが、マシンコードにコンパイルされます。

ASP.NETコードはプリコンパイルしてサーバーにコピーするか、サーバー上のソースコードからオンデマンドで動的にコンパイルできます。IISは、ゼロダウンタイムなしで両方の形式の更新を処理します(更新後の最初の要求は遅くなります)。

それに基づいて、どの.NET言語でも満足できると思います。


3
スクリプト言語は、その一部をファイルに書き込んで実行できる場合です。静的に入力しない理由はありません。
フロリアンマーゲイン

@FlorianMargaine Cはスクリプト言語ですか?

@delnan c ++も。
ミケロビ

@mikerobi実際、「私の」もC ++(およびCINTの後継者)です。

2
@mikerobi picocを調べると、そもそもそれがスクリプト言語であることが最初に書かれた点であることに気付くでしょう。cの単なるインタープリターではなく、より大きなアプリケーションやデバイスに組み込むことができるほど小さなインタープリターであり、ユーザーがcで小さなスクリプトを作成できるようにします。一部の言語は他の言語よりもスクリプト作成の方が優れている場合がありますが、言語は(まだ)使用されていないという理由だけでスクリプト作成が苦手ではありません。結局のところ、言語は単なる構文とセマンティクスであり、実装は大きく異なる場合があります。
ヤニス

0

コンパイルされた言語を強く入力する必要があるか、更新するのが難しい理由はありません。

Cowboy、Webmachine、nitrogenなどのアーランWebセットアップの一部をご覧ください。Dialyzerを使用すると、正しいかどうかの非常に優れたタイプチェックを取得できます。また、erlangは既存のユーザーを中断することなく所定の場所でソフトウェアをアップグレードできるように設計されているため、実行時にオンザフライでモジュールをリロードできます。

さらに、webmachine(私が最も使用したもの)は非常に高速です。Amazon EC2スモールノードで、webmachineのAPIエンドポイントの平均応答が10ミリ秒未満であるのを確認しました。

静的型付けが必要な場合は、Haskell言語用のYesodフレームワークを試してください。Haskellは、非常に豊富な型システムで強く型付けされています。

私は個人的にそれを使用していませんが、それを使用する人は知っています。


3
強力で静的な型指定を混同しないでください。Haskellには強力な静的型があり、Pythonには強力な動的型があります。
-mikerobi

0

私見、最も静的に型付けされたWebスクリプト言語はDです。

解釈されたスクリプト言語と同様に、スクリプトをオンザフライで非常に高速にコンパイルできます。

言語自体は、強く型付けされた超強力なJavaScriptのように感じられ、たとえばGoよりもはるかに強力です。

PHPの場合のように、すべての並行処理は隠されており、テンプレートはネイティブコードでコンパイルされています。

それ以上に見つけにくい...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.