今日のブラウザでJavaScriptと一部のVBScriptがサポートされているのはなぜですか?JavaScriptがすべて優れていることは知っていますが、別のプログラミング言語を使用するオプションがないと、さまざまな開発スタイルを促進できませんか?
今日のブラウザでJavaScriptと一部のVBScriptがサポートされているのはなぜですか?JavaScriptがすべて優れていることは知っていますが、別のプログラミング言語を使用するオプションがないと、さまざまな開発スタイルを促進できませんか?
回答:
複数の言語のサポートを追加する必要はありません。解決策は、言語実装者が使用できる汎用バイトコードで標準化することです。しかし、現時点ではこれについての計画はありません(提案されています)。
言語はJavascriptの上にも実装できます。Javascriptは、他の言語をその上に実装できるほど十分に優れています。そして、これにはすでに多くの例があります。
<script type="text/cpp" src="test.cpp"></script>
。
JavaScriptはデファクトですスタンダードと全く競争が正確に公平ではないではありませんがあるという理由だけで、標準なので1996年からあったが、私は文句をたくさん聞いていない理由を含め、他の言語ではありません。
別の「標準」言語を追加すると、あらゆる種類の楽しい小さな問題が促進されます。
Javascriptのみのサポートについては、ブラウザー間の不一致を考えてください。次に、さらに多くの言語があった場合にどうなるかを考えます。
ブラウザは標準化する必要があるため、開発したものはどこでも、すべてのブラウザで機能します。
複数の言語を使用する場合は、すべての言語が非常によく似ていることを確認する必要があります。あなたがWeb開発者であり、一部の地域でサポートされているかどうかに関係なく言語を選択できる場合、それは追加の頭痛の種です。
Javascriptは非常に柔軟な言語であり、必須であり、機能的であり、OOPにすることができ(プロトタイプを使用した後)、解釈されます。現在、Chromeのようなきちんとしたエンジンを使用して、いくつかの優れた機能を合理的に実行できます。余分な言語は単にここに戻って、VBScript、IEのみを見るので、その中に書かれたものはすべて特定のブラウザーとプラットフォームに縛られます。
ベンダーは、これらをブラウザに組み込む代わりに、Java、Flash、Silverlightなどの不格好なブラウザプラグインを構築することを好みます。これにより、クロスプラットフォームの一貫性が保証されます。
理由の1つは、さまざまなブラウザーベンダーが標準のJavascript実装に同意することさえ事実上不可能であり、Javascriptは少なくともWeb言語の観点からは永遠に存在していることです。したがって、ほとんどの人は、別のクライアント側言語をエコシステムに導入し、すべてのベンダーにそれをサポートさせることは事実上不可能であり、それを実現できる可能性のある人のほとんどはすでにJavascript標準化の問題に関与していると考えています彼らの時間の使用。
ここには、複数の言語をサポートすると、Webブラウザーのビルダーがすべての言語に準拠していることを確認するのが非常に不快になるという、いくつかの回答があります。私にはこれは間違っているようです。
たとえば、Javaは非常によく定義された標準です。基本的に、必要なことは、ブラウザーDOMをJava APIとして公開し、Webブラウザー内でJava仮想マシン(JVM)を実行することだけです。スクリプトコードは、コンパイルおよび署名されたJARファイルの形式で、またはJavaScriptソースコードとして配信する必要があることを指定できます。ブラウザーがJavaScriptに遭遇した場合、専用のインタープリター(現在のように)を介して、またはJVM上のRhinoを介して実行できます。jarファイルが検出されると、新しいクラスローダーとセキュリティサンドボックスが作成され、javaバイトコードがメモリにロードされて実行されます。これにより、既存のWebページとの完全な下位互換性が確保され、ブラウザで1回のストロークでJVMで実行される多数の言語をサポートできるようになります。
その他の利点:
JavaScriptがWebの標準言語としての地位をさらに高めると信じています。サーバー側のJavaScriptが増加しています。サーバーでのこの強力な言語の実装の例を次に示します。
POW WebサーバーSJS - POW Webサーバーのサーバー側JavaScript。Firefox拡張機能またはXULRunnerアプリケーションとして実行されます。SJSは、データベースに接続してクライアント側のコンテンツを生成できるという点で、ApacheのPHPと同様の役割を果たします。
NodeJS-イベントベースのモデルを使用するサーバー側JavaScript。GoogleのV8 JavaScriptエンジンを使用して構築されています。NodeJSは、スケーラブルなネットワークプログラムを構築するためのツールとして宣伝されています。「Hello World」Webサーバーは、わずか6行で記述できます。
Jaxer-すべてのスクリプトブロックをrunat="server"
サーバー側のJavaScriptとして解釈するJavaScriptサーバー。Webアプリケーション全体をJavaScriptで記述することができます。
Rhino-JavaScript for Java -Mozillaは、Java上で実行されるこのサーバー側JavaScript実装を作成しました。基本的に、Querces PHP for Java、Jython、JRuby、およびJVM上で実行される他の言語のその他の多くの抽象概念に似た概念です。Rhinoは通常、JavaScriptをJavaに埋め込み、エンドユーザーにスクリプトツールを提供するために使用されますが、ビジネスロジックを別の言語で書き直すことなく、クライアント側のコードをサーバーに移動するためにも使用できます。
JQuery Claypool-サーバーでJQueryの機能を使用するサーバー側JavaScriptフレームワーク。とてもかっこいい!EnvJsサーバー側のブラウザーのJavaScript実装を使用して開発されています。
EnvJs -Rhinoの上に構築されたヘッドレスブラウザ。
これらの実装とフレームワークの多くが実証しているのは、JavaScriptがWeb開発において非常に強力な力になりつつあり、コミュニティのリーダーがすでにJavaScriptをサーバーに移動し始めていることです。JavaScriptは非常に強力な関数型プログラミング言語であり、時間が経つにつれて進化するのではないかと感じています。
要約すると、代わりにこの単一のブラウザー言語をサーバーに移植し、より統一された方法でそのギャップを埋めることができる場合、他の言語をブラウザーに移植することは矛盾のようです。
人々は、組み込みの多様性の欠如を2つの方法で回避しました。フラッシュやJavaアプレットのようなプラグインを使用することと、jqueryやgoogle web toolkitのようなjavascriptを「マシンコード」として使用するレイヤーを構築することです。十分に人気のある新しい開発スタイルがあれば、人々はそれを取り入れる方法を見つけるでしょう。
javascriptで.netランタイムを作成し、それが一般的になると、特定のサークルがインターネット上であなたの名前を永遠に呪うでしょう。