• 検索結果がありません。

2

N/A
N/A
Protected

Academic year: 2021

シェア "2"

Copied!
58
0
0

読み込み中.... (全文を見る)

全文

(1)

OPEN JAVA:

IMAGINE THE

POSSIBILITIES

Java の現在と今後 ∼

サン・マイクロシステムズ株式会社

Java エバンジェリスト

山口 浩 & 岡崎 隆之

Java Festa in

札幌

2007

(2)

Copyright © 2007 Sun Microsystems, Inc.

開発者

6M

デバイス

5,500M

GlassFish

2.5M

デスクトップ

800M

携帯電話

1,800M

TV

11M

コミュニティ

2

Java 誕生から 12 年

(3)

Java のテクノロジーリリース

(4)

Copyright © 2007 Sun Microsystems, Inc.

JRE のダウンロード数の推移

(5)

Java SE のダウンロード数の比率

1996/12 からのダウンロード数

(6)

Copyright © 2007 Sun Microsystems, Inc. 6

JavaOne 2007

5/7: CommunityOne

>

NetBeans Day, GlassFish, OpenSolaris, OpenJDK, Web 2.0

5/8-11: JavaOne

>

今年のテーマは

"Open Posibilities"

>

9 トラックのセッション/BOF

>

Business Day

>

TV Day

>

Hands On Lab

>

パビリオン

(7)
(8)

Copyright © 2007 Sun Microsystems, Inc.

オープンソースへの最終章

8

JDK がオープンソースに

暫定ガバナンス委員会

OpenJDK

‣ オープンソース

‣ ビルド可能な JDK

‣ NetBeans 6 Ready

(9)

Java のオープンソース化

9

2006/5:JavaOne 2006

>

"It's not a matter of WHEN but HOW."

2006/11

>

GPL v2 + Classpath Exception

>

一部のソースコードをオープンソース化

2007/5/8:JavaOne 2007

>

オープンソース化の完了宣言

>

ビルド可能な JDK をオープンソース化

>

OpenJDK.java.net

(10)

Copyright © 2007 Sun Microsystems, Inc.

Sun の F/OSS Java Platform

10

プラットフォーム

コミュニティ

ライセンス

コード

Java SE

OpenJDK

GPL v2

2006年 11月

2007年 5月

Java ME

Mobile

Embedded

GPL v2

2006年 11月

Java EE

GlassFish

Project

CDDL

GPL v2

2005年 6月

(11)

今後の開発はどのように行われるか

11

Java Community

Process

OpenJDK

What

API 仕様

API 実装

Where

jcp.org

openjdk.java.net

How

エキスパートグループ

OpenJDK プロジェクト

(12)

Copyright © 2007 Sun Microsystems, Inc. 12

(13)

13

(14)

Copyright © 2007 Sun Microsystems, Inc. 14

スクリプト言語と Java

JSR223 Scripting API

JavaScript

(15)

近代的なプログラミング言語の特徴

オブジェクト指向である

メモリー管理は不要(自動)

何からの VM 上で動作する

(16)

Copyright © 2007 Sun Microsystems, Inc.

動的プログラミング言語の特徴

オブジェクト指向である

メモリー管理は不要(自動)

何からの VM 上で動作する

1行でできる事が多い

変数の宣言が不要

1つの変数に複数の型を格納できる

事前のコンパイルが不要

16

(17)

プログラミング言語のトレンド

17

(Visual) Basic

PHP

Perl

Python

JavaScript

Ruby

Java

C

C++

http://www.tiobe.com

(18)

Copyright © 2007 Sun Microsystems, Inc.

JSR223 スクリプト言語サポート

18

Java プログラムからスクリプトを呼び出し実行

スクリプト言語から Java のクラスを利用

>

JavaScript

>

Ruby (JRuby)

>

Python (Jython)

>

Groovy

>

...

JVM にスクリプト言語向けの命令を導入(JDK7?)

