プログラミングは文学か | 羊雲

プログラミングは文学か

今日書こうと思っていたブログのテーマに近い内容の記事を見つけましたので、トラックバックしました。最近少し真面目になってきてしまいました。

悪態のプログラマ 「誰のためのコード?」

まず、私の普段の仕事から説明しないといけないのですが、私の仕事はカスタマイズというか、改造というか、亜種というか、他人とかチームで作った製品を顧客や案件に合わせて改造する、言わば人のふんどしで相撲をとる様な仕事で、かつ、基本的に1人で派生製品を仕上げているのですが、そういった点からほぼチームの全員のソースコードを目にする機会が多いのです。

プログラムはどうやら人の性格が出るものらしく、個人個人かなり個性的なプログラミングスタイルというのを持ってまして、基本的に「人のプログラムは読みづらい」と言われる中、それはもう全然読解できない場合とかもあるわけですよ。これはもう文学以外のなにものでも無いです。コードとコードの行間を読み、開発者が何を思ってこの処理を書いていたかを汲み取り、更に自分の目的に合う様に推敲を繰り返していく、果たしてこれがプログラミングでしょうか?

(※ 本当なら規約とかを作って癖の無いコーディングをするのですが、ウチの場合は自由主義というか新人に教える時間も無いので己の裁量にまかされているのです)

とりあえずの原因は、上の括弧内に書いているみたいに是正措置が無い事ですが、また、使用言語がCというところにも問題はあると思っています。どの辺が問題かというと言語としてサポートしている機能が少ないわりに、かつ、なんでも出来るように作られているので、動けば良いといったようなプログラムが簡単に書ける。言い換えると無理にでもゴリ押ししてしまえば、Cの場合は問題無く動く場合がある。といった点だと私は思っています。ゴリ押しした場合は、とりあえず目的の動作を行うことができますが、プログラムとして破綻します。こうなっているコードが如何に多い事か…って感じです。

で、ですね。C++という言語について最近勉強しているのですが、プログラミング言語 C++ の冒頭に、「このままではプログラミングは文学になってしまう。それを避けるためにC++という言語を作った」と書かれていて、痛く感動しました。もう、これだと。

まあ、言語を変えたからといって問題が解決するとは思っていませんが、少しでも改善すればいいかなぁと考えています。実はC++へシフトしようと思い始めたのが1年くらい前になります。C++で何を作るかという事と、設計に随分と随分と時間がかかってしまい、やっと最近になってC++による実装を始めました。まだ今まで通りの製品を全てC++で記述できるレベルに達していませんが、手ごたえの様なものは感じています。まだまだ先は長そうですが、頑張っていきたいと思います。