create every day - 福野泰介の一日一創

Java Ringから16年、Java Car 登場! IoT時代、Javaの逆襲なるか!?

2014/12/02 23:55:00
#IoT #profile 

Oak(オーク)と呼ばれ、Java(ジャバ)言語として登場した1996年。マウスとグラフィカルなインターフェイス、そしてWebが始まる契機となった、Windows95の登場直後。近所のネットカフェにてJavaを知る。借りてきたJDK1.0.2が入ったCD付きの本を夢中になって読み、ブラウザ上で自作のプログラムが動いた感動の朝。

Javaのいいところは、洗練されたライブラリにあった。Windows以前のDOS環境でのグラフィック処理は標準がなく、WindowsのライブラリはC言語用に作られた、名前が長く、数が膨大で、拡張用のおまじないを多用するわかりにくいものと比べて雲泥の差があった。C++と共に知ってはいたオブジェクト指向、その威力を初めて体感、感動した。グラフィックのみならず、入力処理、通信、マルチスレッドも非常に簡潔に書けるのが楽しかった。問題は、遅かったこと。ソフトもハードも若干、Javaに追いついていなかった。

Write Once, Run Anywhere(プログラムを一度書けば、どこでも動く)」というフレーズを支える、Javaの仮想マシン(VM = virtual machine)技術。ハードウェアの違いをソフトウェアによる仮想的なハードウェアによって吸収するというシンプルなアイデア。さまざまの機種のパソコンやサーバーで動くだけでなく、なんと指輪の上でも動く。家宝「Java Ring」は、1998年のJavaOne参加時にもらったもの。

当時の熱狂を楽しみつつも、どこか冷めた目で見ていたのは、実際の製品として発売される気配がなかったことと、当時のよく使われていたブラウザ「Netscape Navigator」上でJavaを動かす初回に異常に重く使い物にならなかったこと。また理想と違い、ブラウザ間や機種間で異なる動作の違いに悩まされた。地図を操るApplet(Applet = ブラウザ上で動くJavaでつくるプログラム)や、福井高専の卒業研究など使うシーンは限定的だった。

Java Ringから16年。なんと、Java Car が公表された。Java言語は、サーバー側では一般的になり、iPhoneじゃない方のスマホ、Android用のアプリを使うときの標準言語となっているが、現在のJavaの所有者であるOracle自らが、かつての夢「どこでもJava」を謳いだしたことに時代を感じる。「Write Once, Run Anywhere」は、HTML5によってOSになったブラウザとJavaScript言語(Java言語とは名前は似ていても全くの別言語)によって成し遂げられつつある現在。どのようなポジションを築いていくか、登場時からのJavaファンとして楽しみでならない。


「News & Trend - クルマにJavaを搭載した“Java Car”公開、IoTを機に攻勢に出るオラクル:ITpro」

Java Carに期待する5つのこと
- java.car.* パッケージによる、車APIの公開
- 車載コンピューター、ダッシュボード、ナビ画面などのアプリのオープン化
- GC(ガベージコレクション)による遅延がないこと
- フェイルセーフ機構(いざというときは車をマニュアル操作で止められること)
- Java Car inside のかっこいいロゴ!


(Java for Automotive Car Electronics Show / 2014.1)より

※私とJava、8つの思い出
- 日本非対応JDK1.0.2、ひらがな画像を使って無理やり日本語チャットブラウザアプリ作成
- Javaで作ったWebページの先読みアプリを福井のプロコン出展、図書券もらう
- バイト先にあったシリコングラフィクスのIndyでも動いたJavaでWebサーバー作成
- 遅さ克服のため、Javaのライブラリを真似て、Windows用C++クラスライブラリを作ってゲーム作成
- 後に、同様の取り組みを偶然見つけて、偶然同じ福井生まれだと知る(ThreadJack
- docomoによる世界初のJava搭載携帯電話、F503iはJavaが動いた!ただしアプリサイズ10KBまで!
- Tomcatが遅くてイライラしたことから、独自WebアプリケーションサーバーZerosen作成
- 最近お気に入りのマイコン、上位機種にはJavaモードがあることに驚く!(Java Chip!?)

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image