ウィリアムのいたずらの開発日記

ウィリアムのいたずらが、コンピューター関係について、思ったことを好き勝手に書いているブログです。

ハッカーの人があなたたちに望んでいるのは、ずっと愚かでいてくれること

2005-09-24 18:11:21 | 開発ネタ

 アークランプさんのブログオープンであれば技術力は(そんなに)いらないをみていて、表題のように思いました。ちなみに、表題の言葉は、女王の教室の真矢先生の言葉「特権階級の人があなたたちに望んでいるのは、ずっと愚かでいてくれること」から、インスパイアされて、思いました。

 今日は、そんなわけで、オープンソフトを使わない理由を、アーキ(方式部隊)と、共通部隊の立場から。。。

 なお、はじめにお断りしておきます。この内容は、アークランプさんの意見、主張とは関係ありません。そのブログに対して反論しているものではありません。ただ、インスパイアされて思いついたというだけの話です(そのため、トラックバックなどもしてないです)。たんに、話のはじまりだけがその話を受けているという世間話なのです。





 まあ、プロジェクトのフレームワークは、方式がきめ、一部のプロジェクトでは、共通も参加するってな感じになるんじゃないかと思います。で、そこで問題なんですけど、

 アークランプさんの上記のブログでは、どーも話の流れが、

・オープンソースを使うか
・商用製品を使うか

 の2つに1つのような印象を受けます。でも、ある程度の開発規模のものになると、もうひとつ、「自分でつくっちゃえば!!」という話がでてきて、そこに落ち着くケースも多い気がします(ウィリアムのいたずらの経験だけなので、ほかのプロジェクトでもそうというわけではないけど)。




 さあ、みなさん、冷静になって考えてくださいね!

 Javaをはじめたとします。どこのサイトみますか?

 たぶん、JavaでHello Worldのサイトですよね。

 つーことは、そんなに上級者ではないひと、ちょっとアークランプさんのプログラマレベルは、perlくわしくないんで、理解できないんだけど、たぶんレベル4くらいの人がみるサイトですよね。じゃあ、このサイトの知識しかなかったとしましょう。そこで、

 クライアントサーバーを実現したいので、クライアントとサーバーでつうしんできるようにしてくれ。ただし、オープンソフトをつかってはいかん!

 といわれたらどうしますか?
 たぶん、全部読むと、Socketが使えそう!ということで、Socketのところを参考にやりますよね。で、あとはHTTPプロトコルがわかれば、Webサーバーの動きをするものはできますよね。
 そして、その受け取ったデータをもとに、プログラムを動かすところは、リフレクション編をみればやりかたはわかる。つーことで、Tomcatもどきまで、つくれたりします。
 (あ、あと、クライアントサーバー間のデータ受け渡しには、シリアライズの知識も要るけど)




 つまりですねえ、オープンソフトを使わない気になれば、Javaの上記のような基本的な知識で、考えれば、できちゃうんですよ。ところが、オープンソースになると、いろーんな知識が必要になってくるわけです。

 で、そこで、ワーカーさんに流す場合、全員が、そのオープンソースの知識を身につけてもらって、さらに、場合によっては、自分たちで解析し、そのうえ、さらに、最悪の場合は、できないかもしれない。。。その状態を選んでまで、オープンソースを使うか、それとも、自分たちで1からつくるか?というとねえ。。。

 つくりましょっか(^^)vって話で、落ち着いちゃったりする。




 そうすると、オープンソースは、みんながテストしているので、品質が安定し。。。とか言う話を言う若手がいるけど、これは、いわないほうがいい。

 品質が安定しって、言い切れるのか?証明してみろって言われたら、どうします。。。

 実は、オープンシステムは、ここが問題で、まんべんなくテストしたことを保障してるわけではないのよ。つまり、自分たちの使うところはみんなチェックしてるだろうけど、使わないところまでチェックしてるかどうかわからないのよ。

 パッケージソフト会社に勤めていて、ベータでお客さんに流している人なんか、わかってくれると思うけど、客から上がってくる報告は、自分の使うところかつ、使えるところだけなのよ。
 バグがあると、客は使わない。で、それは、報告しないわけ(そんな報告してる暇はない)
 てなことで、オープンソースも、特定の箇所にバグが偏在し、今回、そのプログラムを使ってしまう危険性がある。これが、せめられる1点。

 でも、こんなことは、ちいさなことなのよ。

 いまの、オープンソースには、致命的な欠点があるのよ。




 余計な機能がありすぎる。。。

 オープンソースも、バージョンアップを重ね、広い人たちに使ってもらうようになった。それにつれて、機能があがった。しかし、それにつれて、ソースも大きくなっていくのが普通。
 でも、自分のプロジェクトで全機能をつかうのは、まれ。普通、一部しか使わない。

 つーことはだよ。。。。たとえば、自分たちの機能を実現するのに1000ステップで十分だったとする。でも、オープンなソフトを使うと、そのソフトは、何十万ステップもあるとしたら。。。どっちのほうが、バグが多い??
 一概には言えないのよ。。。1000ステップのほうが、たいていは、少ないけどね。

 さらに、解析するにも、どっから手をつけていいかわかんない。。。。
 解析するより、1から作ったほうが、普通、早いし、
 解析して手をいれるより1から作ったほうが、品質も、安定したりする。。




 つまり、オープンソースは、みんなに使ってもらおうとすると、巨大化し、理論も複雑になる。その複雑な理論で遊ぶのが楽しい人たちは、それはそれでいいんだけど、こと、大きな開発になると、うーん、その複雑なもの、お守りするくらいなら、いっそのこと、つくっちゃえば!っていうことになる。

 で、実際、作るとなった場合、これは、発想力の問題(apacheをみて、あ、ソケット通信をHTTPプロトコルでやってる、っていうことは、ソケット通信部分をJavaでくめばいいだけね!と発想できるか)であって、技術的には、レベルは、さほどたかくなくていいのよ。
(JavaでHello Worldを読んで理解できるレベル)。




 でも、なんーか、いまの世の中をみると、ウィリアムのいたずらたちが、まるでばかで、オープンソフトなんか、まったく作れるレベルにない!ということを、ハッカーさんたちがきめつけて、それに周りの付き人たちが、難しい言葉を並べて、神学論争してるように見えるのよねー

 え、オブジェクト指向の資格の合格証書が免罪符に見えてきたって(^^)

 やっぱ、ハッカーさんたちや研究者、本を書く人たちから見ると、自分たちは天才で、 
「ハッカーの人があなたたちに望んでいるのは、ずっと愚かでいてくれること」、
 オープンソースのプログラムなんて、絶対作れないし、作っても、非効率的だと思ってくれること。。。

 のようにみえちゃうんだけどなあ。。。

 でもさあ、大きなプロジェクトのアーキも、共通も、そこまでおばかじゃないから、「自分たちのプロジェクトに必要なものに限定すれば」その程度のものは、作れることは、ぐるっとおみとおし!だよ(^^)v

この記事についてブログを書く
« 要求仕様書に書く項目と、情... | トップ | 中小企業診断士試験の改正内... »
最近の画像もっと見る

開発ネタ」カテゴリの最新記事

関連するみんなの記事