不便さを味わう。
仕事で、わけわからんちんな、タコなプログラムを読んでいて、思ったこと。
VBやJAVAなんていう素敵なプログラム言語が出来て、それに対する教育がなされ、
広まったことで、発生した問題。
それは、誰でもプログラマな状況では?
開発会社さんと、ある機能の実装有無について、やりとりをしたのですが…。
とあるプログラマさん「このプログラム、この機能が実装されていないようですが」
私「えっ?本当?…いや、やっているはずですよ。私、テストしましたもん。」
とあるプログラマさん「やっぱりやっていません。」
やってるっちゅうに!
というか、君んとこで作ったプログラムでしょ。
という訳で、ソースをメールに貼り付けて、英訳のように逐一コメントを付けて
解説してあげると…。
プログラマ「やってますね。」
私「…(自分、ほんまに良くプログラマやってるよなあ!)」
C言語や、あるいは先輩諸氏が使っておられたC言語以前の言語等と
それ以降に登場した言語では、大きな隔たりがある。
After Cな言語は、プログラマにとって、より優しい言語と言える。
プログラマを甘やかしてくれるわけです。
私にとって、C言語って、非常にめんどくさい言語です。
めんどくさい元凶は、ポインタ。
やたらデリケートに扱わなくてはいけない、気をつかう機能です。
昔、C言語でやっていた組み込み系のアプリケーションなんて、RDBMSを使えず、
バイナリファイルを直接アクセスする類いのもので、ポインタ大活躍。
そして、メモリ破壊大発生(w
便利な言語の登場のおかげで、ポインタを表面的には理解しなくて済むように
なったため、そこをスルーしてくるプログラマがいる。
しかし、ポインタは、プログラミングという行為の上で重要な概念です。
そこを、理解できない、あるいは、理解せずに来たプログラマは、
酷な言い方かもしれませんが、もう一度、学校へ行くなり、勉強しなおしたりした方が
良いと思っています。
C言語は、間違いなく高級言語なんでしょうけど、After Cな言語に比べると、
やはり低レベル層を意識しなくてはいけない。
逆に、それで、プログラミングは鍛えられたように思います。
地道にやることで、プログラムへの猜疑心を持ち(どこかに初期化忘れはないかな)
不便さを味わうことで、いかに楽するかを考える(ソート関数も自分で実装しなきゃ)。
プログラマになりたての方は、是非、不便さも味わって欲しい。
そういう地道で、不便な行為を経て、初めて得るものがある。
…私は、もう遠慮するけど。