名著「プログラミング言語C」の解説(kyutech.ac.jp)の前口上について。ある意味Cの生きる道を示しているかもしれない。Cは動作が分かってないと書けない、あるいは動作がわかってない人は書かないほうがいい。
書く側としてはもうちょっと縛りをかけたり、高級な機能をつけたりして欲しいのだが、低レベル教育用としてはいいかもしれない。低レベルとは言え、プログラミング技術に共通の要素もそれなりに含まれているし。ただリスクも大きくて、Cで教育に失敗すると…(略)
プログラミング言語は日夜、改良が加えられている。コンピュータの歴史は浅く、現在利用できるすべての言語は人間の思考活動をその上に展開するにはまだまだ不十分である。改良を加えたつもりがじつは改悪となることもある。
C をベースに C++ や Java など、新しい言語が開発されているが、それでも、C を知る必要はあると思う。プログラムがコンピュータ上でどう実行されるのかの具体的なイメージを持って、あるいは、Java にはなぜポインタや構 造体がないのかを理解した上で、プログラムできたほうがエレガントなコードが書けるのではないか。
C を改良したとされる Java であっても通過点の言語である。過去の歴史に目をくれず、軽薄な宣伝文句につられ、自分で判断することを放棄して Java するとしたらそのうち必ず取り残される。C++ がいかに汚い言語であるかも理解できないだろう。
C を扱う以上、ポインタやアドレスをきちんと説明しないのは「角をためて牛を殺す」と同じである。計算機の内部状態をしっかり頭に浮かべながらプログラムを書いたり読んだりすることが C のプログラミングでは肝要と思う。