Javaプログラミング言語の簡単な歴史
1. 概要
Javaは、世界中で最も人気のあるプログラミング言語の1つです。 これは、SunMicrosystemsの共同創設者であるBillJoyの支援を受けて、SunMicrosystemsの従業員であるJamesGoslingとPatrickNaughtonによって作成されました。
Sunは、1995年5月23日にSunWorldでJava言語を正式に発表しました。 その後、2009年に、オラクル社はサン社を買収しました。これは、言語が現在オラクルに属している理由を説明しています。
この記事では、Javaプログラミング言語の歴史を探ります。
2. Javaとは何ですか?
Javaは、多目的で強い型が付けられたオブジェクト指向プログラミング(OOP)言語であると説明されています。 設計上、実装の依存関係は可能な限り少なくなっています。
このプログラミング言語を使用すると、複数のデバイスでアプリケーションを作成できます。 その範囲は非常に広く、モバイルデバイス、POS端末、ATM、IoT(モノのインターネット)、およびWebページ用のソフトウェアを作成できます。
Kotlinは2021年のAndroid開発に推奨される言語ですが、Javaは依然としてAndroid用アプリを開発するためのデフォルト言語です。その大きな理由は、AndroidがJavaと緊密に統合されていることです。 実際、UIや特定のコアライブラリなど、そのOSの一部はJavaで記述されています。
3. 簡単な歴史
Javaプロジェクトがどのように始まり、時間の経過とともに進化してきたかを見てみましょう。
3.1. 始まり
このプロジェクトは、サンマイクロシステムズチームの舞台裏で、ジェームズゴスリング、マイクシェリダン、パトリックノートンの3人のエンジニアが小型電気機器に適用できる言語を設計しようとした1991年に誕生しました。
その後すぐに、彼らはデジタル制御された家電製品とコンピューターの間の収束の影響を研究するためにグリーンプロジェクトを立ち上げました。
彼らは、C ++と同様の構文を使用して、グラフィックとアニメーションのタッチスクリーンを備えたデジタルリモコンを作成しました。 数ヶ月にわたる徹底的な研究の成果であるこのリモコンには、居間の設備全体を制御するという素晴らしい機能がありました。 それは、それが実行されていたプロセッサから完全に独立した新しい言語でプログラムされ、リモートを他に類を見ないものにしました。
最終的に、この新しい言語を生み出したのは、グリーンプロジェクトのメンバーの1人であるジェームズゴスリングであり、彼はそれをオークと呼んでいました。
その後、アメリカのケーブル事業者がプロジェクトに参加したときに、プロジェクトは着実になりました。 その後、オークはFirstPersonになりました。 残念ながら、FirstPersonプロジェクトは、何よりも収益性を優先する業界よりもはるかに進んでいたため、商業的な成功はありませんでした。
3.2. HTTPプロトコルとモザイクブラウザの登場
1993年に、HTTPプロトコルとMosaicブラウザーが登場しました。これは、プロジェクトにとって重要なイベントでした。 この間、チームはインターネットが自社製品を配置するための理想的なネットワークであることに気づきました。
その後、1995年に、James Goslingは、アプレットと混合されたHTMLコンテンツを表示できるWebRunnerと呼ばれるブラウザを発表しました。 そこから物事が始まりました。 最初に、WebRunnerがHotJavaになり、次にjava.sun.comが正式に公開されました。
最終的に、このテクノロジーの名前は、プログラマーのお気に入りの飲み物、つまりJavaの島からの生産の一部であるコーヒーに敬意を表して、「Java」(アメリカの俗語で「コーヒー」を意味する)になります。
その時、SunとNetscapeは、この新しいテクノロジーをブラウザーに統合したいという彼らの願望を発表しました。そして、それは決定的に言語を立ち上げました。 その後、バージョンは1996年のバージョン1から2021年のバージョン17まで相互に続きます。
4. 特徴
その優れた機能のおかげで、Javaは人気のある便利なプログラミング言語になりました。 サンはそれを次のように特徴づけました:
- コンパイルおよび解釈
- プラットフォームに依存せず、ポータブル
- オブジェクト指向
- 堅牢で安全
- 分散
- なじみのある、シンプルで小さい
- マルチスレッドでインタラクティブ
- ハイパフォーマンス
- 動的で拡張可能
出典:「ProgrammingwithJava」 –EBalagurusamy。
次に、これらの各機能について詳しく説明します。
4.1. コンパイルおよび解釈
Javaは、コンパイルされた言語の能力とインタプリタされた言語の柔軟性を兼ね備えています。
コンパイラ( javac )はソースコードを bytecode にコンパイルし、仮想マシン( JVM )はこのバイトコードをマシン可読コードに変換して実行します。
4.2. プラットフォームに依存せず、ポータブル
2段階のコンパイルプロセスは、Javaの最も重要な機能であるプラットフォームの独立性の背後にあるものです。これにより移植性が可能になります。
プラットフォームに依存しないということは、JVMがインストールされている限り、1台のマシンでコンパイルされたプログラムをOSに関係なく他のマシンで実行できることを意味します。
移植性機能とは、さまざまなマシンでプログラムを実行する機能を指します。 実際、同じコードは、ハードウェアの互換性やオペレーティングシステムに関係なく、異なるプラットフォームで同じように実行され、ソースコードの再コンパイルや微調整などの変更はありません。
4.3. オブジェクト指向
Javaは、カプセル化、抽象化、継承などのオブジェクト指向プログラミングの概念を強力にサポートしています。
Javaプログラムのすべての命令とデータは、クラスまたはオブジェクト内に追加する必要があります。
4.4. 堅牢で安全
Javaには、堅牢で安全なアプリケーションの作成に役立ついくつかの便利な機能が含まれています。
最も重要なものの1つは、自動ガベージコレクションとともにメモリ管理システムです。 C / C ++のような言語と比較して、Javaは明示的なポインターの概念を回避し、プログラマーが割り当てられたメモリを手動で管理する必要がありません。
代わりに、GCが未使用のオブジェクトを削除してメモリを解放します。
さらに、Javaは強く型付けされた言語であり、アプリケーションのバグ数を減らすのに役立つ機能であり、エラー処理メカニズムを提供します。
4.5. 分散
この機能は、大規模なプロジェクトを開発するときに役立ちます。 プログラムを多くの部分に分割し、これらの部分を異なるコンピューターに保存することができます。 その結果、複数のノードで実行される分散型でスケーラブルなアプリケーションを簡単に作成できます。
これは、 RMI(リモートメソッド呼び出し)および EJB(エンタープライズJavaBeans)の概念を使用して実現できます。
4.6. シンプルでなじみのある
まず、Javaは、非常にクリーンで理解しやすいコーディングスタイルのおかげでシンプルです。 また、明示的なポインタの概念など、他の言語の複雑で難しい機能は使用しません。
最後に、Javaは、C ++などの既存の言語に基づいており、これらの言語の多くの機能が組み込まれているため、おなじみです。
4.7. マルチスレッドでインタラクティブ
スレッドベースのマルチタスクとも呼ばれるマルチスレッドは、複数のスレッドを同時に実行できる機能です。
つまり、複数のスレッドを定義することで、一度に多くのタスクを処理するJavaプログラムを作成できます。 マルチスレッドの利点は、が各スレッドのメモリを占有しないことです。すべてのスレッドが共通のメモリ領域を共有します。
4.8. ハイパフォーマンス
コンパイラが生成するバイトコードは高度に最適化されているため、仮想マシンはそれらをはるかに高速に実行できます。 これが、Javaが他の従来のインタプリタプログラミング言語よりも高速である理由です。
4.9. 動的で拡張可能
この機能は、新しいクラスライブラリ、メソッド、およびオブジェクトを動的にリンクする機能を提供します。 Javaは、進化する環境に適応できるため、非常に動的です。
5. Javaランタイム環境の有用性
ソフトウェアアプリケーションを実行できるようにするには、それが機能できる環境が必要です。通常は、Linux、Unix、Microsoft Windows、macOSなどのオペレーティングシステムです。 他のサポート環境がない場合、プログラムはオペレーティングシステムとそのリソースの機能によって制限されます。
Javaランタイム環境(JRE)は、プログラムとオペレーティングシステム間のトランスレータおよびファシリテーターとして機能します。 オペレーティングシステム上で実行され、追加のJava固有のリソースを提供します。
6. 結論
Java言語は、そのすべての特殊性を通じて、他の既存の言語の可能性の大部分を統合し、それらの主要な欠点のいくつかを消去します。
したがって、それは比較的現代的であると一般に認識されている言語であり、その可能性は十分に確立されています。