>

invokedynamic

(19)

Java から JavaScript を呼び出す

19

ScriptEngineManager manager = new ScriptEngineManager();

ScriptEngine engine = manager.getEngineByName(“js”);

String script =

"function hello(name) { print('Hello, ' + name); }";

engine.eval(script);

Invocable invocable = (Invokable) engine;

invocable.invokeFunction("hello", "World!");

スクリプトで定義されたグローバル関数 hello を

Java から呼び出し hello("World!") を実行

(20)

Copyright © 2007 Sun Microsystems, Inc.

JRuby

20

Java VM 上で動作する Ruby の処理系

>

Ruby on JVM

2002 年に開発プロジェクトを開始

>

Ruby 1.6 の Java へのダイレクトポーティング

>

現在は Ruby 1.8 との互換性を追求

次第に性能面で優位に

>

Charles Nutter, Thomas Enebo の貢献大

>

2006 年 9 月より Sun のプロジェクトに

>

Ruby on Rails サポート (0.98)

(21)

JRuby から Java のクラス呼び出す

21

require 'java'

frame =

javax.swing.JFrame

.new("Hello Java")

button =

javax.swing.JButton

.new("Click Me!")

class ClickAction <

java.awt.event.ActionListener

def actionPerformed(event)

javax.swing.JOptionPane.showMessageDialog

(

nil, "Button '#{event.getActionCommand()}' clicked"

)

end

end

button.addActionListener(ClickAction.new)

frame.add(button)

frame.setVisible(true)

(22)

Copyright © 2007 Sun Microsystems, Inc.

JRuby から Java のクラス呼び出す

21

require 'java'

frame =

javax.swing.JFrame

.new("Hello Java")

button =

javax.swing.JButton

.new("Click Me!")

class ClickAction <

java.awt.event.ActionListener

def actionPerformed(event)

javax.swing.JOptionPane.showMessageDialog

(

nil, "Button '#{event.getActionCommand()}' clicked"

)

end

end

button.addActionListener(ClickAction.new)

frame.add(button)

frame.setVisible(true)

(23)

JRuby から Java のクラス呼び出す

21

require 'java'

frame =

javax.swing.JFrame

.new("Hello Java")

button =

javax.swing.JButton

.new("Click Me!")

class ClickAction <

java.awt.event.ActionListener

def actionPerformed(event)

javax.swing.JOptionPane.showMessageDialog

(

nil, "Button '#{event.getActionCommand()}' clicked"

)

end

end

button.addActionListener(ClickAction.new)

frame.add(button)

frame.setVisible(true)

(24)

Copyright © 2007 Sun Microsystems, Inc. 22

JRuby + HotSpot コンパイラ

JVM

JRuby

Ruby

code

JRuby

Ruby

code

Ruby

code

JVM

JRuby

Ruby code

JRuby

Ruby code

JVM

JRuby

Ruby code

Native code

JVM bytecode

Ruby application

code

Time

Full Interpreter

JRuby Compiler

HotSpot Compiler

JRuby Compiler

(25)

JVM

23

現在の Java プラットフォーム

JVM

APIs

Java Language

(26)

Copyright © 2007 Sun Microsystems, Inc.

JVM

24

将来の Java プラットフォーム

JVM

APIs

etc...

JavaScript

Python

Ruby

Java

(27)

25

(28)

Copyright © 2007 Sun Microsystems, Inc. 25

(29)

SwingMark : クライアントベンチマーク

26

0

20

40

60

80

100

120

140

160

Java Version

J2SE 1.2.2

J2SE 1.3.1

J2SE 1.4.2

J2SE 5.0

Java SE 6

(30)

Copyright © 2007 Sun Microsystems, Inc.

JRE のダウンロードサイズ

27

0

2

4

6

8

10

12

Java Version

MB

Java 1.1

Java 1.2

Java 1.3

Java 1.4

Java 5.0

Java 6

