パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

科学者は研究に使っているコードを公開すべき?」記事へのコメント

  • by Anonymous Coward
    基本的に自分とその周辺しか使わないし、たとえメモリリークなんかのバグがあってもアウトプットが正しければ良いので、やっつけ仕事、コピペ継ぎ接ぎのかたまりです。
    議論で公開しろと言われれば、しますけどね…
    公開するならもう少し綺麗なコードにしたいし、その時間があるなら別のことをしたいというのが本音。

    一応、プログラムが正しい結果を出すことはチェックしている…つもりなんですが…
    学生さんに渡したプログラムに、卒論提出直前にとんでもないミスが見つかったことがあります。
    • Re: (スコア:2, 興味深い)

      by Anonymous Coward

      しばらく前の IEEE Computer Magazine に載っていた記事の受け売りです.職場に置いてあるので,何号の何ページなのかが確認できませんが.

      普通の文脈で言うソフトウェアの品質には,クラッシュせず安定して動作すること,ユーザインタフェースが一貫していること,保守しやすいことなどがあります.これらは,一般的なユーザが使用する際に戸惑わないことや,ユーザの新しい要求に応えるためにソフトウェアを変更しやすいことなどを表わす基準です.

      一方,計算結果を人間が読み,何らかの判断を下すためのアプリケーションには,「計算結果が間違っ

      • >メモリリークのような計算結果に影響しない欠陥
         この辺りがすでに間違った認識なんじゃないかな。

         メモリリークしている領域に、他からアクセスしていないという確証が得られるまで、メモリリークしないように作るべきだと思います。
        #メモリを確保したら、次行は解放する処理を書きましょう。
        #確保した領域への処理はその間に書けば良いのです(プログラムにもよりますが・・・)
        #並列処理を行う場合は排他処理を適度に入れましょう

         たまたまうまく動いているように見えるだけで、実はとんでもない間違いが混入している可能性はできるだけ排除すべきだと思いますが、研究者は計算が間違っていても気にしない人が多いようですね。

        • by Anonymous Coward
          > 実はとんでもない間違いが混入している可能性はできるだけ排除すべき

          「できるだけ排除すべき」なのは,その通りです.問題は「できるだけ」の部分です.
          有限の労力で全ての欠陥を取り除くことは出来ません.
          ですから,アプリケーションの種類によって,優先して取り除くべき欠陥が異なるのです.

          これは,先に例として挙げた判断用のアプリケーションに限った話ではありません.
          例えば,銀行の基幹システムと,自動車の制御システムでは,問題となる欠陥が異なります.
          銀行の基幹システムではデータを失なったり壊したりしないことが最優先であり,自動車の制御システムでは安全性が最
          • by Anonymous Coward

            開放してればSegmantation Faultかなんかのエラーで一発で検知できるよね。
            少なくとも誤った結果を正当なものと誤解するリスクは回避できる。

            • by Anonymous Coward on 2010年02月12日 17時26分 (#1717381)
              必ずしもSegmentation Faultが出るとは限らないでしょう。
              「少なくとも誤った結果を正当なものと誤解するリスク」はどうやっても出ますし、それを回避するには結果を慎重にチェックするしかないのです。
              メモリを解放すること自体にリスクがある以上、どちらが正しいとは言い切れません。
              親コメント
              • by Anonymous Coward

                メモリを開放することによるリスクって何でしょ?
                たまたまうまくいっていた計算がうまくいかなくなること?

              • by Anonymous Coward
                あなたは、グラフの任意のノードを、 dangling pointer を発生させず、時間と空間のオーバーヘッド無しに回収できるのですか?
                # もしそうなら、今すぐ Microsoft か Sun に行って、言い値で雇ってもらってください。

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

処理中...