パスワードを忘れた? アカウント作成
11015767 story
ソフトウェア

表計算ソフトはコードレビューがしにくいため重要な仕事には向いていないという説 46

ストーリー by hylom
適切なテストツールがあれば良いのでは 部門より
danceman 曰く、

計算機科学の専門家であるDaniel Lemireという人物が、経済書「Capital in the Twenty-First Century」を例に、なぜ大切な仕事には表計算ソフトを使用するべきでないのかを説明している(Slashdot)。

Piketty氏は著書の中で、「賃金が増加することより資本の配当のほうがより大きな利益をもたらすため、少数のエリート層が全ての富を手に入れることになる」という説を展開している。Piketty氏はデータ分析を行ってこの説を正当化しているのだが、そこで使われている表計算ソフト内の記述に間違いが含まれていたという。

Lemire氏によると、表計算ソフトはコードレビューを困難にするという。何十もある小さなセルにコードが隠れているため、もし慎重にコードを査読しなかった場合、また他の人がレビューしづらい状態になっていた場合、信頼できるコードになるはずもないとのこと。つまり表計算ソフトは重要でない仕事を急いで片付けるときには向いているが、重要な仕事を確実に完成させるようには設計されていないという。

  • まあ,あっちは見た目がどうか,なわけで致命的ではないけど。
    コードレビューのしにくさは同等かそれ以上。プリコンポーズされてた日にはもう…

  • by Technobose (6861) on 2014年05月30日 18時48分 (#2612032)

    >何十もある小さなセルにコードが隠れているため、もし慎重にコードを査読

     単純な計算だけなら追うのも楽なんだけど、一つのセルの中にif()関数を入れ子にして、さらに別のシートを表引きしたりするものになると、見るのもイヤになる。
     単純な計算ならシートの機能だけで作ればいいけど、複雑な条件判断が絡んでくるならマクロを使うべきだし、表引きだとかが絡んでくるならデータベースで作った方が構造がスッキリしてわかりやすくなるんだけど。
     で、そういうのを作ってる人に言わせると、Excelなら誰でもいじれてメンテナンスできるとのこと。
     私は絶対手をつけないな。というより怖くてできない。
     
     あと、表計算ソフトって、セルの保護機能が弱いから、うっかりデータを書き換えても気がつかないのが怖い。
     よく、表計算ソフトを使って集計しているのに、電卓で検算していると揶揄されているけど、表計算ソフトの融通無碍な操作性が、データの完全性に不安感を引き起こしているのが原因だと思う。
     私の場合、表計算ソフトを使うのは、単純な表か、データ処理の最終段階で見栄えを整えるくらいにしている。データ処理自体は、ここ十年ほどはAccessで行ってる。リアルタイムで計算結果を表示するような使い方で無いなら、データベースのほうが業務には使いやすいと思うな。

     普通の事務員こそ、データベースの使い方を覚えるべきだよ。

    • 確かに,データベースでロジックは済ませといた方が楽ですね。

      FileMakerなら,Excel並みの手軽さだと思う(Accessほどの自由度はないが)ので,
      もう少しその手の分野にも使われてよいと思うのだが,Excel代わりに使うには高いんだよなあ。

    • by Anonymous Coward

      if()関数の長大な入れ子を一つ作れば、あとのセルにコピペで済ませられるのが表計算ソフトの良いところ。
      ただ、そのコピペが何かの拍子に間違っていることがあるんだよな。
      Errorが表示されてれば発覚しやすいけど、たまたま計算できてもっともらしい数値を表示してると気付かない。

      Accessは個人的には好きだけど、引き継ぎが大変なのであまり使えません。
      Excelバリバリ使う人でも一歩引いてる感じ。
      Excelをそれなりに使えている人は尻込みして仕事を引き継いでくれません。
      Accessで作った簡単な表を引き継いでもらって、何年かして戻ってみたらExcelのフィルター機能使いまくった凄いものに改造されてた。。。

  • >スプレッドシートを使ってしまったために、せっかく公開したコードに誤りが含まれている

    評価式はセルをクリックしないとわからないとかで、表示されてる数値を見るだけだとチェックしにくいってことなのかな。
    他の手段で数値を求めて結果を表にしたりしても結局は一緒の様な気がするけどそうでもない?

    ソースと計算過程をレポートに添付すればいいんでしょうけど。
    もしくは研究ノート。

  • by Sukoya (33993) on 2014年05月28日 14時34分 (#2610070) 日記

    スプレッドシートの使い方を理解してもらえなかった……

    今更、それ、ガッチガチにVBAだのマクロだので作り込まなくても、
    スプレッドシートだけで簡単に実現出来るんですよとはいい出せない雰囲気だぞ……

    • by Anonymous Coward

      保守しながら使い続ける用途の場合、最初からロジックは VBAで組んだほうがメンテしやすいとか?
      VBAとワークシートとでロジック・プレゼンテーションの分離ができたるする?

      • by HomuraAkemi (46038) on 2014年05月30日 17時50分 (#2611972)

        VBAは無理。読めない。わけわからん。
        できればC#か、マクロ用にカスタマイズした廉価版C#を搭載して欲しいな。
        精一杯妥協したとしても、JavaScriptが限界。
        VB系は可読性が悪すぎる。

        • by Anonymous Coward on 2014年05月30日 18時16分 (#2611996)

          ヘタレが書いたらどんな言語でも同じ。
          ぐちゃぐちゃなJavaScriptのコードはthisに何が入ってるか全くわからん。
          とても読めたもんじゃない。

        • by Anonymous Coward on 2014年05月30日 18時38分 (#2612016)

          > VBAは無理。読めない。わけわからん。
          PowerShell [blogspot.jp]にしなよ。
          .Net Frameworkのオブジェクトなら触れるし、対話的作業もできるし

          > できればC#か、マクロ用にカスタマイズした廉価版C#を搭載して欲しいな。
          君の手元のPCがWindowsなら、C#は標準搭載だよ。
          Csc.exeでコンパイル可能 [blogspot.jp]。

          > 精一杯妥協したとしても、JavaScriptが限界。
          JavaScriptで我慢できるなら、JScript [wikipedia.org]って手もあるぞ。

          不満ばかり言う前に、少しは自分で調べてみなよ。
          よくやってる方だと思うよ、マイクロソフトは。

          • by Anonymous Coward

            スプレッドシートで使えるんですか?

            • by Anonymous Coward

              > スプレッドシートで使えるんですか?
              使える。
              WordでもVisioでも使える。

          • by Anonymous Coward

            いつの間にマイクロソフトはOffice内で追加インストール無しに

            PowerShellやC#やJavascriptを使えるようにしてくれたんですか?

            • by Anonymous Coward

              >いつの間にマイクロソフトはOffice内で追加インストール無しに
              >PowerShellやC#やJavascriptを使えるようにしてくれたんですか?
              PowerShellとC#に関して言えば、それらの言語の最初のリリースから。
              JavaScriptでなく、JScriptも同様。VBScript(VBAではない)も同じ。

              ついでに言えば、Windows用のRubyもWIN32OLE経由でできる。
              やったことはないが、PerlもPythonも同じじゃないか?

              マイクロソフトは、君が考えるよりもずっと賢いんだよ。

              だいたい、ぐぐれば判る様なことを他人に聞くなよ。
              そんな暇があったら、さっさとハックしろ。

              #そう言う下らない質問をする奴は大抵ハックできない奴だ。

            • by Anonymous Coward

              MS Officeに元々共通インタフェースがあって、PowerShellやJScriptが使っているだけ。
              追加インストールが必要ってアドオンか何かと勘違いしてない?

        • by Anonymous Coward
          そういう話はよく聞くんだけど誰も再設計しないよね
          LibraOffice みたいなのから派生したりしないのかしら
          • by Anonymous Coward

            過去の資源が動かなくなるほうがコスト的に問題では無いでしょうか?

        • by Anonymous Coward

          csc+オートメーションで行けんじゃね?

        • by Anonymous Coward

          VBA自体は読みやすいですけどね。Excel組み込みオブジェクトが結構読みづらいですが。
          Findとか(遅いんで自分で連想配列とかバイナリサーチとかしたほうが早いです)。

        • by Anonymous Coward

          他の人も書いてるけど
          VBAはアプリのOLEオートメーションを呼び出してるだけなのでC#からも呼べるよ。
          (MS版の)JavaScriptからも呼べる。

          VBAはエディタが標準でついてるだけの話だろう。

        • by Anonymous Coward

          廉価版は劣化版でも簡易版でもなくてよ!

      • by Anonymous Coward

        VBAは他のプログラミング言語と同じ土俵でしか戦えないので、
        単に古臭くて機能が足りない言語としか言いようがない。

        だから、
        古臭い言語しか使えない人間以外には有効ではない。

        それに対してスプレッドシートは、
        一般的なプログラミング言語とは全く性質を持つので、
        使いどころによっては最良の選択肢になることも多い。

    • by Anonymous Coward

      スプレッドシートは文字の位置が揃った文書を作るためのソフトです。
      記入する数値は電卓で計算して全角で入力するのです。

  • by camelus (41736) on 2014年05月30日 18時42分 (#2612020) 日記

    「重要な仕事には簡易言語は向いていない」
    と言えば何となく…通じないものか…

  • by onikuya (17148) on 2014年05月30日 19時45分 (#2612083) 日記

    列ごとじゃなくて?

  • 普通、コードレビューってコンパイルに通すファイルをエディタで直接参照して行うものでないの?

    それとも何か、普段からソースコードの編集するに表計算ソフトを使ってるのか?
    エクセルのマクロですらエディタは別ソフトだぞ……。

    --
    #書籍でのソリッドファイター完全版 [fukkan.com]復
  • by Anonymous Coward on 2014年05月30日 18時45分 (#2612023)

    基本、機械可読の形でしかコードが保存できないから。
    なにしろ、そのまま(再現性のある形で)印刷できない。
    (画面ハードコピーじゃないよ)
    所詮、処理系言語のRADツールでしかない。

    いや、入り組んだxmlとかで出されても困るけどさぁ

    • by Anonymous Coward

      まったくそのとおり。
      でも、同じことが、IDE環境でのソフトウェア開発にも言えてしまう。
      マウスでメニューをたどって設定を変えると、できるプログラムが異なってしまうとか。

      いや、入り組んだxmlとかで出されても困るけどさぁ

  • by Anonymous Coward on 2014年05月30日 18時47分 (#2612027)

    Computer ScienceのProfessorだそうだが、赤を入れたくなる言葉遣いだといわざるを得ない。
    「重要な仕事に使うな」ではなくて、「第三者によるコードレビューを必要とするような仕事に使うな」でしょ。
    実際、重要だけど表計算ソフトが十分役割を果たせる仕事なんていくらでも思いつく。

    • by Anonymous Coward

      余白が狭すぎましたか?

  • by Anonymous Coward on 2014年05月30日 18時49分 (#2612034)
    表計算ソフトという土俵(GUI主体で難しいことは考えず簡単に使いたい人のためのツール)の上でやる限りしょうがない。
    もっとコーダー向けの表計算ソフトができるといいのかもね。各セルごとのコードが一覧されるような。
  • by Anonymous Coward on 2014年05月30日 18時50分 (#2612036)

    コールシーケンスとかExcelで書いて送りつけてくる日本のお客さんの話じゃなかったのか…。

    # 本社(US)に送るために英訳するんだけど文字が入力されてるセルを特定するのに一苦労

    • by Anonymous Coward

      方眼紙にしてるだけでもアレなのに、それぞれのセルでインデント使ってたり、
      そのインデントが機能だったり半角スペースだったり全角スペースだったりその混雑だったり。
      隣のセルの文字で途中から隠れてるのでも分かりづらいのに、
      インデントで全部見えなくなってたり。

      あ、そういう話ではないのね。

  • by Anonymous Coward on 2014年05月30日 18時50分 (#2612037)

    Excelの場合は単に、もう一回Excelファイルを作って(可能なら別の人に入力してもらって)ダブルチェックするだけで十分なことが多い

  • OLEで簡単にアクセスできるのに、なぜセルの関数を一覧化するプログラム/スクリプトを書かない?

    • by Anonymous Coward

      ついでに ExcelDiff.exe と WordDiff.exe もおながいします。

  • by Anonymous Coward on 2014年05月30日 19時29分 (#2612072)

    何を言ってるのか意味が判らないんだが、
    EXCELで巨大ファイルを作るとコードが読みづらいって言いたいの?
    巨大ファイルならJAVAやCの方がよっぽど全体を把握しづらいと思うけど

    #素直にEXCELが嫌いって言えばいいのに

  • by Anonymous Coward on 2014年05月30日 19時41分 (#2612078)

    excelの挙動がおかしいと言われデバグに行くと、出したい値が出ないためか、
    数値そのものがセルに書き込まれている。

    本来は関数の評価値が出力されるんだよね、というのはわかったので、
    およその検討をつけて本来あるべき関数を書き込んでやると、「0で除算
    するなエラー」が出た。成程。

    ただ、恐ろしいことにこのexcelシートは、報告書相当の価値をもつもので。
    さらに恐ろしいことに、二年経っても改訂版が出てない様子で。。。
    うちがよっぽど特殊な状況だったのだろうか。。。

    ちなみに、作ったのは素人さんです。0が入るとマズイことが想像付かない程度の、です。
    プロでこんなマヌケなことする人、いませんよね。ね?

    • by Anonymous Coward

      前任者が関数と手入力を混在させた表を使っていたので
      私が担当するにあたり全て作り直したら、今までと違った傾向の報告書が出来上がるようになりました。

      それを提出した結果、私が怒られましたよ。
      前任者に仕事のやり方を聞いて作り直せと。

      私も頑として譲らなかったので追いやられた後、別の方が担当するようになったらしいのですが
      数ヶ月後にその報告書の提出義務が無くなったと聞きました。

      その程度の仕事を継続してやってる所、実は多いんじゃないでしょうか。

  • by Anonymous Coward on 2014年05月30日 19時48分 (#2612086)

    ExcelとIDEの中間くらいの位置付けで、もっと気軽な数字やデータいじりに便利なソフトが出てきてほしい。
    単に出てくるだけじゃ駄目で、Excel並にデファクトスタンダードになっていてほしい。
    事務員にExcelは使わせたくないが、だからってIDEやテキストエディタでコード書かせる訳にもいかないし。

  • by Anonymous Coward on 2014年05月30日 20時27分 (#2612108)

    間違いの少ないロジックを実現しにくいというなら確かにその通り。

    だがそれと、「重要」だったり「大切」だったりする仕事につかえるかどうかは必ずしも関係ない。

    たまに間違えていてもあとで直せばいいから、
    それよりも手軽に数多くの計算をこなす必要がある、
    「重要」で「大切」な仕事もたくさんありますよね。

    あと、多少の間違いがあっても生産性をあまり落とさないという点ではExcelなんかはかなり高性能なので、
    純粋に間違いの量で生産性を測ることもできません。

typodupeerror

アレゲはアレゲを呼ぶ -- ある傍観者

読み込み中...