プログラミング言語の歴史:Javascript Scatter and Consolidation

HTMLドキュメントの機能は徐々に開発されました。最初は、すべてがタグと画像を含む実際のテキストに限定されていました。 その後、サウンドファイルとビデオクリップを挿入して再生できるようになりました。 ただし、Webページにマルチメディアコンテンツを配置することに加えて、動的なクエリ処理と表示制御の問題がありました。 それを解決するには、標準のHTMLツールでは不十分でした。









Web上でページを生成する場合、クライアント/サーバーアーキテクチャに関連するジレンマがあります。 ページは、クライアント側とサーバー側の両方で生成できます。 1995年、Netscapeのスペシャリストはクライアント側のページ管理メカニズムを作成し、 JavaScriptプログラミング言語を開発した。



したがって、JavaScriptはWebハイパーテキストページを管理するためのクライアント側のスクリプト言語です。 ただし、実際には、JavaScriptはクライアント側のプログラミング言語だけではありません。 JavaScriptの先駆者であるLivewareは、Netscapeのサーバー側検索ツールです。 ただし、最も一般的なJavaScriptがフロントエンドを提供しました。



JavaScriptの基本的な考え方は、ユーザーがHTMLページを表示している間に、HTMLコンテナーの属性の個々の値と表示環境のプロパティを変更することです。 同時に、変更を更新するためにページをリロードする必要はありません。



Netscape Communications Corporation Presents



Netscape Communications Corporationは、World Wide Webの開発に積極的に関与しています。 後者は明らかにこの会社のおかげです。とりわけ、NetscapeはWebにJavaScriptを提供しました。 当初、同社は、Netscape Navigatorブラウザの作成と無料配布(自宅で使用)を通じて、インターネット業界でのリーダーシップの闘いに適切に参入することができました。



しかし1995年4月、Netscapeは特別な任務を割り当てられたBrandon Eichを雇いました。 彼は、Netscape NavigatorブラウザーにSchemeプログラミング言語(または同様のもの)を埋め込むという課題に直面していました。

Schemeは関数型プログラミング言語であり、最近のLisp言語で最も人気のある2つの方言の1つです(他の一般的な方言はCommon Lispです)。


しかし、問題の声明は、控えめに言っても、あまり正確ではないため、Eihはサーバー製品を担当するグループに移され、そこで1か月働いてHTTPプロトコルを改善しました。 5月に、開発者はクライアントチーム(ブラウザー)に戻り、そこですぐに新しいプログラミング言語の概念の開発を開始しました。



しばらくして、LiveScriptと呼ばれるスクリプト言語が登場しました。 この言語は、以前は静的であったHTMLドキュメントに対話機能を実装するために作成されました。 LiveScriptサポートは、Netscape Navigatorブラウザの最初のバージョンで実装され、非常に人気があり、成功しました。



Brendan Eichに加えて、Netscape Communicationsの共同設立者であるMark AndressenとSun Microsystemsの共同設立者であるBill Joyは、新しい言語の開発に貢献しました。 ブラウザをリリースするための言語の作業を完了する時間を確保するために、企業は協力契約を締結しました。 彼らの目標は、Webリソースのコンポーネント(画像、プラグイン、Javaアプレット)を「接着するための言語」を作成することでした。



Netscape CommunicationsとSun Microsystemsの合意、およびLiveScriptのアイデアとJavaフレームワークの組み合わせの結果、ネットワークアプリケーションを開発し、最終的には動的なWebページを作成するために設計された「Mocha」と呼ばれる環境が作成されました。 この環境はオープンソースソフトウェアとしてリリースされ、使用されているソフトウェアプラットフォームに依存していませんでした。



このプロジェクトは、1995年12月にJavaScript 1.0という名前で2つの会社によって公開された仕様の作成に至りました。



Netscape対Microsoft対標準化



JavaScriptをサポートした最初のブラウザーはNetscape Navigator 2.0でした。 しかし、Microsoftは風が吹いている場所をすぐに認識し、JScript 1.0と呼ばれる独自の「JavaScript」を開発しました。 当然、そのサポートはMicrosoft Internet Explorer 3.0およびInternet Information Serverに実装されました。



JScriptは正式にはMicrosoftの独立した開発でしたが、NetscapeのJavaScript 1.0と互換性があることが判明しました。 さらに、あるブラウザ用に記述されたスクリプトは、別のブラウザで実行される可能性が高いです。



Netscapeは後に、Netscape Navigator 3.0およびLive Wire Webサーバー用のJavaScript 1.1をリリースしました。 このバージョンでは、JavaScript 1.0のすべての特徴的な機能が保存され、多くの新しい機能が追加されました。



また、Microsoftは独自のJScript言語を改良しましたが、JavaScript 1.1のすべての革新を含まないことにしました。 その瞬間から、ブラウザーの非互換性が発生しました。JavaScript1.1で記述されたスクリプトを実行しようとしても、Microsoft製品で使用した場合、それらは認識されないかエラーになりました。



新しい言語のバージョンをより一般的にするために、NetscapeはJavaScriptの説明をリリースしました。







しかしすぐに、Netscape、Microsoft、およびその他の企業は、平和的に同意し、共通の標準を開発する方が良いと判断しました。 欧州コンピュータ製造協会(ECMA)は1996年11月に作業を開始しました。 翌年の7月に、ECMAScriptと呼ばれる新しい言語が作成されました。



