java 20年史 (jjug ccc 2015 春 基調講演)

52
Java 20 年史

Upload: kazuyuki-kawamura

Post on 15-Jul-2015

2.497 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Java 20年史 (JJUG CCC 2015 春 基調講演)

Java 20年史

Page 2: Java 20年史 (JJUG CCC 2015 春 基調講演)

自己紹介

河村嘉之

日本Javaユーザグループ

創設メンバー

副会長

初めて触れたJavaのバージョン

1.0

Page 3: Java 20年史 (JJUG CCC 2015 春 基調講演)

1995

2015

今日のお話

Javaの20年

Page 4: Java 20年史 (JJUG CCC 2015 春 基調講演)

1995.5.23

Page 5: Java 20年史 (JJUG CCC 2015 春 基調講演)
Page 6: Java 20年史 (JJUG CCC 2015 春 基調講演)

Java リリース

Java リリース

1995/5/23 Sun World Conference

JDK 1.0 リリース

1996/1

Java

Write Once, Run Anywhere

Java仮想マシン

オブジェクト指向

ポインタなし

Networkを意識したAPI群

スレッド

Page 7: Java 20年史 (JJUG CCC 2015 春 基調講演)

1995〜2000

Page 8: Java 20年史 (JJUG CCC 2015 春 基調講演)
Page 9: Java 20年史 (JJUG CCC 2015 春 基調講演)
Page 10: Java 20年史 (JJUG CCC 2015 春 基調講演)

JDK 1.1

1997年2月リリース

新機能

国際化!

AWTイベントモデルの再構成

内部クラス

リフレクション

Java Beans

JDBC

Java RMI

Page 11: Java 20年史 (JJUG CCC 2015 春 基調講演)

J2SE 1.2

1998年12月リリース

呼び名がJava 2へ

新機能

Swing

JITコンパイラ (Sun製)

Java IDL (CORBAとの相互運用)

コレクションフレームワーク

Page 12: Java 20年史 (JJUG CCC 2015 春 基調講演)

Servlet

Servlet

HTTPリクエストを受け取ってサーバ側でJavaを実行し処理をする仕組み

1.0 1997/01

2.1 1998/11

Java Servlet Development Kit (JSDK)

Apache Jserv

Page 13: Java 20年史 (JJUG CCC 2015 春 基調講演)

EJB

Enterprise Java Beans

Javaエンタープライズアプリケーションのコンポーネント化技術

当初はネットワーク上のリモートオブジェクトとして提供

EJB1.0 1998/3

EJB1.1 1999/12

EJB2.0 2001/8

EJB2.1 2003/11

コンポーネントの再利用

Page 14: Java 20年史 (JJUG CCC 2015 春 基調講演)

J2SE・J2EE・J2ME

1998年発表

J2SE → Java 2 Standard Edition

J2EE → Java 2 Enterprise Edition

J2ME → Java 2 Micro Edition

Page 15: Java 20年史 (JJUG CCC 2015 春 基調講演)

Tomcat

Apache Software Foundationから1999年にRelease

Servlet & JSPを実行するためのWebコンテナ

Page 16: Java 20年史 (JJUG CCC 2015 春 基調講演)

ブラウザ戦争

Netscape Navigator

1994年に1.0がリリース

1995年 JavaScriptサポート

Internet Explorer

Microsoftが1995年にリリース

Internet Explorer 6のリリースは2001年

Page 17: Java 20年史 (JJUG CCC 2015 春 基調講演)

1995〜2000

Page 18: Java 20年史 (JJUG CCC 2015 春 基調講演)

2000〜2005

Page 19: Java 20年史 (JJUG CCC 2015 春 基調講演)

Struts

Craig McClanahanが開発し、2000/5にApache Foundation

に寄贈されたMVCフレームワーク

2005年にトッププロジェクトへ昇格

1.x系最終リリース 2008/10 (2013/4サポート終了)

2.x系

Page 20: Java 20年史 (JJUG CCC 2015 春 基調講演)

Spring Framework

Rod Johnsonが開発したサーバサードJavaのフレームワーク

2002年10月リリース

IoC / DI

Page 21: Java 20年史 (JJUG CCC 2015 春 基調講演)

J2SE 5.0

2004/9/30 リリース

J2SE 5.0の新機能

Generics

アノテーション

拡張for文

Enum

Javaの大改造1回目

Page 22: Java 20年史 (JJUG CCC 2015 春 基調講演)

Webサービス

SOAP、RESTなどHTTPなどのインターネット技術を通してメッセージの送受信可能なサービス

当初は実験的なサービスが中心

バックエンド連携にもWebが広がる

Page 23: Java 20年史 (JJUG CCC 2015 春 基調講演)

2000〜2005

Page 24: Java 20年史 (JJUG CCC 2015 春 基調講演)

2005〜2010

Page 25: Java 20年史 (JJUG CCC 2015 春 基調講演)

Java EE 5

Java 2 Enterprise Edition

2006年5月リリース

新機能

アノテーション対応

DI

POJO化

JPA

Page 26: Java 20年史 (JJUG CCC 2015 春 基調講演)

Javaとオープンソース

Java リリース当時

