このエントリーを読んで、おれも脳髄をがつんとやられました。
- [tech] だから、C言語の全能性を否定するようなものが、すべて抹殺されたのだ。
http://kano.feena.jp/diary/20060620.html
> > 悪しき習慣です。CやC++がプログラミングに携わる人のすべての必携の言語
> > として蔓延りかけてしまったことは、世界の情報産業の生産性をいったいど
> > れだけ損失させたか計り知れません。
>
> すべての必携の言語にCがなり得たのは、それだけ優れた言語だったからでしょう。いいえ。一部の人が使うのには優れていますが万人が使うべきものではあり
ません。C以外が普及しなかったのは、様々な背景があるのであって、Cが優
れていたからではありません。...
> 生産性を損失させたのは、ポインタの使用方法を誤った、Cに熟練していない
> プログラマの存在だと思います。熟練できないプログラマが溢れかえるような言語は優れていないのです。
(マニアには他人との差別化ができてご満悦でしょうが。)
ここまでがつんといえるのは素晴らしいね。これをきちんといってくれる人を大事にしなきゃって、考えれられるようになってきました。
しかも、ポインタで書いてしまうと、コンパイラの最適化で、プログラムの
構造を把握しにくくなってしまって、より高度な最適化を妨げるという要素
もありますよ。一般論としては、より高い抽象度で記述した方が、最適化の
可能性が広がると言えます。
先輩に聞いたけど、これは確からしい。gcc4.1になって、さらにアグレッシブな最適化が可能になり、もうmemcopyとかの実装にしかインラインアセンブラは使ってないとのこと。
自分のlibcを持っているその先輩も大問題だけどね。