C言語を学ぶ意味

Python言語、Ruby言語、Java言語と言わないのになぜCだけC言語というのか、文字数が「一文字の長音」で分かりづらいというのなら、Goも同じ条件だがGo言語と言うのはあまり聞かない。

いや、調べたらGo言語と言うらしい。ごめんなさい。


以前の記事でC言語を学んでいて良かったと書いた。
C言語ではXlibを使ったNetBSD用のプログラムを書いたのが一番大きいプログラムであり、その後、自分でC言語でプログラムを書くという機会は皆無に等しいが、それでも現在もC言語の知識は役立っている。

今までにいろいろな業種のプログラマと仕事をしてきたが、とくに多いのがWebプログラマの人たちの知識不足。例えば、PHPがC言語で作られているということを理解できていない。

実際にこの記事を読んでいる人の中にも、「PHPがC言語で作られている」というのを理解できる人と理解できない人がいるのではないだろうか。理解できる人からすると、何を理解できないと言っているのか理解できないかと思う。私も、理解できない人がいるとは理解できず、最初に出会った際は悩んだ。

しかも、この理解できなかった人間は、専門学校でプログラミングを教えている講師であり、職業訓練でプログラミングを教えていた講師でもある。職業訓練だけであれば、いかに人員不足でレベルの低い講師を集めたのかと思うが、専門学校で教えているとなると頭を抱えてしまう。この学校から卒業した人間は、一体何を書けるようになって卒業していくのか。

と、理解できるという前提は絶対条件であるが、このPHPもPythonもRubyもPerlも、非常に多くの言語がC言語で書かれているという事実は重要で、この事実から、そのプログラミング言語の深い知識を得るためにはC言語を読む必要があり、言語のバグを調べるときにも言語のソースコードを読むのが確実で、言語の低レベルを扱うライブラリはC言語で書く必要がある。

例えばPHPにしても、echo()とprint()の違いについてベンチマーク等で語られることはあるが、そんな無意味なベンチマークよりも、PHPの各関数のソースコードを読めば処理内容が一目瞭然で分かる。

このように、今の時代、C言語を学び自分で何かを作るためではなく、C言語で作られたものを利用する以上、C言語を学んでおく価値はあるだろう。

C言語を学んでいるから良いプログラマになるのではなく、C言語を学んできたから良いプログラマになれるのだろう。

この記事が気に入ったらサポートをしてみませんか?