java 20年史 (jjug ccc 2015 春 基調講演)
TRANSCRIPT
Java 20年史
自己紹介
河村嘉之
日本Javaユーザグループ
創設メンバー
副会長
初めて触れたJavaのバージョン
1.0
1995
2015
今日のお話
Javaの20年
1995.5.23
Java リリース
Java リリース
1995/5/23 Sun World Conference
JDK 1.0 リリース
1996/1
Java
Write Once, Run Anywhere
Java仮想マシン
オブジェクト指向
ポインタなし
Networkを意識したAPI群
スレッド
1995〜2000
JDK 1.1
1997年2月リリース
新機能
国際化!
AWTイベントモデルの再構成
内部クラス
リフレクション
Java Beans
JDBC
Java RMI
J2SE 1.2
1998年12月リリース
呼び名がJava 2へ
新機能
Swing
JITコンパイラ (Sun製)
Java IDL (CORBAとの相互運用)
コレクションフレームワーク
Servlet
Servlet
HTTPリクエストを受け取ってサーバ側でJavaを実行し処理をする仕組み
1.0 1997/01
2.1 1998/11
Java Servlet Development Kit (JSDK)
Apache Jserv
EJB
Enterprise Java Beans
Javaエンタープライズアプリケーションのコンポーネント化技術
当初はネットワーク上のリモートオブジェクトとして提供
EJB1.0 1998/3
EJB1.1 1999/12
EJB2.0 2001/8
EJB2.1 2003/11
コンポーネントの再利用
J2SE・J2EE・J2ME
1998年発表
J2SE → Java 2 Standard Edition
J2EE → Java 2 Enterprise Edition
J2ME → Java 2 Micro Edition
Tomcat
Apache Software Foundationから1999年にRelease
Servlet & JSPを実行するためのWebコンテナ
ブラウザ戦争
Netscape Navigator
1994年に1.0がリリース
1995年 JavaScriptサポート
Internet Explorer
Microsoftが1995年にリリース
Internet Explorer 6のリリースは2001年
1995〜2000
2000〜2005
Struts
Craig McClanahanが開発し、2000/5にApache Foundation
に寄贈されたMVCフレームワーク
2005年にトッププロジェクトへ昇格
1.x系最終リリース 2008/10 (2013/4サポート終了)
2.x系
Spring Framework
Rod Johnsonが開発したサーバサードJavaのフレームワーク
2002年10月リリース
IoC / DI
J2SE 5.0
2004/9/30 リリース
J2SE 5.0の新機能
Generics
アノテーション
拡張for文
Enum
Javaの大改造1回目
Webサービス
SOAP、RESTなどHTTPなどのインターネット技術を通してメッセージの送受信可能なサービス
当初は実験的なサービスが中心
バックエンド連携にもWebが広がる
2000〜2005
2005〜2010
Java EE 5
Java 2 Enterprise Edition
2006年5月リリース
新機能
アノテーション対応
DI
POJO化
JPA
Javaとオープンソース
Java リリース当時
新しい技術はSun/IBMなどの大企業から
2000年代中頃からの傾向
新しい技術はオープンソースから
オープンソース→標準という流れ
Javaオープンソース化2006/11/13
Java SE 6
Java 2 Standard Edition 6.0
2006年12月リリース
新機能
スクリプト言語サポート / Rhinoの組み込み
JDBC 4.0 / JavaDB
JAXB 2.0 / StAX parser
JAX−WSの向上
Java EE 6
2009年12月リリース
新機能
CDI
Bean Validation
JAX−RS
日本Javaユーザグループ創設2007/4/23
JavaScriptの再生
Ajax
Asynchronous JavaScript + XML
ページ遷移だけではないWebページの表現が可能に
Web 2.0
APIを使ったサービスのMashupなど
ブラウザの役割の変化
ページを見るツール
→ Webアプリケーションのクライアント実行環境
第2次ブラウザ戦争
Firefox
源流は1998年のNetscape Communicatorのオープンソース化
Mozilla Foundationが提供するWebブラウザ
Mozilla Firefox 0.8 2004/2リリース
Chrome
Googleが提供するWebブラウザ
2008/12リリース
Internet Explorer 6のレガシー化
スマートフォン・タブレット
iPhone
2007年1月 Macworld Expoで発表 (6月発売開始)
iPad
2010年1月発表 (4月発売開始)
Android
2007年11月 Open Handset Allianceを通じて概要が発表
2008年9月初の商用端末
クラウド
コンピューティングリソースをインターネットの向こう側に持っていく
リソースの提供形態
SaaS – アプリケーション
PaaS –プラットフォーム
IaaS – インフラ
2005〜2010
2010〜2015
Sun 買収
Java SE 7
2011年7月リリース
約5年ぶり
新機能
Project Coin (言語仕様の小さな変更)
NIO.2
InvokeDynamic
Fork/Join Framework
Java EE 7
2013年5月リリース
新機能
WebSocket
JSONサポート
Concurrency Utilities
バッチ
HTML5対応 (JSF、JAX−RS)
Java SE 8
2014年3月リリース
新機能
Lambda式への対応
Stream
Date and Time APIの追加
Type Annotation
新JavaScriptエンジン Nashorn
JavaFX 8 (JavaFXのJDKに対する統合)
コンパクトプロファイル (小さなデバイス向けのSEのサブセット)
Javaの大改造2回目
Internetに参加する”もの”
IoT
Internet of Things (もののインターネット)
今までに考えられなかった“もの”のネットワークへの参加
Wearable
今まで収集されなかったデータを集める機会
Big Data
生成されるデータの増大
収集・蓄積されていくデータ
集まると見えてくるもの
2010〜2015
Javaの20年とは?
Internet
ComputerとNetworkの遍在
Software is eating the worldMarc Andreessen, 2011
http://www.wsj.com/articles/SB10001424053111903480904576512250915629460
2035
The best way to predict
the future is to invent it.(未来を予測する最善の方法は、
それを発明することだ)Alan Kay, 1971
創ろう!
Happy 20th Anniversary, Java!