はじめに
前回、Java のバージョンをどうするべきなのか、ということを書きましたが、その後プライベートで私が書くコードについてどのように落ち着いたかを書こうかと思います。
バージョンの決定方針
まず、全てを同じバージョンにはあわせない、ということは基本方針として決めました。例えば、上のバージョンにあって、下のバージョンにない機能を使いたい場合は、無理をして下位バージョンを選択せずに上位バージョンを採用することにしました。例えば、ImageIO
や正規表現などです。
逆にこれらの機能を必要としないのであれば、できる限り Java 2 SDK 1.3 レベルまでの API と言語仕様に合わせることにしました。ただし、Servlet/JSP に関しては、それらのコンテナ(あるいは環境)が必要とする Java のバージョンに合わせることにしました。しかし、これらのコンテナはバージョンアップについていかないとセキュリティホールに対するパッチなどの供給に不安があるため、基本的に Apache Software Foundation の Tomcat の最新バージョンシリーズの一つ前のバージョンが動作環境としている Java のバージョンを目安にすることにしています。が、実質的に Java Platform Standard Edition 5.0 をターゲットにしています。現在、サーバー方面での Java はこのバージョンが優勢な状態にあるように思います。クライアント方面は、今でもバージョンがばらばらで、広範囲のサポートを考えると Java 1.1 を対象にせざるを得ない現状もあるように思えます。
整理すると
大体上記のように考えています。それでちょっと整理をしてみましょう。
- 必要な機能がある場合 → その機能のあるバージョン
- Servlet/JSP の場合 → 概ね Java Platform Standard Edition 5.0 を眼中に入れつつ Java 2 Standard Edition 1.4 も考える
- クライアント向け → できる限り Java 1.1 仕様の範囲内で考える
という感じでしょうか。
まとめ
結局のところ用途に合わせるしかない、という当たり前の結論ということです。それでも、互換性がかなり高いレベルで確保されているからこそ、下位バージョンを前提として考えることができるということでもあります。今後の Java も従来のバージョンに配慮をしたバージョンアップが継続されることを望みます。断絶は望みません。