Javaは、もはや枯れた技術か?
1995年にJavaが登場してから10年以上が経ち、この間にApplet、Swing、J2EE、J2MEといったJava技術が登場しました。はじめは、試行を目的とした使用がほとんどでしたが、現在は業務システムからゲームまで、Javaを使ったさまざまなシステムが構築されています。
ここまでJavaが普及した要因はいくつか考えられますが、大きく以下の2つではないでしょうか。
- JVM(Java仮想マシン)
- コミュニティの存在
もっとも大きな要因は「Write once, Run anywhere」というコンセプトで作られたJVMでしょう。OSに依存しない稼動環境の構築が可能になり、「Webアプリケーションで操作したい」というユーザニーズによって、サーバサイド技術が進化しました。今ではSAPやOracleが代表格であるERP製品もJavaで開発されています。その上、メインフレームでJavaも稼動させることが可能になり、基幹システムにも採用しやすい環境が整っています。
また、コミュニティの存在が技術者を増加させたとことも要因だと考えます。Jakartaプロジェクトように数々のコミュニティが運営され、 Java技術者が増加しました。プログラマをメンバーに加えたいとき、5年以上前は「他の言語を扱うプログラマに比べ、高い人件費がかかる」といわれていたのに、今は「他の言語を扱うプログラマと同等の人件費」という時代です。技術者の増加に伴い、需要と供給の関係が変わってしまいました。
このように、現時点でJavaは「確固たる地位を築いている」といってもよいでしょう。また「もはや枯れた技術」と考える方もいるかも知れませんが、私はそうは思いません。Javaは「言語」と「稼働環境」という2つの要素を持っていますが、どちらもさらなる進化を遂げているからです。
例えば、「言語」についてです。「基幹システムへの採用」といっても、オンライン処理に採用されることが多かったのですが、最近になってバッチ処理を可能とするフレームワーク製品が登場しました。オンライン処理もバッチ処理も同じJavaで行った方が、開発や運用・保守の効率がよいので、今後の普及が見込まれます。
また、「稼動環境」については、現在Ruby、PHPといったスクリプト言語が流行していますが、Javaもスクリプト言語に対応し、スクリプト言語の長所を取り入れた開発、保守・運用が可能となりました。
Javaでもっとも重要なのは「開発」ではない?
さて、確固たる地位を築きながらも、さらなる進化を遂げるJavaですが、もっとも重要なことは何でしょうか。
本来、システム構築の目的は「システムを使うこと・システムを安定的に動かし続けること」であり、運用・保守がメインのはずです。Javaも同様の考え方をすれば、もっとも重要なのは運用・保守なのではないでしょうか。
ですが不思議なことに、開発をテーマとした書籍、記事は頻繁に見かけますが、運用・保守をテーマとした書籍、記事を見かけることは多くありません。
改めて「Javaの運用・保守を考えていますか?」
そこで本連載ではトラブル事例をもとに、Javaの運用・保守を切り口とした開発のポイントや、運用・保守のノウハウを解説していきたいと思います。運用・保守を経験している人にとって、当たり前と思うかも知れませんが、開発時はプロジェクトが忙しくなると忘れがちですので、教訓として覚えていただけたらと思います。