問題発言をしていますが?表面上おとなしくなったようですが、性根(商魂?)は変わっていないようですね。01:24多くの業務APはRDBMSを利用しているのだからSQLが重要だということに間違いはないと思うし、実行計画が読めないとちょっとヤバイ。業務APを開発するのにオブジェクト指向が絶対必要かと問われれば、「なくてもなんとかなる」と答える。オブジェクト指向で業務をモデル化し、実装に落とし込んでいく方法論に対して異論を挟むつもりはないが、トラディショナルな手法であるDFDからER図を起こしていく手法(DOA)もまだまだ現役である。生島氏の言うことはもっともなことだと思う。オブジェクト指向の勢力も拡大しているということは知っておく必要があるし、ちゃんと勉強はしておくべきだろう。RedmineのようなOSSがオブジェクト指向言語で開発されているのだから教材には事欠かない。ちなみにオブジェクト指向言語を学ぶ上でJavaは余りお薦めできない。その理由は本質的じゃないところでハマり易いと思うからだ。その点Rubyは学習にも適していると思う。uniPaaSやGeneXusのような開発ツールを使うのが(万能ではないにしても)良いということがわかってきた。これらの開発ツール(プラットホーム)にはRDBMSが使われているからSQLは分かっていなくちゃいけないし、オブジェクト指向的な考え方も取り入れているからオブジェクト指向も理解しておく必要がある。どっちがどうじゃなくて両方必要だよってことを私は言いたい。01:33>理論値でって、言ってきているのは、下手糞にやったらいくらでも遅く、工数を掛けてコーディングすることは可能ですから、できない人の理屈を持ち出しては議論にならない。>唯一絶対的に言えることは、理論値として工数とパフォーマンスの両方とも、絶対にひっくり返らない。あいかわらず「理論値」を連発してるけど、根拠を提示する気はないのね?提示することができない、というのが正解なんだろうけどさ。議論にならないって、そりゃこっちが言いたい。何の根拠も示さず「これが正しいのだ!絶対なのだ!疑うやつはカスだ」と言われたら、そりゃ議論にも何もなりゃしませんがな。過激な言動だけは控えるようになったね。01:24オブジェクト指向の要否とか、ましてやオブジェクト指向「言語」どう学ぶかなんて論じている時点で、今時の技術者として決定的に遅れを取っている。申し訳ないけど、そんなものは10年前の議論で、オブジェクト指向も万能ではないことを理解したうえで、既に使っているところは使っているし、使わないとは使わない。08:11理論値で絶対にひっくり返らない。理論値の絶対値を言ってるわけはじゃないでしょうが。そもそも、効率って書いてるのよ。効率は工数とパフォーマンスをあわせたモノだって。数倍~数十倍の差は付きますよ。わからんかな?別にOO言語をやったらアカンとか一言も書いてない。必要もないとは一言も書いてない。OO言語に比べてSQLの方が効果が大きい。OO言語の解説する前にSQLをやるべき。単純にそれだけのことしか書いてない。絶対値なんかに意味はないの。全部に個別の事情が入るからそんなモノで議論にならないっていってるでしょうが。反論は、OO言語で理論値(ものすごくできる人でもいい)SQLで理論値(ものすごくできる人でもいい)がシステム全体で逆転するって言えば良い。08:51やっぱり煽られました・・・・1点だけコメントします。>全部に個別の事情が入るからそんなモノで議論にならないっていってるでしょうが。>反論は、OO言語で理論値(ものすごくできる人でもいい)SQLで理論値(ものすごくできる人でもいい)がシス>テム全体で逆転するって言えば良い。私は、過去にSQLが遅いのでSQLを崩して、C言語でJOINをやらせて高速化しました。OO言語ではないですが、今だったらC++を使うでしょう(なぜってハッシュクラスがあるから)。言語による実行速度順は以下のように考えています。ORMこれはあくまでもオレ理論ですので、生島さんとの会話だけで使います。(そもそもこういう比較があまり意味がないと思ってます)。本当に出来る人にとっては、DBMSのオプティマイザの動作以上のものを作ることは現在のところ可能でしょう。現在のプログラミング言語にはそれを補助する道具(ライブラリ)も揃っています。生島さんの今までの理屈を整理すると1.DBMSとの通信2.オプティマイザ以上の効率的なコードがが人間に書けるかになります。細かく突っ込まないですが、1にせよ、2にせよ一般論(または理論値)では語れないでしょう。ケースバイケースになります。一度繰り返しますが、きちんと出来る人が書いたら、少なくとも現在のところ、DBMSのオプティマイザを超えたパフォーマンスを出すことは不可能ではありません(ケースバイケースですね)。09:12>憂鬱な人なのかな~。自分を過大評価しているな。お前が俺に憂鬱なんて感情を抱いてもらえると思っているのか?憂鬱なんて感情は、現状を変える力も気概もない人間が持つ感情だ。お前が俺に感じさせることが出来るのは哀れみと怒りだけだ。しての立場を得てから望むことだな。今俺の成長が止まって、お前が人の二倍努力したとしても後10年はかかるが。09:19>理論値で絶対にひっくり返らない。>理論値の絶対値を言ってるわけはじゃないでしょうが。言葉の意味、わかって使ってるか?根拠のない理論値は存在しない。お前の経験則だけから導き出された解を理論値とは呼ばんのだよ。それは経験からの推測値に過ぎない。理論値の絶対値って言葉もちゃんとどういう意味になるかわかって使ってるか?知ってる言葉を組み合わせて使ってるようにしか見えないが。ないなら用法を完全に間違えている。国語の勉強をしなおせ。11:07憂鬱に反応された方に。特定の人に向けた暗号だったのですけれど、特定の人はいなかったみたいです。こちらとしては連絡を取ろうとしても、ダミーのメールアドレスでは連絡とりようがないので。一部、「商売しようとしている」みたいなことを書いてらっしゃる人がいるように思います。「商売をしようとして」ではなく、「商売として」書いています。思っているだけですが、「商売しようとしている」のが気に入らないという意図でコメントされている方は、意思表明していただければ。11:15ここで商売をされるのは問題ないと思います。本当に商売になってます?大変失礼ですが、こんなに不毛に荒れて、ここ1年で識者は離れて、(これも失礼な言い方ですが)程度の低い人しか残っていないような印象を受けるのですが・・・ただ、実際に有効な営業ツールになっているのであれば、私もやってみようかとは思ってます。#完全に横道にそれますが、ご返信を希望します。11:31ryoさん、こんにちは。サイレントマジョリティは関係ないんじゃないですかね。離れていく人もあるでしょう。税金みたいなモノです。邪魔ですが仕方がないです。それは現実社会でも、何%かはどうしようもないのがいるから仕方がない。今までは、大体、ほぼ全員に多少、脱線しても返せてたのですが、レベルの低い人のためにそれがままならなくなったことは、非常に残念です。11:42生島さん関係ない話でご返信ありがとうございます。社会勉強のつもりで、私も応募しています。12:00お世話になっております。@IT自分戦略研究所の岑です。運営に関するご意見をお送りいただいた皆さま、ありがとうございます。本コラム中のコメントについて、過去にさかのぼって明かな問題発言を削除させていただきました。削除対象は下記となります。16:48よろしくお願いいたします。こんにちは私も社内SEですから、社員はお客さんとして見ているわけで、お客さんの都合に合わせて、自分のスキル内で商売をしています。商売といっても首にならないように給料をもらっているわけです。変数なんて結局あまりつかわないんですね。それで障害が起こらず実際に安定稼動しているのです。生島さんもご自身の信じる方法で商売をしてください。このコラムは信じるための確証をえるための一部の有識者への誘いが目的だと思っています。若いと思ってもあっというまに人生なんて10年、15年経ってしまいます。出口のない迷路にはまったら、とりかえしのつかないことになります。情報収集し迷路から光の見える出口にたどりつく判断力が大事だと思います。12:12>レベルの低い人レベルが低いのはお前だろ。12:14>コメントしている人は訪問者の1%にも満たないのでこのコラムを見て、お前と仕事したいと思う変わった奴の割合がおよそ1%だろうな。12:36>特定の人に向けた暗号だったのですけれど、特定の人はいなかったみたいです暗号ってw誰か連絡を取りたい相手がいるなら直接コメントででも、名指しで連絡を取りたいと頼めばいいだけだろ?何が暗号だよ。そんなことやっといて、効率が大事?笑わせてくれるじゃないか。14:14みながわさん、こんなところで、他人のコラムにコメント書いている場合ではないと思うのですが。15:41みながわさん、こんにちは。チャチャを入れてすみませんでした。ここまで非道くなるとは思ってませんでした。15:52岑さん、どうも。私側だけ残っていたら、私がアホに見えるので気遣ってくれたんですね。私の発言には、そんなに気を遣って貰わなくても良かったのに。17:08アホだこいつ。>私側だけ残っていたら、私がアホに見えるので気遣ってくれたんですね。どこまで自分に甘い奴なんだ。>運営に関するご意見をお送りいただいた皆さま、ありがとうございます。本コラム中のコメントについて、過去にさかのぼって明かな問題発言を削除させていただきました。お前の問題発言を削除されたんだよ。17:10@IT編集者>運営に関するご意見をお送りいただいた皆さま、ありがとうございます。本コラム中のコメントについて、過去にさかのぼって明かな問題発言を削除させていただきました。問題発言とわかっていながら、生島の分は「気遣って」残していたわけだ。特別扱いをしていたことを認めてしまったな。類は友を呼ぶ、ということですね。ああ、みながわさんも来てるではないですか。私はIT技術者の転職サポート業ですが、たまに来ますよ、あなたがたのような方が。スキルや学歴をえんえんと自慢して、社会人としての最低限の礼儀やコミュニケーション能力すら持っていない人が。「おれはこんなにすごいスキルを持っていて、こんなに大きな仕事をやってきて、こんな有名会社の部長や課長とのコネクションもある。転職が成功しないのは、お前の能力が低いからだ」とのたまう人が。あなたがたの会社が倒産しないことを祈ります。私にはあなたがたを紹介する自信がありませんので。01:50初めて書きこみます。いくつか記事(とコメント)を読みましたが、内容以前に記事として最低限のレベルに達していません。思いついた問題点をあげてみます。1.前提条件を明記していない記事の最初に前提条件を明記するのは当然のことです。毎回明記できないほど大量にあるならば、前提条件を記した記事へのリンクを置き前提条件はリンク先に準ずる旨を明記します。(前提条件が多すぎる事自体も問題ですが)続○○や○○Part2のような連載記事である場合は、省略しても構わないかもしれませんが、その場合はPart1へのリンクを置いた方が親切でしょう。2.言葉を一義的に定義していない「SQL」という言葉は文脈によって、「ストアドプロシージャ」・「複雑なSQL」・「(Java等の)他の言語の中に書かれたSQL」等の異なるものを指しているようですが、同じ(一連の)記事の中で言葉の意味を変えては読者は混乱します。記事の始めに「この記事中のSQLとは~」ときちんと定義しておくべきです。生島さんは「理論値」という言葉を何度も使っていますが、一般的な意味とは明らかに異なる使い方をしています。本来「理論値」とは、「何らかの理論に基づいて算出された値」という意味であり、理論の無い(説明できない)「理論値」などありません。4.他の人が納得していない意見を公理として扱っている>SQLとオブジェクト指向言語を比べたら、数百~数千%の差が付く。(上に挙げた言葉の定義の問題もあり)そもそも比べる事自体がおかしいのですが、意図を汲んで考えても到底理解できない数字です。記事全般においてこれが間違いなく正しい前提(=公理)のように扱われ、根拠は書かれていません。確かに、この前提が正しいと仮定した世界においては生島さんの主張は正しいでしょう。その場合でもやはり記事の始めに「この記事では○○と仮定する」と明記しておくべきです。5.議論の参加者を汚い言葉で煽る活発な議論と炎上は違います。活発な議論を促すためには、議論と無関係な煽りを排除し、新しい(そして意義のある)話題へシフトしていくように一つ一つの議論を収束させていく必要があります。これを仕切るのはホストである生島さんの役目です。(もちろんコメント欄は議論をするためだけの場所ではないので、感想と議論は区別する必要があります。)生島さんはこれが出来ていないばかりか、自分から炎上を煽り、にもかかわらず炎上している状況や他の炎上させている人を嘆いています。これほど滑稽なことはありません。反論があっても議論をする状態にないと判断してコメントを放棄している人も相当数いるのではないかと思います。これらを改善し有益な情報交換の場となることを期待しています。02:54そもそもSQLとOO言語は適応分野が違うのだが、なんで単純に比べてSQLの方が効率や速度が上だという話をしているのかがさっぱり分からん。私の知ってる限り一般的なDBエンジンはC系の言語で書かれているんだが。07:04nanashiさん、みなさん、おはようございます。仕様書ではありません。前提は、業務系の仕事である。SQLと他の言語を比べているのは、SQLでできることをSQLに任せているかどうか。いうことを書いています。理論値について、理論値としてひっくり返らないと何度も書いています。C言語とアセンブラがどちらが効率的ですか?工数であるならば、C言語、パフォーマンスであるならば、アセンブラ。これは、人間がコンパイラより賢いとう前提がありますし、アセンブラはできるけれど、C言語はできない、または、その逆という人が入ってくると議論が成りたたないでしょう。(その前提をいちいち書かないと読めないですか?)しかし、例えばこんな人が大勢現れるのです。私は、過去にSQLが遅いのでSQLを崩して、C言語でJOINをやらせて高速化しました。正しく見えるでは?しかし、SQLでは理論値まで持って行けてないだけの話。個別の事情として、SQLのスキルが足りなかっただけです。これを正論とされては、議論は成りたたないのです。世の中のあらゆるものが理論通りには行かない例外が存在します。業務系の基幹システムで1~5%ぐらい、どうしてもSQLでは処理できない例外は存在しますが、いちいち、全部の例外を説明しては一般論はできませんし、システム全体を通せば誤差に落ち着きます。これぐらいのコーディングであれば30分ぐらいを目安にしています。http://www.g1sys.co.jp/seminar090515.html特殊な例題として取り上げているのではなく、SQLが苦手とする(SQLに向かない)題材を敢えて選んでいます。単純なプログラムでは、お互いに短いから差は小さいけれど、SQLに向く複雑なプログラムを題材に選べば、もっと極端な差になるので避けています。30分ぐらいでできれば、SQL文を書くのはかなり理論値に近い工数になっているはずです。Javaでコーディング量は5倍の400%ぐらいでした。(コーディングに要した時間は5倍以上でしたから、私はJavaに熟達しているとは言えないわけです)工数はスキル差という個別の事情が如実に出るので、理論値として比べられるのはコーディング量しかありません。双方の技術に熟達していた場合、工数はコーディング量との比例の関係に近づきます。コーディング量が増えれば、ドキュメントも、ドキュメント間の整合性を取ることも、テストも、同時に増加するので、工数はコーディング量増加率の、更にウン倍になります。そのウン倍もまた、個別の事情ではっきりとは言えないけれど、必ず1以上になります。OO言語で書いたコーディング量というのは、分割すればするほど、どうしても(SQLでやった場合に比べて)余分なマッピングが入るし、OO言語が発行するSQL文の要素は、効率的なSQL文で処理する場合の要素を最低限含み、それ以上になります。最低限、コーディング量はひっくり返らない。ドキュメント含めご自身で試してみてください。理論値を求めるならば、OO言語で書くアルゴリズムとSQL実行計画が一致する(までチューニングする)訳ですから、理論値として、SQLの方が工数・パフォーマンスともに効率的である。見てください)経験則ですが、上のサンプルが30分で「できない」という人は、1~5%ぐらいが、10~50%ぐらいに感じるのではないでしょうか。10~50%であるならば、確かにとても例外とは言い難いので、私も都度説明をします。その感覚で来られても困ると書いているわけで、だから理論値できてね。「だから理論できてね。「だから理論的にきてね。」では、普段、皆さんが「理論的でない」と言ってることになり、それは私の思いとかけ離れている。みなさんの議論の中に数字は基本的に入ってこないから、「理論値として」と表現しているに過ぎません。これがまずかったのは謝罪します。工数・パフォーマンスでトレードオフがないのに、違う方法を選ぶということは、トレードオフしているのは「できる人が少ない」という「技術者のスキル」に他なりません。それが許されるのは、余程、マイナーで世間的に知られてないものでない限り、あり得ないです。「RDBMSの普及率で考えればあってはならないこと」だと、当たり前のことしか書いてないのです。「SQLが遅いから他のプログラミング言語で書き直したら速くなった」という事になってしまうのでしょうか?たまにこういう意見出てくるようですね。相手に言いたいことを伝えるのって本当、難しいんだなー。08:18生島さん、おはようございます。コラムニストの申し込みを行いました。私は、過去にSQLが遅いのでSQLを崩して、C言語でJOINをやらせて高速化しました。ついて書きたいと思っています。いずれにしても白黒はっきりさせたいと思います。09:16宮崎牛さん、おはようございます。いう意見出てくるようですね。いう反論はやめてください。いう意味で、理論値まで突き詰めて考えて本当にそんなことが起きるのか?って書いているのですけどね。「理論値」でというのは「どちらもベストにして測れば」って意味ですよね。ぶっちゃけていえば、ひっくり返るのは単にスキル不足なのですけれど。「スキル不足」って滅多切りにしても不満が来るし、柔らかく「理論値」でひっくり返るのか?ってのも通じない。書けば分かるのか......。09:18大藤雄久さん、おはようございます。