人とか機械とか

デジタルガジェットやコンピュータについてのブログです。

プログラム言語とスタイル


 C言語はローレベルすぎて「なんでもできる」たとえば配列とポインタとかgotoとか。ファイル分けと関数を巧みに使えば、オブジェクト指向風味に書くこともできるし、アセンブラみたいに書くこともできる。

C++言語は「全部入り」手続きでもオブジェクト指向でもジェネリックでも、なんかテンコ盛りになっている。

JavaD言語は、そこからできることをそぎ落としてスマートした感じ?らしい。とはいえ、javaも歴史を重ねるごとにいろんな書き方を許容してきているので、テンコ盛り気味になってる気がする。

C#は、Borland C++ Builderの独自拡張とか、Delphiっぽいらしい。実行環境はJavaみたいなVMになっている。なのでLinux版もあったような気がする。



 なんていうか、
ひとつの言語の中にも「ぶれ」というか「幅」があるので、その言語の全ての機能を使わなければならない制約もないので、どういう方向性でその言語を使うか、というコーディング規約は何か作ったほうがいいと思う。どういうライブラリやフレームワークや、IDEを使うか、も大きく左右されるし。

 なので、そういうローカルルールをキチンと定めていないコードは、書き方がマチマチになっている。あっちのメソッドが配列のポインタ渡してるのに、こっちではvectorを参照で渡してたりする。一部分がクラス化されているのに、別の部分はクラスに所属しないベタの関数だったりする。
そういうのは読みづらいと思います・・。「C++C言語のソースを流用する」にしても、キレイな使いかたっていうモノがあると思う。

ローカルロールを設定できてないということは、詳細設計がキチンとできてないってことですよね。

ローカルルールを設定できて、それに従って警告出してくれるコンパイラとかないのかな。あるのかな。

マージャンみたいな感じ



C言語の「言語仕様」についての解説本はたくさんあるけど、ファイルの分け方とか、実用する上で出てくるかゆいところが解説されてる本はあまりないんじゃないかなあと思う。この本は、その貴重な本。オススメです。

C言語 入門書の次に読む本

C言語 入門書の次に読む本