先日、2つのデータ(csvファイル)を比較し差異がある行のみを確認するにはという質問に回答をつけたのですが、経緯を踏まえ、皆さんに以下の点について意見をいただければと思います。
0. 条件によっては別の問題が発生するかもしれない解決策は(たとえその可能性を示唆したうえでとしても)NGなのか。
0. かりにその「別の問題」を見逃したうえで回答していたとしても、回答者は無責任として非難されなければならないのか。
#背景
ざっくり言うと、
0. 質問者はVBAで複雑なコードを書き、意図通りに動かないと悩んでいた。
0. 当該案件は「行ごとに完結する処理」であり、その行がかなり大量にあるという問題。私の眼には、VBAよりもはるかにAWKに向いている問題に見えた。
0. VBAをいじれる人なら学習も難しくはあるまい。python, perlなどの選択肢もあるが、シンプルで初学者にも敷居が低かろうという点でawkに軍配が上がると考えた。
0. windowsではawkは標準では使えないが、簡単にインストールする手段はある。この点も大きな問題にはならないだろうと考えた。
0. ただしデータの条件によってはawkでは面倒なことになる可能性はある。現実問題としてはcsvよりはtsvの方が安全のはずで、その旨追記しておいた。
さて、これが当初の回答だったのですが、ご覧の通り、なんだかとても怒り狂った人が現れてマイナス評価をつけていきました。なんだか案件と関係のなさそうなことを色々言っていますが、核心かも知れない点としては、
0. awkは低レベル非力なスクリプト言語なので人に勧めるべきではない。
0. ロケール設定によっては問題が生じる危険性があるのに人に勧めるべきではない。
ということらしいです。
さて、awkでコンマ区切りのデータを扱おうとする場合、そしてデータそのものの中にコンマが含まれている可能性がある場合、「普通の方法」では問題が出てくる可能性は確かにあります。
しかし、データがたとえば商品IDであることが分かっているとかであれば、実用上は問題は出ません。また、コンマ区切りデータ問題を回避する手段もあります。つまり、条件が合えば、世界のどこかに存在するかもしれない問題点はとりあえず置いておいて、てばやく目の前の問題を片づけられる可能性はある。その辺は質問者自身に判断してもらえばいい。こうしたことを追記したわけですが、件の批判者はとにかく聞く耳を持たない感じです。
私の考え
もちろん問題の指摘は構わないのです。特に質問者がうのみにして回答の通りにすれば深刻な結果を招きかねたい場合は、ある程度強い言葉を投げることもやむを得ないかもしれない。
しかし、私としては、不完全な回答であっても、あるいは結論が間違っていたとしても、そこに何らかのヒントが含まれるなら回答としては成立しうると考えていました。この考えはおかしいでしょうか。私の回答は批判者が言うようにサギ同然で、投稿すべきではなかったのでしょうか? 内容への批判はともかく(当該案件においては、私としてはその点でも全く納得できませんが)、投稿行為自体を非難されていることには全く納得がいかないでいます。もしこの考えが間違っていたとしたら、私としてはteratailとの付き合い方を大幅に見直さねばなりません。
クローズ(2019-03-05)
皆様、様々なご意見・叱咤激励をありがとうございました。
自分の認識を再確認できたところ、思いもよらぬ角度からの考察に驚いたところ、いろいろあり、いずれにせよ糧とさせていただきます。問題点をもっとも具体的かつ理路整然とした形で解説していただいたのでraccyさんの回答をベストアンサーとし、ひとまず閉じさせていただきます。


回答7件
あなたの回答
tips
プレビュー