Path: coconuts.jaist!wnoc-tyo-news!news.imnet.ad.jp!ripspost.aist.go.jp!news.tisn.ad.jp!zion.phys.s.u-tokyo.ac.jp!is.s.u-tokyo!tau From: tau@is.s.u-tokyo.ac.jp (TAURA Kenjiro) Newsgroups: fj.lang.java Subject: Re: Problems of Java Date: 18 Apr 1996 14:47:13 GMT Organization: Dept. of Info. Sci., Fac. of Sci., U. of Tokyo, Japan Lines: 101 Distribution: fj Message-ID: <4l5klh$58n@isnews.is.s.u-tokyo.ac.jp> References: NNTP-Posting-Host: piccolo.is.s.u-tokyo.ac.jp In-reply-to: yanagi@astec.co.jp's message of Thu, 18 Apr 1996 08:19:56 GMT 田浦@東大ともうします. > それは Java の持ち上げられ方についてなんですけれど、そこでよくキーワー > ドとなる OO, GC, VM, 型チェック等々、どれも素晴しい性質だと思います。 OO, GC, 型チェックはいいとして, VMがいいのはそれによって達成される portability/securityですよね. Nativeで同じことができればその方がいい に決まってます(念のため確認). > 思いますがいづれも以前からある道具立てのはずで、いろいろな言語に実装さ > れてきたものでもあると思います。しかし今までユーザの大半はある潔さをもっ > て「実行効率至上主義」で行動していたように思うんですね。小くて速くて資 > 源管理も己がやるオブジェクトを生成できる言語が「善」だったわけでその点 > で他の多くを切り捨ててきたんだと思います。 > 非常に同感です. OOで, GCがあって型チェックがある言語は以前からありました(Eiffel, Sather, Modular-3, UFO, Cecil). また, OOでGCがあるとかGCで型チェック があるとか, その手の言語は以前からいくつもあったわけです(CLOS, Smalltalk, ML, Self, ...). 「Pointer arithmeticがない言語」にいたって は, C/C++以外の言語はほとんどそうです. ただしもちろん, だから「その言語の方がいいのになぜそっちを使わないのか? 」ということにはならなくて, Javaでできることは, Appletが書け, niceな絵 が出せて, 音が出せて, しかもそれが多くのmachineで標準的に提供されてい て, しかもそれがSunという信頼できる会社によって将来に渡ってsupportされ ているわけですから, Javaの人気があるのは当たり前です. Javaの人気は, 言 語はそこそこniceで, appletというcapability, ライブラリ, 有名企業の support, その他全てを通して達成されたものです. 私も, 言語の設計自身というよりは, プログラミング環境全体が良いのだ, と いう意見に賛成します. > 皆が納得して世の中がそうなったんだよ、ということであれば諸手を挙げて > 賛成でハッピーな心地なんですけれど、そうではなくて後から反動が来るとい > うことだと恐いんですね。「小くて速いオブジェクト」で同じ機能が演られて > いるのを目の当たりにした時にそのまま平静でいられるかどうか。 > これですが, 私は, 一度Javaを知った人は, 傾向としてapplet以外の目的のた めにも, C/C++よりもJavaを使い続ける傾向があるのではないかと予想してい ます. いいかえれば, どうしてもここだけ速くしたいとか, 低いレベルなこと が書きたいという特別な*理由なく* C/C++を選ぶという人は少なくなってくる と思います(少なくとも個人で使用する言語を選べる人は). つまり, 間違ったprogramでもあぶないことにならないとか, pointer とそう でないものを区別して頭がいたくならないとか, applicationがportableに動 くとか, そういうものが達成するここちよさにはある程度のperformance penaltyをはらってもいい, と思っている人が, Javaを好む人の中には少なく ないと思います. その中の多くの人は, C/C++もちゃんと知っていて, 目的に 応じてJavaとC/C++を使い分けることができて, 「大部分の目的にはjavaを, 特別なところにはC/C++を使えばいい」という感じに思っているのではないで すか? ## 根拠は, Javaに対する人々の評判や, 何よりも僕自身や僕の近くにいる人 が昔からその手の言語(Lispなど)が提供するprogrammingの楽さ加減を知って しまうとそこからは理由なく離れられないというのを経験しているからです (もちろん言語のruntime (GCなど)を書く時はCを使います. が, compilerを書 くとなるとやはりLispを使ってしまいます). ではなぜ「Java」がでてくるまではC/C++がreplaceされなかったかについては 私の個人的なguessは, 言語の安全性, 簡潔さといった当たりの性質は, C/C++ を使っている人を動かす(i.e., 人に新しい言語を覚えさせる)だけの力はなかっ たが, 一度それを経験した人を定着させるだけの力はある, というものです. 一方, C/C++programmerを「動かす」力はappletというnew capability, つま り唯一その言語でしかできないことにあった, というものです. ちなみに, Javaに限らずappletをnative codeでかつsecureに動かそうという研究はあり ます. Javaもこれからまだどんどん速くなるとは思いますが. @InProceedings{Lucco95Omniware, author = "Steven Lucco and Oliver Sharp and Robert Wahbe", title = "Omniware: a universal substrate for web programming", pages = "359--368", booktitle = "Proceedings of the 4th International World Wide Web Conference", year = "1995", note = "¥ID{http://www.w3.org/pub/Conferences/WWW4/Papers/165/}", } また, MMMというbrowserがあって, MLを使ってappletが書けます. これは現状 ではbytecodeですが, mechanism的にはnativeを動かせるsubstrateになってい ます. 僕は今後に期待しています. @InProceedings{RouaixAWeb, author = "Fran¥c{c}ois Rouaix", title = "A Web navigator with applets in {Caml}", note = "¥ID{http://pauillac.inria.fr/‾rouaix/mmm/}", } 日本でも, 筑波大の加藤さんたちが, そういう研究をはじめています(御興味 があれば, 論文を送ります). -- Kenjiro Taura Yonezawa Laboratory, Department of Information Science Tokyo University tau@is.s.u-tokyo.ac.jp