SQLer 生島勘富 のブログ

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

雑感

 http://d.hatena.ne.jp/Sikushima/20111008/1318037160 の続き。

 何度も散々書いてきたけれど、SQLC++でできたプログラムをラップしているだけですから、それをもう一度別の言語でラップしても理論的には効率的にはなり得ない。

 海外旅行をしてタバコ屋でタバコを買うことを想像すればいい。そんなことで一々通訳やガイドを呼ぶのはとんでもなく非効率だけれど、その国の言語ができなければ仕方がないでしょう。(英語圏ならかなり惨めな気分になるな〜)

 RDBMSの場合、おばあさんはSQLという言語しか理解してくれないから、注文はSQLでないと行けない。理論的には通訳を挟んでも非効率にしかならないのですが、【SQLができない人】にとってはできないSQLでやるより効率的になります。

 つまり『SQLなんか使わない方が効率的』と感じるということは【SQLができない人である】という証明でしかないでしょう。

 こんなことは、ちゃんと技術を理解している人なら『高級言語を低級言語でラップしても非効率になるだけ』で話はすむのですが、それではすまない http://b.hatena.ne.jp/entry/d.hatena.ne.jp/Sikushima/20101123/1290486197 ということは、それだけ全体的にレベルが落ちているんだと……。

こんな炎上もあったね

 こんな炎上もありました。

http://el.jibun.atmarkit.co.jp/minagawa/2010/04/post-ebc4.html

 合わせれば論点は2つですから、取り得る立場は大まかに4つのマトリックスになる。


  全部スタティックはおかしい 全部スタティックでもよい
SQLで処理すべき A:原理原則主義
(技術重視派)
B:パフォーマンス重視の中間派
SQLは避けるべき C:??重視の中間派
(何を重視しているの?)
D:動けば良い主義

 A・Dは主義主張がはっきりしていて、議論の余地はないしブレもないでしょう。

 B、Cは政治が加わってブレる部分でもあります。基本的に政治まで入れたら答えはなく、全部正しいし、全部間違っていることになりますが、ほとんどの人が【常に】Cじゃないか?

 ちなみに、私の判断は政治的にブレる。商業SEならA、社内SEならどれでもOKで「好きにしなはれ」というスタンス。

 全部スタティックで宣言しているプログラムは個人的には正直見たくない。でも、動くモノはできるし、COBOLを長くやってきた人なら何の問題もなくメンテするでしょう。パフォーマンスの差なんてほぼ出ない。むしろ速い処理もあって、いずれにしても誤差の範囲で体感はできないレベルでしかないでしょう。

 社内SEなら、自分で作って自分でメンテすることになります。パフォーマンスも変わらないのだから、自分がしっくりするやり方をすれば良い話ですが、売り物として納める商業SEならかなり問題です。それはつまり、ポジションによる政治判断が入るだけの話で、商業SEでも部長がCOBOLerで「全部スタティック」を主張するような人だから従わざるを得ない。なんて事態も起こり得るでしょう。

 それでも、社内SEのみながわさんのところが炎上したりする。

 Aを主張している人が炎上に至ほど攻撃するのなら「原理主義者は怖いね」ってなったとしても、少なくとも主張は一貫していることになって私には理解できるのです。しかし、ほとんどの人がCの立場で他者を非難し攻撃する。

 みながわさんには、「動けばいいじゃないだろ」といいながら、私には「できないというのか(動けばいいだろ)」と言ってるわけ。

 顧客視線で見れば、Cを選べばパフォーマンスは非常に悪いが、Bはパフォーマンスは出る。つまり、プロでありながら、顧客に納品するクオリティを落としてもOKで、落としてないB(みながわさんはDかも知れんが)の他者を攻撃している。自分たちの宗教を押しつけて人格攻撃までする。
 
 これらのCの人達の行動は私にはロジカルには見えない。何を基準にしているのか理解不能ですから、行動から、技術が分かってないだけと判断しているのですが、実際の所はよく分からない。はっきりしているのは、一貫したロジックはないということ。あるとしたら「OO言語は正しい」という宗教じみた主張しか考えられないのよ。


 技術者ならもっとロジカルであって欲しいけれど、技術者どころか人間としても最低じゃないのか?

 もしかしたら、私の気づいてない基準があるのかも知れないけど……。