その間、標準の作業が進行中で、競合他社は時間を無駄にせず、独自の言語の新しいバージョンをリリースしました。NetscapeNavigator 4.0ブラウザー用のJavaScript 1.2と、Microsoft Internet Explorer 3.0ブラウザー用のJScript 2.0です。 したがって、スクリプト言語の互換性の問題はさらに強化されました。これらの言語を完成させる際、共通標準(ECMA)は考慮されませんでした。



Web開発者の生活は非常に複雑です。 各ブラウザーの機能を覚えるだけでなく、両方のブラウザーで表示できるWebページを作成する必要がありました。



彼らのほとんどは、状況は決して変わらず、悪化するだけだと確信していた。 しかし、楽観主義者は、ECMAのおかげでブラウザーが再び互換性を持つようになることを望んでいました。

競合企業は、ECMA 262標準の第3版(ECMAScript Edition 3)のリリースによってのみ頑固な行動を止め、JavaScript 1.5とJScript 5.5をリリースしました。 これらのバージョンは、ECMAScript Edition 3とほぼ100%互換性がありました。



その後、両方のブラウザーで同等に機能するJavaScriptスクリプトを作成できるようになりました。 理論的に。 ただし、ブラウザ間の違いにより、このタスクは依然として複雑になりました。





表1.1。 NetscapeブラウザーでのJavaScriptサポート





表1.2。 Internet ExplorerブラウザーでのJavaScriptサポート



それにもかかわらず、JavaScriptはブラウザー開発者の間だけでなく、オープンソース開発者の間でも広く使用されています。



Black Duck Softwareによると、JavaScriptの使用はオープンソースソフトウェア開発で増加しています。 2008年8月から2009年8月の間にリリースされたプロジェクトの36%はJavaScriptを使用して記述されています。



今日のJavascript



TIOBEインデックスによると、検索エンジンのGoogle、MSN、Yahoo!、Wikipedia、YouTubeのデータに基づいて、2016年8月のJavaScript 7位でした。 1年前、彼は9番目の位置を占めました。







オープンソースソフトウェアの80%は、C、C ++、Java、シェル、およびJavaScriptで記述されています。 同時に、JavaScriptはこれらの言語の中で唯一、使用率が前年比で増加している唯一の言語です(コードの行を数えると2%以上増加します)。



JavaScriptは、クライアント側のWebアプリケーションの開発に使用される最も一般的なプログラミング言語です。



さらに、JavaScriptは次の開発分野で積極的に使用されています。



•バックエンド

•モバイルアプリケーション

•デスクトップアプリケーション

•埋め込み。 冷蔵庫/時計/やかん/ IoT



現在、JavaScriptは、よく開発されたOSSモジュールのエコシステムを備えた最も人気のあるプログラミング言語であり、他の既存の選択肢とは異なり、「普遍的」と呼ぶことができます。 そして、JavaScriptのおかげで現実になりました、 Eric Elliot は書きました



JavaScriptの見通し



どんな分野の開発者にとっても最適なソリューションとして市場で明確に認識されるような言語や技術はありません。 各オプションには、独自の利点と欠点があります。



最新のWebソリューションの複雑さは、大幅な改訂を長い間必要としていました。 そのため、開発者はJavaScript標準の新しいバージョンであるECMAScript 6および7に多くの注意を払いました。



標準の6番目のバージョン(ちなみに、ES4のリリースの失敗にも関わらず、ES6 Harmonyと呼ばれることもあります)には、クラス、モジュール、コレクション、イテレーター、ジェネレーター、プロキシ、型付き配列、Promise、新しいメソッドの複雑なソリューションの作成を大幅に促進する変更が含まれています標準オブジェクトのプロパティと新しい構文機能など。



ECMAScript 6とは異なり、ECMAScript 7仕様には、ECMAScript Next仕様の継続的に更新されるバージョンの一部として進化した変更が比較的わずかしか含まれていません。 ブラウザーで既にサポートされている機能は、このドラフト仕様から標準に移行されたため、ECMAScript 7はすべての主要なブラウザーですぐに利用でき、実装に追加の時間を必要としません。



ECMAScript 7には、ECMAScript 6の欠陥と改良点の削除に関連する変更が含まれています。



JavaScriptは依然として有望なプログラミング言語です。 その展望については、すでに多くのことがHabréに書かれています。



1.実際のプロジェクトでのTypeScriptの使用の増加、代替プロジェクトの開発、および相互の強化。



2. JSでのクロスプラットフォーム開発のためのツールの開発。サイトとアプリケーションの境界を引き続き消去します。



3. JavaScriptの開発、多くの最新のプラットフォーム(ただしすべてではない)でのJSのネイティブ開発によるスマートテレビとコンソールの成長。



4. JavaScriptからネイティブデバイス機能にアクセスするためのAPIの開発、JSでのNUIの適応。 (数年は引きずられます。)



5.人気のあるライブラリの新しい改訂版。複雑なフレームワーク、ES6に基づくニッチソリューションを作成するための入力しきい値を増やします。



6.ブラウザによるWebコンポーネントの適応、コントロールおよびさまざまなフレームワークの開発者による新しいテクノロジーの採用。



7.企業および教育環境でのJavaScriptのパッケージマネージャーおよびビルドシステムの適用、一般的なWeb開発ツールへの統合。



8. JSでのグラフィックライブラリの開発、大規模または著名な市場プレーヤーによる新技術の実証的適応(ゲームとインタラクティブコンテンツが主な原動力です)



9. WebGLでのレンダリング、3Dおよびゲームライブラリの開発、ソーシャルネットワークを介した潜在的なブレークスルーを備えたUnity 5。



10. Node.jsに基づくIoT向けのクラウドソリューション、クライアント側の新しいパイロットプロジェクト。



All Articles