「JavaScriptの優位性は歴史的な事故なのか、それとも他の何かなのか?」
JSの成功は多くの人がこれまでと同じようにデザインの問題であり、偶然ではなく、単に遊び場で最初の子供だったという事実が原因で、JSの成功はそれを認めるのを嫌がっています。
Java開発者にアピールするように命名され、Java開発者にもアピールするためにJavaのCベースの構文のように構文化されていますが、Brendan Eichは、wwwの歴史において最も悪質な決定の1つを行いました。これは、Java開発者があまり気に入っていないように思えるインスピレーションです(非常に面白いと思います)。
JavaScriptはOOPに非常に柔軟な/細かいプロトタイプ継承を使用します。クロージャーがあり、型は100%動的です。関数自体はファーストクラスであり、他のオブジェクトやデータ型と同じように渡され、さまざまなコンテキストで再利用できます。オブジェクトが最初から実際のオブジェクトメンバーとして宣言されているかのように、その場でオブジェクトに適用されます。大量の独自仕様のガベージを正規化したり、非常に非線形のUI問題を処理したりする必要があるイベント駆動型アーキテクチャーに使用することは、実質的に悲鳴を上げています。
Webの夜明けの終わりに、NetscapeとIEが意図的に異なることを試みた後、10年以上のブラウザーが続いた実際のブラウザー戦争を通じて、ブラウザーを正規化するタスクに真剣に取り組んできた唯一の言語です。 MSが怠惰で正当な愚かな反競争的慣習に自己定着してブラウザーの停滞を引き起こし、今やブラウザーがHTMLに関して同じ一般的な仕様に最終的に同意し始めている世界であるIE CSSとDOM APIとIEは、IEのパフォーマンス数値を非常に悲惨なMSが適切に最新化することに恥をかかせたGoogleとMozillaがJITコンパイラーを破壊したため、最新の開発よりも2〜3年遅れています。IE9は、DOM APIサポートを2000年代にNetscapeがサポートしていたレベルに実際に真剣にアップグレードした最初のものです。
JSは、JavaアプレットとAdobeのFlash対応ActionScriptの形で競争を繰り広げてきました。それは真剣な競争の前線でそれについてです。MSはVBをプッシュしようとしましたが、...ええと... VBのために惨めに失敗しました。また、独自仕様。実際には、ほとんどの人が理解しているよりもはるかに多くのFlashサイトがありました。あなたはただ検索エンジンで愚かなことを見つけることができませんでした。アプレットは独自の処理を行い、醜いものでした。本当に醜い。JSは、一致するはずの仕様を誰が設定するのかについて同意しない人々が複数のブラウザーのコンテキスト内で作業するという問題に本当に取り組む唯一の言語でした。
近年、JSははるかに広い範囲のアプリケーションに急増しています。他のすべてのWebテクノロジーと組み合わせると、基本的に他のすべてのソリューションをモバイルの最前線で打ち負かすことができます。1つのアプリを作成してすべてに機能させる場合、Webテクノロジーが現在唯一の現実的な選択肢であるためです。
だから、いやいや、私は大ファンですが、ブラウザの外で爆発的に人気を博していることが事故と見なされるほど、クライアント側の他のすべての候補者を偶然に台無しにしたとは思いません。JSの前は、主に学術的ではないSchemeのような言語はあまりありませんでした。JSにはいくつかの強力な利点があり、クライアント側の固有のニーズにより、これらの利点をゆっくりと明確にすることが可能になりました。