退ける
こんにちは、トサカです。
積読を解消すべく日曜日は頑張りました。土曜日死んでたぶんは取り返せたと思います。なんとか三章分読みきりましたが、慣れない分野の読書はやっぱりしんどいですね。
そのなかで気になる表現を見つけたので、今日はその話をしていきましょう。
プログラム言語は、普段我々が慣れ親しんでいる言語と同じように、それぞれ固有の文法があります。COBOLにはCOBOLの、CにはCの、JavaにはJavaの文法があります。
この三つの言語は、生まれた順に並べています。
それまで主流だった、無機質ですぐ暴走してしまうアセンブリ言語に代わってCOBOLなどの高級言語が、ソフトウェアの需要過多に応えるべく高級言語に代わってC言語などの構造化言語が、そしてプログラムを改良しやすくするために構造化言語に代わってJavaなどのオブジェクト指向プログラミングが世の中の主流となっていきました。
平たく言えば、「構造化言語」ではできなかったことを「オブジェクト指向」ではできるのだということです。
それで、さらに読んでいるとこんなことが書いてありました。
つまり、プログラミング言語は進化するにつれて~(中略)~「退化」の方向にも進んできたというわけです。
内容が難しいので、なかなか身が入らないまま読んでいたぼくの目に「退化」の文字が飛び込んできたとき、思わず読むのを止めてしまいました。
今自分はJavaに関する本を読んでいる。そしてここではどう考えてもJavaを褒めているはず…。ではなぜ「退化」なんて言葉を使ったんだ?
もう一度よく読んでみると、次のように書いてありました。
比較的新しいプログラミング言語であるJava は~(中略)~プログラムを難しくしたり、間違いやすくしたりする機能は最初から提供しないほうがいいという判断から、あえて機能を削ったものです。
つまり、プログラミング言語は進化するにつれて~(中略)~「退化」の方向にも進んできたというわけです。
なるほど、機能を減らすことを「退化」と呼んでいたのですね。
ミスを誘発する機能を削って挙動をシンプルにすることで、よりよい言語を作るということだと、何回か読んでわかりました。
ぼくが誤読しかけた理由として、「退化」という言葉にマイナスのイメージを持っていたことが挙げられます。
「劣化」がだいたいマイナスイメージのときに使われる(そして心が薄汚れた人が腹立たしい使い方をする)言葉なので、「退化」もそういうイメージを抱きがちだったのですが、今回この本を読んで、そのイメージを更新しなきゃなと考えました。
この本は、非常に言葉を重視しています。
オブジェクト指向という概念を説明する際によく使われる「比喩」を批判し、より正しく説明することと、わかりやすい説明を両立させることに注力しており、読んでいて楽しいです。
はよ続き読みたいけど、やることが多すぎる~
ではでは