■ 2020年7月09日
Language C is like a English for me.
もう何年もC言語のコードを書いていないし、最新のC言語の仕様にも疎い。
たぶん僕が最初に学んだ時のC言語のコーディングスタイルは古いのだろう。
C言語は僕にとって、英語・・・みたいな感じだ。
英語はスタンダードで、中学校から数えれば最低でも6年以上は学校で学んでいた。
だから、大学で第2外国語としてドイツ語の授業を受けたときは軽く苦痛を覚えた。
なんせ、ドイツ語は男性名詞、女性名詞、とか、助詞や動詞の順序が英語のそれとは違う。
その時、思った、英語って習得するのにやさしい言語なんだな、って。
さすが、世界標準?言語が英語なのはよく分かる。文法もドイツ語やフランス語、ラテン系の言語比べればはるかに覚えやすい。
それと同じで、僕にとってプログラミング言語で英語に相当するのが、C言語。
なんせ初めて学んだのがC言語、他にも言語はあったけど、当時は事実上C言語もしくはC++言語一択だった気がする。
本屋のコーナーにもC言語関連のものが圧倒的に多かったし、MS-DOSで簡単に試せるコンパイラは C言語だけだった気がする。専門雑誌の付録のフロッピーディスクにも毎号収録されてたしね。
1990年代はいろんな言語が爆発的に増えた時代だったと思う。PythonもRubyもこの頃だったんじゃないかなぁ。まだまだそんなに知名度は無かったと思う。
今から考えるとハードウェアがまだ追いついていなくて、インタープリタ言語(厳密にいえば違うけど)はまだまだコンパイラを通したネイティブバイナリと比べると遅かったと思う。
だから、セミコロン区切りの言語は僕にとって親しみがあって安心感?がある。
お金に余裕が出てきたときは、BorlandのTurboC/C++を買ったし、OSがWindowsに変わってからは、C++ BuilderとVCLでRADプログラミングを経験した。
C++ Builderを選んだのは、もちろん C言語系なのと、比較的価格が安かったから。当時 Visual C++なんて買えなかったし、MFCは難解だったね。
それを 今流行りの言語、PythonやらRubyやらGoやらRustやらは、僕からすると英語から見たラテン系の言語のように思えてくる。
C系言語なら、コードを見ればだいたいの文法が理解できる。が、僕からすると上で挙げた言語はサッパリ・・・分かんねぇ~、って直感的に感じてしまう。
まぁ、慣れ、が大きいウェイトを占めるんだろうけど、人間はやっぱり楽な方を選択する。C#やPerl/PHP という風に。年を取れば取るほどに。
あ、今思い出したけど・・・、最初に学んだ言語は C じゃなかった! BASIC だった!
ポケコンに搭載されてた BASIC。当時 4Kバイトのメモリしかなかったんだよな。4K だよ、たったの 4096バイト。
大学時代は FORTRAN だった。BASICに似た言語だったので(実際は逆だけど)すぐ使えた。
どの言語にも言えるけど、デザインパターンをちゃんと理解していれば、めちゃくちゃなコードにはならないはず。
よくいろんな言語の悪口を見たり聞いたりするけど、他の言語できれいなコーディングする人はどの言語でも綺麗なコーディングをする。
できないのは、そいつのスキルの問題であって、言語のせいではない。
できるプログラマはどんなクソ仕様の言語でもちゃんと実績を残すし、そのクソ仕様を逆手にとって、アッ、なるほどね、そうするのか、と言わせるコードを書いてしまう。
自分のスキル不足を言語の責任にしちゃいけない。