クライアントサイドWebでのJSの出現は、長年にわたっていくつかの重要なポイントで誤解されてきたと思うので、これに更新を追加します。
アヤックスではなかった
JSを言語として理解するための進化にとってAjaxは重要ではなかったとは言いませんが、クライアント側のブラウザーの優位性をめぐる戦いは、Ajaxという用語が生み出されるずっと前に終わりました。
町で唯一のゲームだったからではありません
Javaアプレット、Flash、VBScriptがありました。90年代には他のスクリプトオプションもあると聞きました(ただし、プラグインIIRCが必要です)。Javaは非常に人気がありますが、アプレットは悲惨な失敗でした。それらはく、多くの場合セキュリティスイスチーズでしたが、さらに重要なことは、後で説明する理由からJavaが適しているとは思わないことです。Flashは非常に人気があり、長年にわたって強力な足場を築きましたが、ついにFlashにSEOオプションがついたとしても、それらは通常使用されず、Flashサイトだけを発見することは非常に困難になりました。今でも、私たちのほとんどは定期的にFlashを更新して映画を見ることができますが、それは本当のアキレス腱です。ブラウザの独自技術は迷惑です。そしてもちろん、IEでしか動作しないVBなので、ありません。
適切なタイミングで適切な場所が重要ですが、全体の答えではありません
はい、乗るウェブの波がなければ、JavaScriptやそのような一般的な用法の言語を見たことがないかもしれません。それとも...
最終的には問題領域に最適なツールになりました
2000年頃には次の問題が発生したと思います。
- IEとNetscapeは、同じDOM APIとCSSの標準に参加することでうまくプレイし始めることに同意したばかりで、それ以来、管理しやすくなり始めたばかりの古いJSクロスブラウザの問題に対処しなければなりませんでしたIE8以降のjQueryのようなJS DOM正規化ツールの支援なし
- まったく新しい世代のWeb開発者/デザイナーがいましたが、プログラマーがポスト.com-バブルバーストを改善しようとしているのに、必ずしも重量級であるとは限りませんでした。基本的なHTMLリテラシーといくつかのフォトショップスキルよりも。
- 最終的にDHTML、(より適切には)DOMスクリプティング、(現在は不適切)HTML5(zomghtml5!)と呼ばれるものの興味深い可能性を提供するこの新しいCSS子供が町にいました。
そのため、クライアント側でポータブル/再利用可能なコンポーネントを使用して、高度なアプリを実際に構築および設計する機能を提供するだけでなく、多くのことを知らず、必要なことだけが必要な人にもアクセス可能な言語が必要でしたボタンをクリックすると表示/再表示されます。
さらに、MSは、彼らが時々そうであるように、非競争的/無能な、および/または反競争的慣行を介して支配する獣であるため、何十年もの間、非準拠のDOM API実装に実際に触れることができませんでした。 IE8で元のXHRオブジェクトやquerySelectorsのような時折のものを追加します。
重要なことは、2005年頃までに、クロスブラウザの問題の処理に伴う複雑さを完全に埋めることができたため、JavaScriptの面ではもはや深刻な問題ではなくなったことです。CSS2を適切にサポートできなかった場合、かなりの苦痛が生じました。膨大な量と問題の深さについては、quirksmode.orgを確認することをお勧めします。これは、Javaのライブラリと同じくらいスムーズに、VBではなく、完全に新しいものになることで問題全体を回避することを目的とするプラグイン戦略では間違いなく達成できる偉業だとは思いません。迷惑のようなもの。
UIに多くの意味をなすその他の言語機能:
ファーストクラス関数:私の経験では、関数をファーストクラスにする言語ほど、非同期処理とイベント駆動型のパラダイムに適しているものはありません。両方の懸念は、UIの作業で定期的に対処されています。
動的型:キャストと型チェックはJavaScriptで非常にまれな必要性であり、コードを簡潔で無駄のないものにするのに役立ちました。UIの懸念事項は、すぐに複雑で煩雑になります。コードを厳しく保ち、データの流れについて完全に明確にすることは、それを理解し、変更/維持するために重要です。
それは保護主義者ではありません:長年にわたって、誰かがあなた自身の間違いや他の人があなたのコードで行うかもしれない愚かなことから自分を守る必要があると説教してきました。で作成され、多くの人が聞いています。私はそれらが常に間違っているとは言いません(それを考えるかもしれません)が、それはウェブUIへの間違ったアプローチだと言います、そして、私はそれがクライアントをクランクアウトし、維持し、修正している現象の何かであると信じますサイドGUIは、以前はより制限の多い言語で一般的に達成されていた作業よりもはるかに速いペースで、非常に簡単に実行できます。その場で物事を迅速かつ簡単に変更できるため、コードで地獄が何をしているのかを最終的に見やすくするために、途方もない量の間接性と抽象化のオーバーヘッドを必要としない動的/流体アーキテクチャスキームがはるかに簡単になります例外をよりきれいに先取りまたは処理します。他の哲学を考えた場合よりもはるかに少ないコードで、あなたがするすべてのことをより直接的に行えるようにするという単純な美徳によって、簡単に維持するのは簡単です。
JSはどのようにして人気を博しましたか?それは何度も何度も仕事のための優れたツールであることが証明されています。それは私たちが「立ち往生している」言語ではありません。一般的に一般的な言語の大幅な進化に影響を与えた可能性のある言語です。そして、そのために、Brendan Eichと彼の頭にアイデアを入れるのを助けた同時代人に感謝します。彼がJavaを好むよりも、手近な問題に合ったデザインのインスピレーションとしてSchemeが好きだったからです。