(31)

JRE のダウンロードサイズ

27

0

2

4

6

8

10

12

Java Version

MB

pack2000

の導入

Java 1.1

Java 1.2

Java 1.3

Java 1.4

Java 5.0

Java 6

(32)

Copyright © 2007 Sun Microsystems, Inc.

Java SE 6 Update N

28

起動時間の大幅な短縮 "Quick Starter"

(33)

Early Access プログラム!

(34)

Copyright © 2007 Sun Microsystems, Inc.

リアルタイム Java

30

JSR #001

予測可能性

イベントを優先度を加味して

処理

Java RTS: Solaris の RT

クラスを用いた実装

(35)

無人ヘリコプターによるスキャン

(36)

Copyright © 2007 Sun Microsystems, Inc.

NetBeans 6

32

スクリプト言語

GUI ビルダー

エディタの強化

モジュラーパック

‣ モビリティ

‣ C/C++

‣ Web

(37)
(38)

Copyright © 2007 Sun Microsystems, Inc.

NASA World Wind

34

オープンソース惑星ビジュア

ライゼーション

JOGL(OpenGL)

Solaris, Linux, Windows,

MacOS X

(39)
(40)
(41)

37

(42)

Copyright © 2007 Sun Microsystems, Inc.

NetBeans + SDK

(43)

JavaFX

39

コンシューマ・フォーカス

リッチクライアント

(44)

Copyright © 2007 Sun Microsystems, Inc.

JavaFX:開発者の裾野を広げる

40

Java Developers

Script Developers

Visual Designers

JavaFX

Script

Skill

レベル

(45)

41

(46)

Copyright © 2007 Sun Microsystems, Inc.

JavaFX Mobile

42

インターネットデバイスの開

発を加速

ポータビリティの高いアーキ

テクチャー

Java SE Desktop

オーサリングツール

(47)

GlassFish

43

glassfish.java.net

V2: エンタープライズ向け

Solaris, Windows, Linux,

MacOS X

企業向けの NGN (IMS) に

(48)
(49)
(50)

Copyright © 2007 Sun Microsystems, Inc.

java.net

46

Community:

a fundamental

human property

(51)

java.net

47

But there are

barriers to

community

(52)

Copyright © 2007 Sun Microsystems, Inc.

java.net

48

Technology

as a

catalyst

(53)

java.net

49

The Network is

an unstoppable

social force

(54)

Copyright © 2007 Sun Microsystems, Inc.

java.net

Imagine the

possibilities...

(55)

java.net

Get Involved

(56)

Copyright © 2007 Sun Microsystems, Inc.

java.net

Get Involved

Contribute

(57)

java.net

Get Involved

Contribute

Innovate

(58)

参照

関連したドキュメント

1.2020年・12月期決算概要 2.食パン部門の製品施策・営業戦略

 当社は取締役会において、取締役の個人別の報酬等の内容にかかる決定方針を決めておりま

BIGIグループ 株式会社ビームス BEAMS 株式会社アダストリア 株式会社ユナイテッドアローズ JUNグループ 株式会社シップス

三洋電機株式会社 住友電気工業株式会社 ソニー株式会社 株式会社東芝 日本電気株式会社 パナソニック株式会社 株式会社日立製作所

ダイダン株式会社 北陸支店 野菜の必要性とおいしい食べ方 酒井工業株式会社 歯と口腔の健康について 米沢電気工事株式会社

新宅 正 料金制度担当 菊地 康二 東京総支社長 佐藤 育子 多摩総支社長 伏見 保則 千葉総支社長 執行役員. 岡村 毅 神奈川総支社長 田山

東電不動産株式会社 東京都台東区 株式会社テプコシステムズ 東京都江東区 東京パワーテクノロジー株式会社 東京都江東区

東電不動産株式会社 東京都台東区 東京発電株式会社 東京都台東区 株式会社テプコシステムズ 東京都江東区