SQLer 生島勘富 のブログ

RDB・SQLの話題を中心に情報発信をしています。

なぜごり押しなのか4

 私は基本的に、インターネット上の議論では個別の事情は挟むべきではない。と考えています。
 私が個別の事情を挟んでいるとか、感情的とかいう人がいるけれど、全く逆です。

 相手が【詐欺師レベル】と分かったとき、議論を打ち切って感情的に怒っているだけの話です。

できない人がいるは個別の事情。

 私がSQLが得意だから推す。と考える人は、自分自身が得意なものを推そうとする人でしょう。ですから、そんなこと全く言ってない私の感情を、自分の感情で補完しているだけでしょう。自分の心の醜さが出ているだけです。

 私はRDBMSを使う以上、SQLを使いきることが効率的であると言ってるに過ぎません。

 ただし、以前にも書きましたが過ぎたるは及ばざるがごとし。例えば、【闇雲に】トリガーを仕込みまくったりしたら効率は確かに落ちます。【闇雲に】が重要であって【使ってはいけない】ではないのです。

 私は当たり前のことしか言ってないけれど、反論には、暗に、あるいは明確に「できない人に配慮せよ」っていう感情が乗っている。しかし、できない人はどのぐらいできないか、私にはレベルが分からないから、公の場で議論するにふさわしくないし、公の場でする議論に個別の事情を持ち出しても意味がない。

 個別の事情を排除すれば、結論的には『RDBMSを使う以上、SQLを使いきるべき』としかならない。

できない人に合わせなくても良いのか?

 自分ができないのであれば出来る様になれば良いだけのことですし、できない人が大勢いる PJ ならメンバーの力量を見て、どこまで下げるか考えればよいでしょう。

 私が問題としているのは、合わせた(レベルを下げた)結果、多くの PJ で初級シスアド = ユーザ』以下という詐欺レベルになっているということです。それが一般化しているから反発が来るのでしょうけどね。そりゃあ『初級シスアド = ユーザ』以下のスキルしかない連中が大半の PJ であれば、SQLを使わない方が効率的ですよ。それも当然の話ですけどね……「自分たちは素人以下」と大声で言ってるのと変わらない。

 『初級シスアド = ユーザ』をある程度超えるスキルがあれば、SQLを使った方が効率的と感じますし、超えていなければ「こんなものを使ったら効率が落ちる」と感じると思います。当たり前の話で使うスキルがないものを無理に使うのは効率的ではありません。例えば、私がF1に乗ってもまずピットを出れないでしょう。

 要するに、効率が悪いと感じるのは、できなくって間違った使い方をしているからでだけなのです。

 ウソだというならば、初級シスアドの問題のテーブルを作って、他の言語からアクセスして解答よりも効率的にできる方法見せてみれば良い。もしできたら私は菓子折持って謝りに行くわ(笑)。もちろん、解答よりもっときれいなSQLにはできるけどね。

SQLのお勉強

 SQLは本当に簡単な言語で、素人にもできるのですからその気になれば誰にでもできます。考え方を少し変えたら良いだけです。もし、勉強しようと思われた方がいらっしゃれば、下のそれぞれのリンクから順に【次の日】と送って行けば大体まとまっていると思います。

 ■ SQL概論
http://d.hatena.ne.jp/Sikushima/searchdiary?of=30&word=%2A%5BSQL%B3%B5%CF%C0%5D


 ■ SQL初級
http://d.hatena.ne.jp/Sikushima/searchdiary?of=12&word=%2A%5BSQL%BD%E9%B5%E9%5D


 ■ SQL中級・上級
http://d.hatena.ne.jp/Sikushima/searchdiary?of=15&word=%2A%5BSQL%C3%E6%B5%E9%A1%A6%BE%E5%B5%E9%5D