SlideShare uma empresa Scribd logo
1 de 52
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 world
Marc Andreessen, 2011
http://www.wsj.com/articles/SB10001424053111903480904576512250
915629460
2035
The best way to predict
the future is to invent it.
(未来を予測する最善の方法は、
それを発明することだ)
Alan Kay, 1971
創ろう!
Happy 20th Anniversary, Java!

Mais conteúdo relacionado

Mais procurados

OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
Naoto Gohko
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
Akio Katayama
 

Mais procurados (20)

20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL
 
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
 
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
 
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere Liberty
 
Jsug 20160422 slides
Jsug 20160422 slidesJsug 20160422 slides
Jsug 20160422 slides
 
Java EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行についてJava EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行について
 
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッション
 
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
 
Eight meets AWS
Eight meets AWSEight meets AWS
Eight meets AWS
 
ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発
 
Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界
 
My sql security (暗号化)
My sql security (暗号化) My sql security (暗号化)
My sql security (暗号化)
 
JJUG 11月ナイトセミナー CDIをはじめよう
JJUG 11月ナイトセミナー CDIをはじめようJJUG 11月ナイトセミナー CDIをはじめよう
JJUG 11月ナイトセミナー CDIをはじめよう
 
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
 
MVC 1.0 JSR-371を通してAdopt a JSRに知ろう #jjug_ccc #ccc_r57
MVC 1.0 JSR-371を通してAdopt a JSRに知ろう #jjug_ccc #ccc_r57MVC 1.0 JSR-371を通してAdopt a JSRに知ろう #jjug_ccc #ccc_r57
MVC 1.0 JSR-371を通してAdopt a JSRに知ろう #jjug_ccc #ccc_r57
 
Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門
 
Spring bootでweb 基本編
Spring bootでweb 基本編Spring bootでweb 基本編
Spring bootでweb 基本編
 
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLMySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
 

Destaque

あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情についてあなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
Shinichi Kozake
 
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
Yuuki Fukuda
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
 

Destaque (20)

金勘定のためのBigDecimalそしてMoney and Currency API
金勘定のためのBigDecimalそしてMoney and Currency API金勘定のためのBigDecimalそしてMoney and Currency API
金勘定のためのBigDecimalそしてMoney and Currency API
 
JJUG CCC 20150411 grails3 Spring-boot
JJUG CCC 20150411 grails3 Spring-bootJJUG CCC 20150411 grails3 Spring-boot
JJUG CCC 20150411 grails3 Spring-boot
 
はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)
 
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情についてあなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
 
ビズリーチ x ScalaMatsuri by BIZREACH, Inc.
ビズリーチ x ScalaMatsuri  by BIZREACH, Inc.ビズリーチ x ScalaMatsuri  by BIZREACH, Inc.
ビズリーチ x ScalaMatsuri by BIZREACH, Inc.
 
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
 
クラウド時代の Spring Framework (aka Spring Framework in Cloud Era)
クラウド時代の Spring Framework (aka Spring Framework in Cloud Era)クラウド時代の Spring Framework (aka Spring Framework in Cloud Era)
クラウド時代の Spring Framework (aka Spring Framework in Cloud Era)
 
Synthesijer jjug 201504_01
Synthesijer jjug 201504_01Synthesijer jjug 201504_01
Synthesijer jjug 201504_01
 
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
 
Java web application testing
Java web application testingJava web application testing
Java web application testing
 
大規模な負荷でもドキドキしない為のJava EE
大規模な負荷でもドキドキしない為のJava EE大規模な負荷でもドキドキしない為のJava EE
大規模な負荷でもドキドキしない為のJava EE
 
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
 
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
 
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。
 
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovyJava開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
 
JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライド
JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライドJJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライド
JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライド
 
M-6 MQTTの使いどころ (JJUG CCC 2015 Spring)
M-6 MQTTの使いどころ (JJUG CCC 2015 Spring)M-6 MQTTの使いどころ (JJUG CCC 2015 Spring)
M-6 MQTTの使いどころ (JJUG CCC 2015 Spring)
 
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
 
Embulk 20150411
Embulk 20150411Embulk 20150411
Embulk 20150411
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
 

Semelhante a Java 20年史 (JJUG CCC 2015 春 基調講演)

JavaFX & GlassFish 勉強会 Project Visage
JavaFX & GlassFish 勉強会 Project VisageJavaFX & GlassFish 勉強会 Project Visage
JavaFX & GlassFish 勉強会 Project Visage
Yuichi Sakuraba
 
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
Yuichi Sakuraba
 
JavaOne2012報告会 Java ME
JavaOne2012報告会 Java MEJavaOne2012報告会 Java ME
JavaOne2012報告会 Java ME
Hiroki Ooyama
 

Semelhante a Java 20年史 (JJUG CCC 2015 春 基調講演) (20)

JavaFX & GlassFish 勉強会 Project Visage
JavaFX & GlassFish 勉強会 Project VisageJavaFX & GlassFish 勉強会 Project Visage
JavaFX & GlassFish 勉強会 Project Visage
 
2011年javaの旅
2011年javaの旅2011年javaの旅
2011年javaの旅
 
JavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJavaJavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJava
 
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LTHeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LT
 
Java on Azure 2019
Java on Azure 2019Java on Azure 2019
Java on Azure 2019
 
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
JavaFX & GlassFish 勉強会 Oh! JavaFX 2.0!
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門
 
SpringMVC
SpringMVCSpringMVC
SpringMVC
 
Java on Azure 2019
Java on Azure 2019Java on Azure 2019
Java on Azure 2019
 
Scalable Node.js with Redis Store
Scalable Node.js with Redis StoreScalable Node.js with Redis Store
Scalable Node.js with Redis Store
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer220130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
 
JavaOne2012報告会 Java ME
JavaOne2012報告会 Java MEJavaOne2012報告会 Java ME
JavaOne2012報告会 Java ME
 
Open Liberty / WebSphere Liberty
Open Liberty / WebSphere LibertyOpen Liberty / WebSphere Liberty
Open Liberty / WebSphere Liberty
 
WildFly Swarm - Rightsize Your Java EE Apps
WildFly Swarm - Rightsize Your Java EE AppsWildFly Swarm - Rightsize Your Java EE Apps
WildFly Swarm - Rightsize Your Java EE Apps
 
Oracle Code One - Java KeynoteとJava SE
Oracle Code One - Java KeynoteとJava SEOracle Code One - Java KeynoteとJava SE
Oracle Code One - Java KeynoteとJava SE
 
Java-Virtual-Thread-LT.pdf
Java-Virtual-Thread-LT.pdfJava-Virtual-Thread-LT.pdf
Java-Virtual-Thread-LT.pdf
 
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
 
実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)
 

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