![]() |
安藤幸央のランダウン[32]
Java SE 6へ移行する理由と移行をとどまる
5つの理由
安藤幸央(yukio-ando@exa-corp.co.jp)株式会社エクサ
2007/1/13
|
「Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集部) |
■ Java SE 6の登場と新旧バージョンの歴史
2006年12月11日に待望のJava SE(Standard Edition) 6が正式にリリースされました。Java SE 6はコードネームMustangと呼ばれていたJava開発キットの新バージョンです。
Javaは前バージョンと現在のバージョンで、バージョン番号の表記法が大きく変化しました。どのような数値が付いたものが、どのくらい新しいのかが分かりにくい、との声をよく聞きます。いま一度、Javaのバージョンを振り返ってみるとしましょう。
| 新旧バージョンの歴史 |
|
1.3.1以前のバージョンはEnd of Life、サポート終了の扱いです。
■ 移行するか? 移行しないか? 決め手は何?
研究開発や新しいもの好きであれば、すぐにも新しいバージョンにアップグレードするかもしれません。一方、業務用アプリケーション開発や、安定性が求められる用途において、「新バージョン」への移行は、どうしても慎重にならざるを得ません。
ただ、明確な理由なしに新しいバージョンを忌み嫌うのではなく、的確な判断の下、移行計画を練るのが得策です。
新バージョン移行への判断基準(移行をとどまる5つの理由) |
|
Java開発キットのメジャーバージョンアップがリリースされたら、通常2つ前のバージョンがサポート終了へ向かいます。マイナーバージョンアップがリリースされると、1つ前のバージョンは約6カ月でサポート終了となります(各バージョンのリリース時期にもよりますが、その瞬間すぐにサポートが停止するわけではありません)。
サポートによる一番の影響は、新規に発見されたバグに対応したメンテナンスリリースバージョンが新たにリリースされなくなることです(セキュリティ関連の脆弱性が発見された場合、急きょ対応バージョンがリリースされる場合もあります)。
ちなみに、過去にリリースされたバージョンはほぼすべてArchiveからダウンロードできるので、検証や互換性テストの際に役立ちます。
Java開発ツールのバージョンのリリースから、開発・利用しているアプリケーションやツールのライフサイクルを的確に考慮する必要があります。現在の環境やアプリケーションがいつまで使われるのか、現在のアプリケーション・ツールはいつまでバージョンアップや機能拡張が続くのか、といったスケジュールと照らし合わせ、的確な判断を行わなければいけません(例えば、Java SE 6はItanium 1、2をサポートしません。また、Java SE 6はWindows 98、Windows MEをサポートしません)。
編集部注:Itaniumそのものについて詳しく知りたい読者は、@IT Insider's Computer Dictionaryの[Itanium]を参照してください。
J2SE(J2SDK)1.4.X 時代からJDK 5.0時代へは言語仕様の大きな変化がありました。アノテーションやジェネリックなどソースコードの表記自体も大きく拡張されました。サン公式の移行ガイド(Java Platform Migration Guide)も用意されています。
編集部注:アノテーションやジェネリックについての詳細は、「J2SE 5.0「Tiger」で何が変わるか?」をご参照ください。
JDK SE 6はJ2SE 5.0とバイナリ互換性があります。これはコンパイラ済みのクラスファイルがそのままで正常に動作するということです。
JDK 5.0からの移行は文法の変化ではなく、性能・機能の進化と受け止められます。よって、現在のバージョンがメンテナンスモードに入る時期を見極め、次バージョンへの移行、最新バージョンへの移行を常に考慮しつつ開発することが大切です。
また、統合開発ツールの対応としては、サン標準の統合開発環境「NetBeans IDE」は5.5よりJava SE 6に対応しています。また、「Borland JBuilder 2006」は SP3でJava SE 6に対応しています。「Eclipse 3.2.X」はJava SE 5に対応してはいますが、一般的にJDK 1.4.2世代の環境を想定しています。
■ 新バージョンへ移行すべき理由
Java SE 6 の注目すべき特徴 |
● スクリプト言語対応JavaScript、PythonなどのプログラムをJavaVM上で実行可能になった。スクリプト言語との連携を高めるためのAPIが用意された。 JavaScriptエンジンはMozilla Projectの成果でもあるRhinoを搭載している。Javaが標準でスクリプト言語との親和性を高めたことによって、昨今のWebアプリケーション的なさまざまな言語が混在した環境の安定性が高まったといえる。 編集部注:Rhinoについての詳細は、「JavaとJavaScriptの親しい関係」をご参照ください。 ● データベース対応標準搭載のJava DBとしてApache Derbyが付属するようになった(ただし、現時点ではベータ版の扱いであり、大規模開発などにはお勧めできない)。 編集部注:Java DBとApache Derbyについての詳細は、「待望のJava SE 6 でパーシステンス」をご参照ください。 ● 監視と管理機能の充実スタックトレースとしてエラー個所の特定がとても簡単になった(OutOfMemory Exception Handling)。 ● Webサービス対応の充実JAX-WS(Java API for XML Web Services) 2.0、JAXB(Java Architecture for XML Binding) 2.0、STAX(Streaming API for XML)、JAXP(Java API for XML Parsing)や、Microsoftとサンが共同で進めているProject Tango(Microsoft .NETのWebサービスとJavaの相互運用性を向上させることを目指したプロジェクト)の成果が取り込まれている。 ● Java2DとJOGL(Java bindings for OpenGL)の統合2次元描画の際にも三次元グラフィックスハードウェアの性能を最大限生かせるようになり、2次元のSwing部品上での2次元描画や、3次元描画領域でのJava2Dの扱いなど、2Dと3Dがシームレスで扱えるようになってきた。 編集部注:JOGLについての詳細は、「SIGGRAPH 2003に見るJavaの進化」をご参照ください。 ● Windows Vista対応IE 7.0のセキュリティ強化により、ブラウザ上のJava動作環境も大きく変化した、ととらえよう。署名付きアプレットの権限が縮小されたり、Java Web Startの振る舞いも細かい部分で変化している。 ● そのほか和暦に対応した。「平成」などの表記が(やっと)標準でできるようになった。 |
Java SE 6になり、JDK 1.2、1.3時代の裏技的なチューニング技は役立たないことがはっきりとしてきました。普通に書いた方が確実に動作し、確実に速いです。Java SE 6の登場を機会に、旧来のソースコードを見直し、リファクタリングやメンテナンス、パフォーマンスチェックを行う良い機会かもしれません。
年が明けたばかりですが、2008年にはJava SE 7(コードネーム:Dolphin)がリリースされる予定です。より長い期間、安定して使えるシステムを開発するためにも、Javaのバージョンを的確に把握し、開発環境の充実に役立てていってほしいものです。
■ 次回は
今回、2007年最初のコラム記事は、前回のコラムからだいぶ時間がたってしまいました。2007年からは再び意欲的に、興味深い内容を続々と紹介していきます。
今後は、Javaプログラマ向けポッドキャスト番組の紹介や、ソースコード専用検索エンジンの便利な活用法などを取り上げる予定です。
■ 関連URL
- Java SE 6 ダウンロード
- Java SE 6 リリースノート
- Java SE 6 互換性ノート
- Java SE 6、Windows Vista使用時の注意(特に、IE7.0環境下での利用に注意)
- Java SE 6 修正済みバグリスト
■ 関連書籍
- Java 6 Platform Revealed(ISBN-10:1590596609)
- Java 6 New Features(ISBN-10:0975212885)
- Beginning Java SE 6 Platform(ISBN-10:159059830X、2007年5月刊行予定)
| プロフィール |
安藤幸央(あんどう ゆきお) 1970年北海道生まれ。現在、株式会社エクサ
マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元
CG ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG
の情報源となるWebページをまとめている。ホームページ Java News.jp(Javaに関する最新ニュース) 所属団体 OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman) 主な著書 「VRML 60分ガイド」(監訳、ソフトバンク) 「これがJava だ! インターネットの新たな主役」(共著、日本経済新聞社) 「The Java3D API仕様」(監修、アスキー) |
安藤幸央のランダウン バックナンバー
- 第1回 Javaを速くするための心構え
- 第2回 サーバサイドで進化するグラフィックス
- 第3回 ユーザビリティ(使いやすさ)の大切さ
- 第4回 Javaプログラマのお役立ちサイト
- 第5回 伝説のイベントJava Night
- 第6回 次世代のインターネット言語curl登場!
- 第7回 次世代を予感させるグリッドコンピューティング
- 第8回 音声はコンピューティングを変える?
- 第9回 GoogleをWebサービスから利用するAPIの登場
- 第10回 これは使える!Java風スクリプト
- 第11回 PtoPはいよいよビジネスのステージに
- 第12回 ハリウッド映画並のCGがPCに到来する日
- 第13回 知的ゲーム「Robocode」でJavaのチャンピオンに
- 第14回 海の上のJava Night
- 第15回 Java版テラリウム? ただいま開催中
- 第16回 進化したアプレット、Viewletとは?
- 第17回 Eclipse:新しい開発環境モデルの誕生
- 第18回 Webサービス、どこまで実用になっている?
- 第19回 SWTは本当に高速なGUIを実現するのか?
- 第20回 JavaOne 2003の注目トピックを振り返る
- 第21回 SIGGRAPH 2003に見るJavaの進化
- 第22回 AmazonWebサービスの可能性
- 第23回 オープンソースの検索エンジン登場
- 第24回 技術者の祭典JTC BOFとJava Night
- 第25回 リッチクライアント時代の到来
- 第26回 Eclipse 3.0のリッチクライアントとは?
- 第27回 データ中心型、簡単リッチクライアントJDNC
- 第28回 浸透する新世代のシンクライアント
- 第29回 WebプログラマはRailsに乗るべきか?
- 第30回 Ruby On Railsのチームに学ぶ仕事術
- 第31回 JavaプログラマはAjaxに乗るべきか
- 第32回 Java SE 6へ移行する理由と移行をとどまる5つの理由
- 第33回 見つけて得するソースコード専用の検索エンジン
- 第34回 Podcastでプログラマーに必要な英語をStudyしよう!
- 第35回 人気のAPI/フレームワークを作るための39カ条
- 第36回 あなたのサイトはiPhoneで見られますか?
- 第37回 バッチ処理はJavaでバッチリ?その現状とこれから
- 第38回 Cometに代表されるサーバ・プッシュ技術の復権
- 第39回 ソースコードの宝石箱、●●Forgeを見逃すなかれ
- 第40回 Webアプリ開発環境としてのSafariを知ってますか?
- 第41回 夏休みに世界へ挑戦! プログラミングコンテスト
- 第42回 開発者が知っておくべきJavaと仮想マシンの歴史
- 第43回 あなたの知らないJDKの便利ツールたち
- 第44回 時を欠ける症状−うるう秒から考えるサステナビリティ
- 第45回 IT業界で楽しく仕事をするための10カ条
- 第46回 そのWebサービスで“対価”をもらえますか?
- 第47回 IT系でも活用しなければ損。論文を読んで広がる知見
- 第48回 Webからの知見、見つけた論文の読み解き方
- 第49回 Java技術者も知っておきたい「AR(拡張現実)」
- 第50回 クラウド活用「雲活」のために押さえるべき39のポイント
- 第51回 意外と知らないバージョン表記・数字の豆知識
- 第52回 グーグルは、○○おもいっきり、テレビ
- 第53回 いま購読するべき15の開発者ブログ
- 第54回 技術者なら知っておきたい「ソーシャルゲーム」とは
- 第55回 開発者は覚えておきたいアプリストア/マーケット大全
- 第56回 売れるスマホアプリを目指せ! テスト達人への道
- 第57回 プレゼン巨人の星となるためのツールと手法のまとめ
- 第58回 ぼくらの七ボタン戦争 - Social Buttons War
- 第59回 師走を楽しもう。技術系アドベントカレンダーの魅力とは
- 第60回 GitHubをもっとソーシャルに使いこなすための7つ道具
| ご意見、ご感想は掲示板へどうぞ |
| JavaコラムINDEX |
TechTargetジャパン
- EclipseでScalaプログラミングを始めるための基礎 (2012/2/10)
概要や5つの特徴を紹介し、開発環境を構築して対話型実行環境「REPL」やEclipse上でHello Worldを実行します - 並列分散処理の常識をHadoopファミリから学ぶ (2012/2/8)
並列分散処理の課題やHadoopの長所/短所、そして短所を補うHadoop関連プロジェクトの構成や概要などを簡単に紹介 - WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


1970年北海道生まれ。現在、株式会社エクサ
マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元
CG ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG
の情報源となるWebページをまとめている。