watermint.org - Takayuki Okazaki's note

JJUG CCC 2017 Spring

JJUG CCC 2017 Spring

ブログを書くまでがJJUG CCC、ということではありますが、かなり、、時間が経ってしまいました。6月頃に書き始めたものを再編集しているのと記憶もややあやふやな部分があり不正確な点もあるかとおもいますがご容赦ください。JJUG CCC 2017 Springへ参加した話を思い出しながらまとめています。

今回は年次総会の後に行われたJJUG CCC 20th fireside chatというセッションにて登壇させていただきました。発表者は「20回生き残っている幹事たち」ということでしたが、僕が実際にJJUG幹事として参加させてもらっているのは手元の記録が確かならば2009年6月からで20回すべてには幹事として参加していませんが、最初の頃はSun Microsystems社でJavaエバンジェリストとして関わっていたというオマケで加えてもらっています。

お話しした内容は当日のアドリブで、正確には覚えていませんが大まかに当日お話した内容に注釈を加えつつ振り返ってみます。

RIA

2007年頃といえばAdobeのAir、MicrosoftのSilverlightといったRIA (Rich Internet Application)が流行っていたように思います。RIAという言葉はほぼ死語ですが、現在のスマートフォン・タブレット向けのアプリ、あるいはMac App StoreやWindows StoreのようなデスクトップアプリとしてRIAという言葉は消え去ってもコンセプトとしては完全に当たり前のものとなりました。

初代iPhoneもこの年に発表されていますが、RIAの流れに続く原動力を作ったのは個人的には2005年にGoogle Mapsがリリースされたことだと思っています。個人的にも衝撃的でしたし、多くのインターネットユーザーや企業IT部門の考え方まで大きく変えていった原動力になったのではないかと思っています。当時、Web上で地図を見ると言えば住所で検索したり、上下左右ボタン、縮尺変更を押して切り取られた地図を次々に見ていく。というスタイルだったと思いますがマウスによるスクロールや縮尺変更は圧倒的にわかりやすく仕上げられていました。AjaxというWebテクノロジーもGoogle Mapsの発表を境に大きく花開いたと記憶しています。

さて、Java界でのRIAといえば、JavaFX。もともと、ICAN SuiteというSOA基盤ソフトウエアで知られていたSeeBeyondという会社を2005年にSunが買収したところが始まりです。SeeBeyondに在籍していたChris Oliverが個人プロジェクトとして作っていたF3というスクリプト言語が出発点となっています。2007年5月のJavaOneではJavaFXという名前で目玉としてキーノートにて発表されました。

当時の記事を少し読み返してみました。

2007発表されたJavaFXではJavaFX Scriptというスクリプト言語が同時に発表されています(これはまさに前述のF3そのものです)。GUI記述について、無理なく自然な記述ができるスクリプト言語です。JavaをiOS/macOSにおけるObjective Cとするならば、JavaFX ScriptはSwiftのような存在です。

F3という名前は”Form Follows Function” (形態は機能に従う)を元としているそうです。Chrisとは話をしたことはありませんでしたが、JavaOneセッションやブログなどで発信されていた彼のF3へのこだわりと、JavaFXをJavaのRIA基盤としてエコシステムを築き上げたいSunとの思惑は当時から少しずつずれているように感じていたように記憶しています。

その後、JavaFX 2.0が2011年に発表されるとJavaFX Scriptは廃止となり、Javaからネイティブに呼び出しができるライブラリの一つとなりました。2011年、すでに多言語実行プラットホームとなっているJavaにとって、ライブラリとして存在を変えることはまさに”Form Follows Function”であったのだと感慨深く思い出します。

Webサービス

10年程度前で記憶のあるトピックとしては2006年、Project Tangoという名前で.NET(Windows Communication Foundation)とJavaをWebサービスで相互運用するという発表があったことです。Project TangoはWeb Services Interoperability Technology (WSIT)という名前の成果物でWS-Security、WS-PolicyなどWS-I基礎的な仕様についてまとめ相互運用できるようパッケージ化されたものです。

今でこそ、APIを使ったサービス間連携というのはもはや何の疑いもなく当たり前のものとなっていますが、.NETとJavaで相互運用するということだけでニュースバリューになるぐらい相互運用するというのはまだ早熟な時期であったと思っています。

その後、RESTful APIというキーワードに注目が集まりより簡単にAPIが提供でき、利用できるになりプログラミング言語やOS環境に依存しないという土壌はどんどん整っていきました。

電話をかけるAPI、テキストを翻訳するAPI、株価や天気予報のAPIなど様々なAPIを組み合わせて新しいサービスを作るというのはシステム開発のなかでも珍しいことではなくなりました。Mashup Awardsという取り組みも2006年に始まっていていまもどんどん規模を拡大しているようです。

前述のようなRIAが目指した使いやすいインターネット向けUIはAPIを通じたサービス提供ならびにサービス利用が増えるに従ってその地盤を確固たるものになっていったものだと思っています。サーバサイドで起こっていた相互運用性やSOAなどのようなエコシステム、スマートフォンやタブレット、デスクトップ環境向けの「アプリ」というエコシステムは決してどちらか片方だけでは成り立ち得なかったのだろうと思っています。