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

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

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

    一応、プログラムが正しい結果を出すことはチェックしている…つもりなんですが…
    学生さんに渡したプログラムに、卒論提出直前にとんでもないミスが見つかったことがあります。
    • by Anonymous Coward

      >メモリリークなんかのバグがあってもアウトプットが正しければ良い
      正しいのか?

      まあ言いたい事は分かる。
      「個別の値に誤りがあったとしても定性的な傾向さえあっていれば良い」
      的な意味なんだろうけど。

      公開されるつもりで書いたほうが論理的になるし、あとでバグを潰す
      ことは大変な苦労をする。

      「品質は作りこむものです」という言葉もあるしな。

      • Re: (スコア:3, すばらしい洞察)

        >メモリリークなんかのバグがあってもアウトプットが正しければ良い
        正しいのか?

        まあ言いたい事は分かる。
        「個別の値に誤りがあったとしても定性的な傾向さえあっていれば良い」
        的な意味なんだろうけど。

        ぜんぜん分かってないってことが分かる。
        メモリリークは、途中経過にしろ最終結果にしろ、数値の誤りを意味するものではない。
        上出来なプログラムに比べれば、メモリリークするプログラムは実行中により多くの
        メモリを要求する筈だが、それを賄い切れる限り、単なるメモリリークだけでは
        間違った数値を出力したりはしない。

        • メモリリークは、途中経過にしろ最終結果にしろ、数値の誤りを意味するものではない。

          君こそバグの恐ろしさを判っていない。

          メモリリークのあるところ、ポインタ操作の間違いアリ、だ。
          演算対象や、保存先のアドレスが正しくなければ、数値演算の結果の正しさは保証できん。

          --
          fjの教祖様
          • メモリリークのあるところ、ポインタ操作の間違いアリ、だ。

            それは相関関係であって、因果関係ではない。
            メモリリークの修正をうかつに奨励すれば、一定量の
            「メモリリークのある、低品質なプログラム」が「メモリリークのない、低品質なプログラム」
            に変換される。前者の方が後者よりも検知容易であることとを考えると、寧ろ放置すべきである。

            • Re: (スコア:2, すばらしい洞察)

              前者の方が後者よりも検知容易であることとを考えると、寧ろ放置すべきである。

              それこそナンセンスだ。
              前者だろうが後者だろうが、数値計算結果に間違いがある危険性が高いことに変わりはなく、なおかつソースが公開されない限り、数値計算結果に影響のあるメモリリークか、影響の無いメモリリークかは評価不能なのだから。

              「うちの娘は、メモリリークがあっても大丈夫な娘ですっ」
              と言いたいなら、ちゃんとソースコードを公開するべきだ。

              ついでに言っておくなら。研究用のコードを公開するにあたって、コードのクリーンナップは必要ない。

              --
              fjの教祖様
              • by Anonymous Coward
                > 数値計算結果に影響のあるメモリリークか、

                そういうのメモリリークって言わないから
              • Re: (スコア:2, すばらしい洞察)

                それも間違い。
                メモリリークではあるから。それ以外の問題でもあるというだけで。

                というよりも。メモリリークというバグが単独で発生し、なおかつそれ以外の問題を引き起こさない、と言うのは奇跡的な状況です。

                動的メモリ管理というのはすごく簡単に言うと:

                1) メモリを確保する。確保したメモリは先頭アドレス/リファレンスで管理する
                2) 1 で得たアドレス/リファレンスを基点として、一連の演算を行う
                3) 1 で得たメモリを解放する

                という3段階で成り立っています。また、コーディングもこの順序で行われるのが一般的です。
                メモリリークが「メモリリークとしてだけ」

                --
                fjの教祖様
              • というよりも。メモリリークというバグが単独で発生し、なおかつそれ以外の問題を引き起こさない、と言うのは奇跡的な状況です。

                参照カウント式のGCのある言語での循環参照とかはどうでしょう?
                グラフをリンクで表現してるとありがちっぽい気も…。

                親コメント

身近な人の偉大さは半減する -- あるアレゲ人

処理中...