古代の歴史では、ブレンダンアイヒは言語設計を持っていましたが、今日の世界では、JavaScriptは多くの異なる場所で実装および使用されている人気のある言語です。
言語が人気になった原因は何ですか?以前のプログラマーにとって馴染み深いCのような構文でしたか? Netscapeは、それを使用するように強制するのに十分な市場のコントロールを持っていますかそれとも、JavaScriptが人気で他の言語は人気がないという深い理由がありますか?
特に、JavaScriptと同じくらい人気のある言語を作成する必要がある場合、人気の成長を再現するためにどのような初期条件が必要ですか?
以前の回答 についてコメントしていましたが、大きくなってきたので、これをスピンアウトしたいと思いました。
新しい言語は、コンピューティングの新たなフロンティアを利用する場合にのみ成功します。
前の例:
あなたの質問に答えるために、JavaScriptは、ネットスケープナビゲーターが主要なブラウザーだった当時の言語でした。具体的には、動的なフロントエンド開発のための言語でした。
次の大きな言語は別のフロンティアを解決する必要があります。バックエンドのWeb開発スペースには、まだ土地が奪われているようです。さらに、Appleの現在の優位性にもかかわらず、モバイルコンピューティングは完全には解決されていません。また、マルチコアおよびクラウドコンピューティングの出現もあり、これは多くの言語が利用しようとしているものです(ErlangやGoのような並行言語、またはHaskellやOCamlのような関数型言語など)。
起業家は、「火をつけている人を見つけて消防用ホースを売る」という表現をしています。それで、もしあなたが新しい言語を導入したいなら、誰の火を消しているのですか?コンピューティングのすべての新しいフロンティアは頭痛の種のホスト全体をもたらします。だからアスピリンを補給すればあなたは黄金になるでしょう。
それは非常に簡単です。NetscapeはブラウザでJavaScriptエンジンを使用していました。 Webでスクリプトを作成する場合、JavaScriptはitでした。 Internet ExplorerにはJavaScriptとVBScriptの両方が(そして今もあり)ありますが、明らかにIE以外のものでも作業したい場合は、JavaScriptを使用するしかありません。
JavaScriptはそれ自体が優れた言語ですが、HTMLをスクリプト化するために使用できる唯一の言語であるという事実がなければ、今日の人気にはほど遠いでしょう。
クライアント側のWebでのJSの出現は、長年にわたっていくつかの重要な点で誤解されてきたと思うので、これに更新を追加します。
Ajaxではなかった
Ajaxが言語としてのJSの理解の進化にとって重要ではなかったと言っているわけではありませんが、Ajaxという用語が作成されるずっと前に、クライアント側のブラウザーの優位性をめぐる闘いが終わっていました。
町で唯一のゲームだったからではなかった
Javaアプレット、Flash、VBScriptがありました。 90年代には他のスクリプトオプションもあると聞きました(ただし、プラグインIIRCが必要です)。 Javaは非常に人気がありますが、アプレットはひどい失敗でした。彼らは醜く、しばしばセキュリティスイスチーズでしたが、もっと重要なのは、後で説明する理由から、Javaは適切ではないと思います。 Flashは非常に人気があり、長年にわたって強力な基盤を築いてきましたが、Flashが最終的にSEOオプションを備えたとしても、通常は使用されず、Flashサイトだけを見つけるのは非常に困難でした。今でも、ほとんどの人が定期的にFlashを更新して映画を見ることができますが、それが本当のアキレス腱です。ブラウザの専有技術は迷惑です。そしてもちろん、これまでIEでしか機能しないVBなので、できません。
適切なタイミングで適切な場所が関連しますが、全体の回答は関係ありません
はい、Webの波に乗る前に、JavaScriptやそのような一般的な使用法の言語を見たことがありませんでした。または多分私達は….
問題ドメインに最適なツールになりました
2000年代くらいには次の問題があったと思います。
したがって、クライアント側にポータブル/再利用可能なコンポーネントを備えた、より高度なアプリを実際に構造化および構築する機能を提供すると同時に、多くのことを知らず、必要なだけの人がアクセスできる、両方とも深い言語が必要でしたボタンをクリックすると表示/再表示されます。
さらに、MSは、時としてそうであるように、あまり得意ではない/無能な、および/または反競争的実践を模倣する獣であり、十分な10年間、非準拠のDOM API実装に実際に触れられなかったが、 IE8の元のXHRオブジェクトやquerySelectorsのような時折のものを追加します。
注意すべき重要な点は、2005年頃までに、ブラウザー間の問題の処理に伴う複雑さを完全に埋めることができたため、JavaScriptの面ではもはや深刻な問題ではなくなったことです。 CSS2が適切にサポートされていなかったため、CSS2がサポートされなかったため、かなりの苦痛が生じました。膨大な量と問題の深さについては、 quirksmode.org をチェックすることをお勧めします。これはJavaのスムーズで多くのライブラリで達成できた偉業だとは思わない。確かにVBではなく、間違いなく全体を回避することを目的とするプラグイン戦略では達成できなかったまったく新しい種類の迷惑になります。
UIに多くの意味をなすその他の言語機能:
ファーストクラス関数:私の経験では、関数をファーストクラスにする言語ほど、非同期処理とイベント駆動型パラダイムに適したものはありません。両方の懸念は、UI作業で定期的に対処されます。
動的型:キャストと型チェックは、JavaScriptで非常にまれな必要性で、コードを簡潔かつ無駄のないものにするのに役立ちました。 UIの問題は、非常に複雑で厄介なものになる可能性があります。コードをタイトに保ち、データの流れを完全に明確にすることは、コードを理解し、修正/維持するために重要です。
それは保護主義者ではありません:長年、誰かがあなた自身の間違いと、他の人があなたのコードで行うかもしれない馬鹿なことから自分を守る必要があると説いてきましたで作成され、多くの人が聞いています。私はそれらが常に間違っているとは言いませんが(それを考えるかもしれません)、それはWeb UIへの間違ったアプローチであると言います、そしてそれは私たちがクライアントをクランクアウトし、維持し、そして修正してきた現象の何かであると私は信じます-サイドGUIは、以前よりもはるかに速いペースで、そのような作業よりもはるかに簡単に、通常はより制限の厳しい言語で実現されていました。その場ですばやく簡単に変更できることで、莫大な量の間接化と抽象化のオーバーヘッドを必要としない動的/流体アーキテクチャスキームがはるかに簡単になり、最終的にコードで地獄が起こっていることを簡単に確認できるようになります例外を横取りしたり、例外をよりきれいに処理したりします。他の哲学の場合よりもはるかに少ないコードで、すべてのことをより直接的に行うことができるという単純な利点があるだけで、保守が簡単になります。
JSはどのようにして人気を博しましたか?それは、何度も仕事に優れたツールであることが証明されています。それは、私たちが「行き詰まっている」言語ではありません。一般的な言語全般に多大な進化をもたらした言語です。そして、そのために、彼がJavaを好きだったよりも、目の前の問題に合うデザインのインスピレーションとしてSchemeを気に入ってくれたBrendan Eichとそのアイデアを頭に入れてくれた同時代の人たちに感謝することができます。
最初に使用された1つの戦術は、名前でした。「JavaScript」は、しばらくの間上昇していたJavaの人気に乗ることを意図したものでした。
クロスブラウザのクライアント側スクリプト言語はこれだけではありませんか?その人気は、ウェブのそれと足並みをそろえて成長しているようで、それは理にかなっています。
適切なタイミング、適切な場所。そして、それは完全に吸うわけではありませんでした。
Facebookが勝っているのと同じ理由です。
私の意見では、Javascriptはよくサポートされているため人気があります。
まず、それはNetscapeとIE=の両方で唯一の言語です。「JavaScriptコミュニティ」が確立されて安定した後は、誰もが構築する必要のある「別の善」について考えることができませんでした。ゼロから。彼らはただそれをより良くするために貢献するだけです。
新しい人気のある言語を構築したい場合、私が最初に考えるのはその言語を使用する人を決定する必要があるということです。最初の顧客は常に入手が困難であり、何らかの方法で言語をJavaScriptよりも優れたものにする必要があります。たぶん、制限された分野/制限されたプログラマーのコミュニティでさえ、例えば、「iPhoneモバイル用のより良い/より速いJavaScriptエンジン」は良い選択かもしれません。
さらに、あなたの言語は、どの言語が生き残るかを決定するのはコミュニティであるため、コミュニティによって使いやすく、カスタマイズできる必要があります。
あなたは私を信じるつもりはありませんが、フラッシュと(少し前にJavaアプレット)はJavaScriptの人気の成長と言語自体の進化に大きな貢献をしました。
フラッシュが登場したとき、それはWebアプリケーションが考える価値のあるものであるという最初の証拠でした。
プラグインとのある種の競争では、表示しようとする試みが常にあります-私たちができることを見てくださいなしプラグインは、javascriptをより幅広いアプリケーションの言語にし、そのため人気がありました。