Skip to content
oraccha edited this page Jan 14, 2013 · 1 revision

オブジェクト指向言語の一つ.

1995年5月23日の「Sun World Expo」で一般公開されたので,この日が公式な誕生日.元々は,1990年ごろ開発がスタートした家電製品への組込み用の言語 Oak がベースになっている.このころ開発のターゲットとなっていたのは,StarSevenという(今で言う)タブレットPCのようなPDA

  • [http://java.sun.com/features/1998/05/birthday.html JAVA TECHNOLOGY: THE EARLY YEARS] (Sun)
  • [http://today.java.net/jag/old/green/ A Brief History of the Green Project]

#comment Wed Nov 28 16:17:26 2007 [http://japan.cnet.com/special/story/0,2000056049,20359443,00.htm 「Javaの父」サンのジェームズ・ゴスリング氏が取り組むJavaの未来] (2007-11-01) JavaFX。 . Fri Nov 2 09:24:24 2007 メモ tarとほぼ同じ感じで使えるアーカイバjar。普通はMETA-INF/MANIFEST.MFというマニュフェストファイルが付くが、-Mオプションを指定すれば、作られなくなる。 . Thu Jun 21 13:54:26 2007 TikiGuion:BeansBinding あるObjectのこの属性と別のObjectのあの属性とを"繋ぐ"、 つまり一方を更新したら他方も自動的に更新される… ってのを実現する仕組み。 ライブラリで実装されてたり、 JavaFX だと言語仕様で実現してたり。 // ただ、元々Bindingなんて概念が無い既存言語(=Java)と既存クラスに対して 無負担でBindingが出来るようになるわけでもないので、 まったく任意の属性がBind対象になるかというと、そうもいかないようだ。 たとえばPropertyChangeListenerで見張らせてくれる属性しか扱えない、など。 .

Tue Nov 14 12:59:16 2006 えええっ!?JavaがGPLになるって?? [http://www.itmedia.co.jp/enterprise/articles/0611/13/news060.html Sun、JavaをGPLでオープンソース化] (ITmedia 2006-11-16) . Thu Jul 6 11:58:31 2006 ↓Swingの簡単なプログラムがZERO3で動いた。嬉しいなあ。ちなみにComponentの見た目はさすが(ぉ)Swingらしく自前風味。つまりPCで動かしたのと同じ感じ。 //あと未確認だがAudioもサポートしてるらしい。音ソフトが作れるかな? . Thu Jun 22 15:49:38 2006 Mysaifu JVM - WindowsCE (Pocket PC 2003) 用Java仮想マシン> http://www2s.biglobe.ne.jp/~dat/java/project/jvm/index.html // W-ZERO3とかの市販電話に普通搭載されてる奴(J2ME)じゃなく、 J2SE(を目指してる)だそうです。 わーい。 . Thu Apr 27 19:22:42 2006 またStaticInnerの話だが。 // x.HogeクラスのBuilderは、 x.Hoge.Builderクラスという名前にしとくと いいのではないだろうか? // x.HogeBuilderなんてダサイじゃん。 x.builder.Hogeとかもx.Hoge.Builderよりは美しくない(繋がりが見えにくい)し、 x.hoge.Instance と x.hoge.Builderなんてのもご免こうむるし。 // Builder(いわば複雑化したコンストラクタ)なので、 HogeのインスタンスとLexicalScope関係を築いても 何のメリットもない。 . Sat Jan 28 13:54:39 2006 staticでないインナーは、やっぱりキモイなあ。 関数の歴史駆るスコープならOKって気がするけど、 Object間で歴史駆るって言われても、 勝手にハラワタいじるなよって感じ(T_T)。 // てゆーかstaticでないインナーは、 もしかしてfriend(C++の)の代わりっすか? (試す…)なるほどfrinedだなこりゃ。 ただしインナーを使えばfriendになれるのが入れ子クラスに限られるんで、 自由度が物足りない。 . Sat Jan 28 13:53:48 2006 クラスの中にクラスを入れるのは、まあ気分っちゃぁ気分の問題ですね。 気分という言い方になるのは、それが"どんな意図を伝える"ことになるのかが、 いまいち一意に決まっていないという点(^^;。 なんとなく「中の人」(わら)な感じだと言いたいんだけど、 厳密に問うなら「中」って何?という感じ。 . Sat Jan 28 11:04:36 2006 SHIMADA 「Javaの格言」(2000年発行)では、staticインナークラスは名前空間の統制の仕組みを提供するが、そのための機構としてはすでにパッケージがあるため、必要となることはおそらくないだろう、というようなことが述べられています。 . Thu Jan 26 20:52:32 2006 あれ?でもそもそもClassのLoadが(素では)強制されるわけじゃないから、static初期化でもトリガーできないじゃん。 . Thu Jan 26 20:28:04 2006 あ。JDK1.4以降だと、 テキトウに例外起こしてCatchして、 Exception#getStackTrace で 今居る文脈のClass(名)を取る、 ってのが出来るんだっけ。 . Thu Jan 26 20:06:23 2006 逆に、拾われるべきクラスのほうで、 拾われるためのstaticメソッドとかstatic初期化とかを、 用意するって手も有るわけだけど、 Javaじゃstatic文脈だと"今居るクラス"を取得する手段が無い(よね)んで、 static初期化とかをコピペする際にいちいちClass名を明示的に書いてやらんとならん。 . Thu Jan 26 18:47:25 2006 Classを曖昧検索(ぉ)する方法って無いでしょうかね? 正確には"あるPackageの中のクラス全部"とかを拾いたい。 // ClassやClassLoaderには、何らかの条件(^^;に合致した複数のクラスを 返すメソッドが無いっぽいし、 意外なこと(ぉ)にPackage#getClassesなんてのも無い。 // あるいは継承関係の子クラスを探す奴でもいいんだけど、 ClassやClassLoaderには、Child云々なんてなメソッドも、 やはり無い。 うーん(T_T) . Tue Jan 24 14:44:06 2006 せっかく名前空間があるんだから、

package hoge.fuga.interface; interface FooBar{}

package hoge.fuga.implementation; public class FooBar implements hoge.fuga.interface.FooBar{}

とか書きたくなる。駄目かな?(^^; . Thu Sep 1 11:21:02 2005 TikiGuion:Java/StaticInnerClass この言語仕様って変だと思うのだけど、どうよ?>諸兄 . Mon Jun 20 16:14:47 2005 で、やっぱりSunの認証VS自由の戦いになるのかな。 そして長い目で見ればLinuxみたいにSolaris^H^H Sun純正Javaを市場から蹴落とすんだろか? . Mon Jun 20 16:12:57 2005 ↓これが出来上がるとDebian勢とかが喜ぶよね(^^; あと [http://www.itmedia.co.jp/enterprise/articles/0505/10/news053.html ITmedia エンタープライズ:OpenOffice 2.0に対し、フリーソフトウェア支持者が「Javaを使いすぎ」と批判] ってのも"解決"するし。 . Mon Jun 20 15:00:19 2005 りょうせい [http://pcweb.mycom.co.jp/news/2005/05/10/004.html Harmony - Apacheプロジェクト、オープンソースJ2SE 5開発の提案] (MYCOM PCWeb 2005-05-10) ってのが話題になっていたようだ. .


プログラミング言語としてのJava

Eiffel な人の本を読んだ限り,Java に足りないのは多重継承,総称,共変化の3点らしく,これらが欠けているせいで,コードの再利用というオブジェクト指向のおいしい部分が活かせてないらしい.

  • 多重継承
    • Java では単一継承の制限を緩和するためにインタフェースを提供している.しかし,インタフェースでは実装を継承できないので,コードを再利用できない.例えば Mixin とか.
    • しかし,Peter Code の本にも書かれているけど,composition を使えばOKということで,コーディングテクニックの問題に還元できると思う.
    • Delegateのコードを、内部的に自動的に生成してくれるようになるといいかも。 Delegate先のObjectの用意(生成または外注)の手順と、 そのObjectへ必要なMethodを転送する手順と、を、宣言的な記述で与えるだけで、 それを実装コードに変換してくれるような奴。 . GenericJava もプリプロセッサ的なもので実現できるようなんで、 Delegateもプリプロセッサにしてもいいかも?
      • DelphiとJavaBeansのPropertyを比べて思うのだが、プログラムを楽にする 道の1つとして、「宣言的に書けるようにする」ってのが大きい気がする。
      • Eiffel って宣言的ですよね.
  • 総称
    • この話題は GenericJava へ.
  • 共変化(covariance)
    • シグネチャを変えることで,型キャストをなくす.

オープンソースコンパイラ

  • Eclipse Java Compiler (ecj) . FedoraCore 5に入っている.

  • Jikes (IBM)

  • GCJ (GNU)

  • [http://www.dms.at/kopi/ Kopi] (DMS) . DIS(ディスアセンブラ),KSM(アセンブラ),KJC(コンパイラ)

  • [http://compose.labri.u-bordeaux.fr/prototypes/harissa/ Harissa] . Java バイトコード to C トレンスレータ.

  • jexc ([http://phase.etl.go.jp/Omni/home.ja.html Omni OpenMP Compiler]) . Java バイトコード to C トレンスレータ.


クラスライブラリ

  • [http://www.gnu.org/software/classpath/ Classpath] (GNU)
    • もともとは [http://www.japhar.org/ Japhar] プロジェクトで開発されていたものが独立した.

GUIツールキット

  • [http://www.uni-koblenz.de/~evol/japi/screenshots/sshots.html JAPI] . Java Application Programing Interface

関連する話題

Clone this wiki locally