うらおブログ(移転しました)スマートフォン用の表示で見るやねうらおブログ(移転しました)この広告は、90日以上更新していないブログに表示しています。compilerC++の標準もどんどん進化している。それはそれで構わないのだが、古いバージョンのコンパイラ向けに書かれたコードは新しいバージョンでコンパイルできないという事態は起こりうる。いう事態が起こったとき、プログラマは通例FDIS/ISではどちらが正しい実装なんだ?とか調べることになる。それはそれで真摯な姿勢なのだとは思うけど、それ以前に考えんとあかんことがあるんちゃうの?VC++5用のコードがVC++6で、VC++6用のコードがVC++.NETでそのままコンパイル出来ないという事実には変わりないし、両方のコンパイラで動くコードを書くことはもちろん大切なことだし、複数のコンパイラでコンパイルが通るようにすることは現実的にはとても大切なことだろうけど、しかしやね、同じベンダーの同じコンパイラの異なるバージョンに対してさえコードの互換性はないってどういうことよ?そこには、上位互換性すらないのよ。おまけにlibファイルすらもフォーマットが変わろうとしている。C++の標準がどんどん変革していき、それに伴い古いコードはコンパイルすら通らなくなる。globalなstatic変数は知らない間に廃止の方向に向かい、無名namespaceで代用することになっている。それはそれで構わないんだけど、そのツケをユーザーが背負わなければならない。5年とか10年ほど前のコードを引っ張り出してくると必ずコンパイルが通らなかったりする。そんな時、とてもやるせない気持ちになる。C++は、標準の仕様があって、VC++6とかVC++.NETとかは、その実装の一つにすぎない。標準に従ったプログラムを書いて、標準から外れているならそのソースをなおさなければならない。するのが常識のように思われているが、よく考えるとこれはとても馬鹿げている。それこそ、ソースとコンパイラをセットにして管理するのならば、そんな手間は不要になる。逆に言えば、そうしない限りは、いつまでもC++の標準にソースを追随させていかなければならない。これは尋常ならざる手間なのだ。ソースコードを部品として再利用することを考えようにも、その部品を作る工場(コンパイラ)が破棄され、部品が作れなくなってしまうというのは、もうそもそも話にならない。部品以前の問題なのである。プログラマはコンパイラがバージョンアップするごとに自分のソースを新しいコンパイラに追随させる苦労を繰り返す。これは、まだこの先、5年も10年も続いてゆくだろう。そんなことが慣例として行なわれ、常識と思われている。してみるとプログラマはよほど馬鹿なのか、非常識な連中だと言わざるを得ないだろう。コンパイラを作っているわけでもない、単なるコンパイラユーザーにすぎない一介のプログラマにとって、そうする以外にどうしようもないという意味もあるのだが。電子書籍になるに至るまでの話ブログちょっとだけ移転のお知らせ時代はまだゲームセンターあらしに追いつかないのかやねうら王、電王戦バージョン提出しました将棋の神様のレーティングはいくつなのか?月別アーカイブはてなブログをはじめよう!yaneuraoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。