とりあえず、C++のテキストを読み終わった。後半になるとやや難しかったが、実用上は問題あるまい。わからない機能は使わなければいいのだ。それにしても、Javaと比べて機能が多い…。こんなにあって、どうするのだろう。まあ、実際に現場に出ればいろいろな機能が欲しくなるのかもしれないが。まあ、僕はJavaの方が好きだということがはっきりした。性能のためにプログラマに負荷をかけるかどうかという一点においてJavaとC言語には決定的な違いがある。Javaは処理速度を犠牲にしても扱いやすさを重視しているのだ。
それにしても、そうやって言語を学んでいくだけで言語の成立過程が見えてくるから不思議だ。Javaはすべてをオブジェクトでやってしまおうという思想がはっきり見えるし、C++はもともとあるものを変えずに思いつく限りの機能を盛り込もうというのがよく分かる。オブジェクト指向という視点から見ると、Javaの方がよりオブジェクト指向的と言える。C++はオブジェクト指向も扱えるものだが、Javaはオブジェクト指向でしか動かない。画面に一行の文を表示するだけでも、クラスを定義しなければならない。ただ、それがいいと思うのだ。とにかく何でも、すべてはクラスでやるのだ、という発想。シンプルでよい。…多種多様な技術を勉強するのが面倒だってことでもあるのだが。ちなみに、Javaの機能が乏しいということは決してない。C++よりも機能は豊富かもしれない。ただ、その点を特に意識せずに使うことができるのだ。なぜなら、Javaの機能はすべてがクラスとクラスから作れるインスタンスで成立しており、基本的な使い方はみんな同じだからだ。もちろん、それではできないこともある。必ずオブジェクトを介す以上、object.method()
という書式から逃れられない。C++のように'+'の一文字であらゆるオブジェクトを連結するなんて芸当はできないのだ。
言語の特性はそれぞれあるが、ともかくC++を書かなければ卒業できない以上、やるしかない。おそらくこの知識が無駄になることはないだろう。それにしても、3日でテキストを全部読めるとは、我ながら進歩したものだ。昔はプログラミング言語のテキストなんて、見ても何がなんだか分からなかったものだが…。まあ、読めるように書いてあるのだから読めるのが当然ではあるのだが。