Oak は、1989 年にJames GoslingによってSun Microsystemsのセットトップ ボックスプロジェクト用に作成された、現在は廃止されたプログラミング言語です。この言語は後にJavaへと進化しました。
歴史
_waving.svg/500px-Duke_(Java_mascot)_waving.svg.png)
1985 年、サン・マイクロシステムズは次世代のスマート家電をプログラミングするための新しい技術の開発を試みており、サンはそれが大きな新たなチャンスになると期待していました。
チームは当初C++の使用を検討しましたが、いくつかの理由によりそのアイデアを却下しました ( Java の歴史を参照)。
当初、ゴスリングはC++の修正と拡張を試みましたが、すぐにそれを断念し、 Greenと呼ばれる新しいプラットフォームと、オフィスのすぐ外に立っていたオークの木にちなんでOakと名付けたまったく新しい言語を作成しました。[1]
1992 年の夏までに、彼らは Green OS、Oak 言語、ライブラリ、ハードウェアを含む新しいプラットフォームの一部をデモンストレーションすることができました。1992 年 9 月 3 日にデモンストレーションされた最初の試みは、グラフィカル インターフェイスとユーザーを支援する「Duke」と呼ばれるスマート エージェントを備えたStar7 [1]というPDAデバイスの構築に焦点を当てていました。
商標調査の結果、 OakはOak Technologyによって使用されていることが判明したため、 1994年にOakはJavaに改名されました。[2] Java 1.0は最終的に1996年に出荷されました。[3]
Javaとの違い
Oakは後のJava 1.0の基礎となったが、いくつかの違いもあった: [4] [5] Oak仕様ではいくつかの概念が計画されていたが、時間的な制約のため元の言語では実装されなかった:
- 符号なし プリミティブ型はJavaでは実装されないことが判明した。[6]
- 列挙型の enum キーワードは、Java 5.0で Java に実装されました。
- assertキーワードはJava 1.4で実装されました[7]
その他の概念はJavaとは異なっていたり、後に改良されたりした。[4]
- 抽象 メソッドはC++と同様に定義されました。
- Oak のデフォルトのアクセス レベルはJava の (デフォルトの)パッケージ プライベートアクセス レベルと同じでしたが、「private」と呼ばれていました。Oak には Java のアクセス修飾子に相当するものはありませんでした
private。
そして最終的に、いくつかのコンセプトが削除されました。
- すべての例外はチェックされませんでした。
- unprotectキーワードを使用すると、非同期例外を通知しないコードを記述することが可能になりました。
- 契約による設計もサポートされていました。[8] Oakにはクラス変数を制約できるアサーションがあり、その制約はクラスのすべてのパブリックメソッドとプロテクトメソッドの入口と出口で強制されました。メソッドには独自の事前条件と事後条件も設定でき、これらは継承されますが、サブクラスでは再定義できません。[4] [9]
参照
参考文献
- ^ Jon Byous (2003 年 3 月 12 日)。「Java テクノロジー: 初期の歴史」(PDF)。Sun Microsystems。2009年8 月 2 日閲覧。
ゴスリングは、窓の外の木にちなんで、この新しい言語を「Oak」と名付けました
。 - ^ Murphy, Kieron (1996 年 10 月 4 日)。「それでは、なぜ Java と呼ぶことにしたのでしょうか?」JavaWorld。2020年 7 月 15 日閲覧。
「弁護士らは、『OAK』という名前は、すでにOak Technologiesによって商標登録されているため使用できないと告げた」とサンの上級エンジニア、フランク・イェリン氏は語る。「そこで、新しい名前のアイデアを出すためにブレインストーミング会議が開かれた」
- ^ Jonathan I. Schwartz (2007年8月30日). 「違うことが必ずしも良いことではないが、良いことは常に良いこと」。2009年9月5日時点のオリジナルよりアーカイブ。 2009年8月2日閲覧。
- ^ abc Heinz Kabutz (2002 年 8 月 26 日). 「Once Upon an Oak ...」 javaspecialists.eu . 2009 年8 月 2 日閲覧。
- ^ 「Oak Language Specifications」。Sun Microsystems, Inc. 2000 年 8 月 16 日時点のオリジナルよりアーカイブ。2015 年3 月 6 日閲覧。
- ^ 「Java と unsigned int、unsigned short、unsigned byte、unsigned long など (というか、その欠如)」 。 2009 年8 月 2 日閲覧。
- ^ 「Java プログラミング言語用のシンプルなアサーション機能」。Sun Microsystems。2009年8 月 2 日閲覧。
- ^ Johannes Rieken (2007 年 4 月 24 日)。「Design by Contract for Java - Revised」(PDF) 。2010 年10 月 2 日閲覧。
- ^ 「「シンプルなアサーション機能」を超えた『契約による設計』のサポート」Sun Microsystems 。 2010 年10 月 2 日閲覧。
外部リンク
- Oak言語仕様
- ジャワの初期の歴史
