2019年3月11日月曜日

移植性のないプログラム

※最初に以下のページを参考にしてほしい

「より良いプログラムを書くために」

 で、昨日、某質問サイトに私の環境(gcc7.3,clang9.0)ではコンパイルできないCプログラムが有った。で、“コンパイルできない”故を伝えたら、「Visual C++の定義だから問題ない」というコメントをもらった。以前からscanf_s()やらなんやら互換性のないコードが溢れて居るので気になったいたのだが、“VCだから問題ない”というのは流石に問題だと思う。 プログラムというものは何年も場合によっては何十年も使われるものだ。長い間にソースの改変が入るのは止むをえないが、その時に成ってもとのソースが移植性のないものだったらどうだろう?・・・そもそも毎月のようにパッチを出している会社が、今後も同じソースがコンパイルできるコンパイラを出しているだろうか?

以前(30年ほど前)、某大手メーカで仕事をしていた時に新人SEにCの教育(と言っても週1回、通算2回w)を頼まれた事が有った。事前に講義内容を担当者と打ち合わせしたのだが、先方が指摘したのが「移植性の有るプログラム」という話だった。“それでは困る”と言うのである。理由としては“基礎とうちのワークステーション固有の題材にしてほしい”だそうで、結局移植性の話はしないようにしたが、担当は自分が言った意味が分かっていたのだろうか? そして、あの頃のSEはどうしているのだろうか?

個人的には、「移植性のあるプログラムを書こう」は、プログラミングの基礎だと思うのだが・・・

10日間でプログラムを作ろうと思ったら。”に関わる話ですが 「あなたがプログラミングに向いていない10のサイン」を見てみましょう。きっと、いいヒントがもらえるでしょう。

0 件のコメント:

コメントを投稿

import this

  The Zen of Python, by Tim Peters Beautiful is better than ugly. 醜いより美しいほうがいい。 Explicit is better than implicit. 暗示するより明示するほうがいい。 Simple...