C言語ならわかるのに,なぜかJavaは理解できない---。プログラミング言語を学び始めた10年ほど前,記者はこのように思っていた。
その後,Javaに対する苦手意識を何とか解消しようと,様々な参考書を手にとって読んでみたりした。しかしながら,生来のなまけ性のためか,参考書を購入して手元に置いておくだけでJavaをマスターした気になってしまう。「Javaプログラミングなら任せておけ!」というレベルまでには,なかなか至らなかった。
Javaプログラムの開発には統合開発環境(IDE)のEclipseが広く使われていることも,Javaプログラミングを習得できない言い訳になっていた。Eclipseを使いこなせれば,確かに開発効率を大いに高められそうだとは思っていた。しかし,Eclipseになじみの薄かった記者にとって,使いこなすまでの道のりが遠く感じられたのである。
あえてEclipseを使わない
ところが,こんななまけ者にもJava習得のチャンスが訪れた。日経ソフトウエアで2008年からJavaプログラミングに関する新連載を担当することになったのだ。
せっかくJavaを一から連載するのだから,入門者にはわかりやすく,経験者にはよい復習になるような内容にしたい。この点を目標に据えた。執筆は,「Eclipse実践開発入門(技術評論社発行)」などの著者であるkenmaz氏にお願いした。連載のタイトルは「じっくり学ぶJava」。タイトル通り,入門者でもじっくりとJavaの基礎が理解できるような連載を目指した。
連載では「JDK(Java SE Development Kit)」とWindowsに標準搭載されている「メモ帳」を使ってプログラミングを行った。Eclipseを使わず,メモ帳でJavaコードを書いていくのである。
それまで記者は,コードを記述するときには必ずEclipseを使っていた。コード補完機能は強力だし,デバッグ作業も楽に行えるからだ。メモ帳とJDKだけのプログラミングは,今回が初めてだった。
実を言うと,企画段階では「メモ帳だと長いコードを書くのは大変だし,短いコードだとJavaの様々な機能が説明しずらいのでは」と危惧していた。しかし,著者のkenmaz氏の意向に沿って,まずはJDKとメモ帳だけでプログラミングを行う内容にした。
短いコードだと,すんなり頭に入る
届いた原稿を見ると,Javaの機能がコンパクトなコードとともに説明されていた。コードが短いからといって機能の説明がわかりにくいといったことはない。逆にすんなりと頭に入ってくる。
大げさに聞こえるかもしれないが,今までJavaで不思議に思っていたところ,例えば,同じ機能を持つクラスが複数存在する意味などが,初めて理解できた気がした。
一例を挙げよう。リスト1とリスト2は,どちらも文字列を連結するプログラムになる。果たして,文字列を1万回つなげる処理にはどちらが適しているのだろうか。少しお考えいただきたい。
class PlusOpTest {
public static void main(String[] args) {
String str = "hello";
for(int i=0; i<10000; i++) {
str = str + "o";
}
System.out.println(str);
}
}
class StringBuilderTest {
public static void main(String[] args) {
StringBuilder str = new StringBuilder("hello");
for(int i=0; i<10000; i++) {
str.append("o");
}
System.out.println(str);
}
}
答えは,リスト2の方が適している。文字列を連結するときに作成するオブジェクト数が異なるためだ。
このように短いコードを地道に理解していくことで,記者はJavaになじむことができた。そのせいか,Eclipseを使ったときに,IDEのありがたみが身に染みてわかるようになった。
入門者にとって,Javaは企業向けで難しいというイメージがある。しかし,短いコードを理解していくことで,やがては大規模なアプリケーションを必ず作れるようになるだろう。
Javaは進化を続けており,今まで以上に様々な分野で必要となるはずだ。そこで日経ソフトウエアでは,Javaのさらなる普及を前に,先にご紹介した連載などを掲載したムック「ゼロから学ぶ! 最新Javaプログラミング」を発行した。Javaの基礎からEclipseの使い方まで,Javaプログラミングの初歩を網羅したつもりだ。
今までどうしてもJavaがわからなかった,仕事で使っているけど本質がわからない,といったソフトウエア・エンジニアにお薦めだ。ぜひ,手にとってご一読いただければ幸いである。