新しい技術はSun/IBMなどの大企業から

2000年代中頃からの傾向

新しい技術はオープンソースから

オープンソース→標準という流れ

Page 27: Java 20年史 (JJUG CCC 2015 春 基調講演)

Javaオープンソース化2006/11/13

Page 28: Java 20年史 (JJUG CCC 2015 春 基調講演)

Java SE 6

Java 2 Standard Edition 6.0

2006年12月リリース

新機能

スクリプト言語サポート / Rhinoの組み込み

JDBC 4.0 / JavaDB

JAXB 2.0 / StAX parser

JAX−WSの向上

Page 29: Java 20年史 (JJUG CCC 2015 春 基調講演)

Java EE 6

2009年12月リリース

新機能

CDI

Bean Validation

JAX−RS

Page 30: Java 20年史 (JJUG CCC 2015 春 基調講演)

日本Javaユーザグループ創設2007/4/23

Page 31: Java 20年史 (JJUG CCC 2015 春 基調講演)

JavaScriptの再生

Ajax

Asynchronous JavaScript + XML

ページ遷移だけではないWebページの表現が可能に

Web 2.0

APIを使ったサービスのMashupなど

ブラウザの役割の変化

ページを見るツール

→ Webアプリケーションのクライアント実行環境

Page 32: Java 20年史 (JJUG CCC 2015 春 基調講演)

第2次ブラウザ戦争

Firefox

源流は1998年のNetscape Communicatorのオープンソース化

Mozilla Foundationが提供するWebブラウザ

Mozilla Firefox 0.8 2004/2リリース

Chrome

Googleが提供するWebブラウザ

2008/12リリース

Internet Explorer 6のレガシー化

Page 33: Java 20年史 (JJUG CCC 2015 春 基調講演)

スマートフォン・タブレット

iPhone

2007年1月 Macworld Expoで発表 (6月発売開始)

iPad

2010年1月発表 (4月発売開始)

Android

2007年11月 Open Handset Allianceを通じて概要が発表

2008年9月初の商用端末

Page 34: Java 20年史 (JJUG CCC 2015 春 基調講演)

クラウド

コンピューティングリソースをインターネットの向こう側に持っていく

リソースの提供形態

SaaS – アプリケーション

PaaS –プラットフォーム

IaaS – インフラ

Page 35: Java 20年史 (JJUG CCC 2015 春 基調講演)

2005〜2010

Page 36: Java 20年史 (JJUG CCC 2015 春 基調講演)

2010〜2015

Page 37: Java 20年史 (JJUG CCC 2015 春 基調講演)

Sun 買収

Page 38: Java 20年史 (JJUG CCC 2015 春 基調講演)

Java SE 7

2011年7月リリース

約5年ぶり

新機能

Project Coin (言語仕様の小さな変更)

NIO.2

InvokeDynamic

Fork/Join Framework

Page 39: Java 20年史 (JJUG CCC 2015 春 基調講演)

Java EE 7

2013年5月リリース

新機能

WebSocket

JSONサポート

Concurrency Utilities

バッチ

HTML5対応 (JSF、JAX−RS)

Page 40: Java 20年史 (JJUG CCC 2015 春 基調講演)

Java SE 8

2014年3月リリース

新機能

Lambda式への対応

Stream

Date and Time APIの追加

Type Annotation

新JavaScriptエンジン Nashorn

JavaFX 8 (JavaFXのJDKに対する統合)

コンパクトプロファイル (小さなデバイス向けのSEのサブセット)

Javaの大改造2回目

Page 41: Java 20年史 (JJUG CCC 2015 春 基調講演)

Internetに参加する”もの”

IoT

Internet of Things (もののインターネット)

今までに考えられなかった“もの”のネットワークへの参加

Wearable

今まで収集されなかったデータを集める機会

Page 42: Java 20年史 (JJUG CCC 2015 春 基調講演)

Big Data

生成されるデータの増大

収集・蓄積されていくデータ

集まると見えてくるもの

Page 43: Java 20年史 (JJUG CCC 2015 春 基調講演)

2010〜2015

Page 44: Java 20年史 (JJUG CCC 2015 春 基調講演)

Javaの20年とは?

Page 45: Java 20年史 (JJUG CCC 2015 春 基調講演)

Internet

Page 46: Java 20年史 (JJUG CCC 2015 春 基調講演)

ComputerとNetworkの遍在

Page 47: Java 20年史 (JJUG CCC 2015 春 基調講演)

Software is eating the worldMarc Andreessen, 2011

http://www.wsj.com/articles/SB10001424053111903480904576512250915629460

Page 48: Java 20年史 (JJUG CCC 2015 春 基調講演)

2035

Page 49: Java 20年史 (JJUG CCC 2015 春 基調講演)
Page 50: Java 20年史 (JJUG CCC 2015 春 基調講演)

The best way to predict

the future is to invent it.(未来を予測する最善の方法は、

それを発明することだ)Alan Kay, 1971

Page 51: Java 20年史 (JJUG CCC 2015 春 基調講演)

創ろう!

Page 52: Java 20年史 (JJUG CCC 2015 春 基調講演)

Happy 20th Anniversary, Java!