現在、開発によく使われる言語としては、Javaや.Netが代表的なものとしてあります。
これらに特徴的なのは、オブジェクト指向ということです。
その昔、システム開発に使用されていた言語はCOBOLやCでした。Javaや.Netはこれにとってかわったわけですが、1つには、オブジェクト指向というものが、それまでのプロセス指向の開発言語よりも優れていると理由付けされることが多いです。
オブジェクト指向は、生産性やメンテナンス容易性の面で、それまでの言語よりも優れているそうです。
ところで、これは本当にそうなのでしょうか?開発言語がオブジェクト指向になることでどこまで開発生産性が向上しているのかなどのデータってどこかにあるのでしょうか?
実際この比較は難しいかもしれません。というのも、言語としてJavaを使用しているがとてもオブジェクト指向とは呼べないつくりのものもあれば、C言語でうまく設計され生産性や再利用性の高いプログラムもあるからです。
言うまでもないことですが、どんな言語を使うにしろ、生産性や再利用性を高めるためにはそれを意識した設計が重要です。
しかし、そういった大事なことが無視されてJavaや.Netなどの言語が使用されているのを見かけることがあるのは残念です。
オブジェクト指向の真価については、たとえば、小飼弾さんのブログに解説があります。
オブジェクトは難しくない。難しいのはクラス
Typeとは俺のことかとClass言い
自分なりに理解すると、、、
プロセス指向言語では"関数"を中心に設計された。言語と比較して言うならば、オブジェクトは名詞であり、関数は動詞である。日常使う言語では、名詞はものの数だけ存在するが、動詞はけっこう共通化して使っている。たとえば、犬も"走"れば人も"走"る。この2つは主語となっている名詞は明らかに違うものを指すし、現象を自然現象として見てもかなり違うにもかかわらず、人間の認識=言語化としては"走る"で共通である。
プログラム言語においても動詞(=関数)は共通化したい意識が働く。つまり、生産性を高めるために共通関数を作りたくなる。ところが、関数は引数にとるデータの型(や構造体)によって処理が異なるため違う名前の関数を作らざるをえない。違う名前の関数ということはすなわち異なる関数であり、共通化できていないことになる。データの型(や構造体)ごとに関数を作っていると生産性や再利用性は低下してしまう。
オブジェクト指向であれば、名詞の数だけオブジェクト(を抽象化したクラス)を作ることは人間の感覚として自然である。その上で動詞に当たるメソッドはポリモーフィズムで共通化できる。"走る"の例で言えば、"犬.走る"も"人.走る"も可能でありかつ処理内容は異なることが可能である。これがプロセス指向言語だと、犬というデータ型に対して"犬走る"、人というデータ型に対して"人走る"という関数を個別に作らないといけなかった。
データやデータの集合に対してその操作(動作)もセットに考えることは普通であり、オブジェクト指向ではそれが可能である。かつ、そのことよりも、うまくクラス、親クラスと抽象化(=汎化)することで、メソッド(=動詞)を共通化させ、長大な名前の関数が氾濫するような生産性の低い設計が抑えられることが重要である。
などなど。
もちろん、エントリの中でも指摘されているように、なにより便利で汎用的なクラス群がたくさん提供されていて、それをオブジェクトとして利用できることが最大のメリットではあります。
こうした便利なクラス群を積極的に活用することが重要ですし、汎化を使ったきちんとしたクラス設計ができていることがなにより重要です。
逆に言えば、そのような設計が活きないようなアプリケーション、たとえば共通の関数(=サブルーチン)をひたすら呼び出して処理するだけのようなアプリケーションでは、オブジェクト指向設計はあまり意味がないとも言えるかもしれません。
何度も言うようですが、生産性の高い設計が目指すべき目標であり、オブジェクト指向はそのための1つの手法でしかありません。ましてや、Javaや.Netは、さらにその手法を実現する1つの手法でしかありません。生産性を高めるために必要であればオブジェクト指向の考え方が取り込まれるべきで、すべてオブジェクト指向でいくべきかとか、Javaで開発するかどうかうんぬんということは二の次のはずです。
もちろん、プロジェクトとしてはスキル要員確保のために、どうしても言語は1種類で済ませたいという重要な要求はあるわけで、それには従うべきですが。
実際、日本に多いカスタムSIのアプリケーションがオブジェクト指向で開発されるとき、どこまでオブジェクト指向が意識されているでしょうか?単に関数呼び出しの感覚でクラスやメソッドを使用していないでしょうか。
Web2.0的世界に生きる優秀なプログラマーには意外かもしれませんが、大手SIerの優秀といわれるエンジニアが企業のアプリケーションを開発するとき、まったくオブジェクト指向の真価を無視した設計がなされていることがけっこうある気がします。もしそうなら残念なことですね。
ところで、オブジェクト指向で生産性を高めるためには、なにもJavaや.Netでなくても、RubyやPerl、PHP、JavaScript (ActionScript)のようなLightweightLangageでも可能です。これからはそういった選択肢も考える必要があるのではないでしょうか?
また、あきらかにオブジェクト指向が適さないアプリケーションも存在しうると思います。たとえば、何万件ものレコード同士をがちゃがちゃ組み合わせて処理をするようなアプリケーションなどでは、SQLでの処理が適していると思います。オブジェクトを何十万〜何百万個も作成して何十分〜何時間も処理を行うのは耐障害性の観点から言ってもあまりよい設計とは言えないでしょう(もっとも、最近はJavaでもJavaバッチという仕組みが考えられたりしているようですが)。
2006年11月29日水曜日
オブジェクト指向の真価とは
2006年11月28日火曜日
分散"と=and"集中
MicrosoftのCTOであり、Lotus Notesの開発者でもあるレイ・オジー氏のインタビューです。
「解雇された才能ある人たち」を救え!:ITPro
前半はLotus退社後自身が開発し、Microsoftに買収されたGrooveというコラボレーション・ソフトウェアの話です。
そして、後半に、コラボレーション技術についての重要な本質とも言えるべきことが語られています。
すなわち、中央集中化と分散化、統制と権限拡大です。
コラボレーションを実現する技術において重要なのは、中央集中化"か=or"分散化ではなく、両方だということです。そして、そのバランスは、ユーザの環境や業務内容によって異なります。
たとえばその企業のコアとなる業務のような部分は中央集中の方が効果が高くそれ以外の業務については分散の方が効果が高いなど、バランスのとり方こそが勘所となります。そして、そのバランスを取れるのは、その技術で何をすべきかがわかるビジネス・エキスパートだ、と指摘されています。
『「みんなの意見」は案外正しい』でも指摘されていることですが(参照エントリ)、分散だけではダメでそれを集約する機能が非常に重要となります。また、もちろん中央集中だけでもダメです。うまく分散させ、かつうまく集中するようなそういう仕組みを作ることが非常に重要となってくるということです。
閑話休題。
オジーさんは、ソフトウェア・アーキテクトとしてすごい人だと思います。Notesもいろいろ問題はありますが、やはりあの強固なレプリケーション機能や非定型文書の取り扱い方法、セキュリティなどについては、いまだWebアプリ系グループウェアの追随を許さない先見性があると思います。
そんなオジーさんを自身の後釜として据えたビル・ゲイツさんもいろいろ言われていますがやっぱりすごいと思います。かつてのライバルであり、GrooveはMicrosoftの現行製品でも競合しているにもかかわらず、おそらくレイ・オジーという人を買収したのでしょう。
2006年11月26日日曜日
広告モデルはパイの食い合いとなるのか
引き続きメディア・パブから。
最近のオンライン広告の好調さが伝えられています。
確実に広告費の何分の一かはインターネット・メディアに流れていっているようです。
メディア・パブ: TV広告費がオンライン広告へ,2010年までに約2割がオンラインビデオ広告に
メディア・パブ: 強気なネット広告予測,メディアのオンラインシフトに拍車
メディア・パブ: 米新聞社,こぞってYahooやGoogleと広告事業で提携へ
気になるのは、最近のWeb2.0的サービスの収入源として広告収入というのが定着してきつつあることです。
社会全体の広告費が増えていないのだとすると、けっきょく既存メディアとパイを食い合っているだけとなり、はたして社会的価値を増加させているのかという点です。
もちろん、Web2.0的サービスを消費者が無料で利用できることにより、他の消費が増える、もしくは給料が減る代わりに企業の広告費が増える、といったことになれば社会的価値の増加に貢献していることになるのかもしれませんが。(よいかどうかは別として)
メディア・パブ: 米新聞社の広告売上高,ネット広告を加えてもマイナス成長に
ということで、少なくともアメリカの新聞社の全体の広告費は増えていないようです。
2006年11月25日土曜日
集約機能の精度の問題
最近のメディア・パブから。
メディア・パブ: ソーシャルニュースが危険性を露呈,偽ニュースがdiggのトップページに
みんなの意見が案外正しくなるためには、「集約」という機能が重要ですが(以前のエントリ参照)、検索エンジンのランキングやFolksonomyといったようなWeb2.0的集約機能はもちろん完全なものではありません。
Folksonomyを活用したソーシャル・ニュース・サイトDiggで、虚偽情報が流されてしまいました。
他方で、編集者が人の手を介して集約機能を手がける韓国発の市民ニュースサイトOhMyNewsですが、こちらについても最近苦戦しているようです。
メディア・パブ: 韓国OhmyNews,今年は赤字転落か
情報の質にあわせてそれぞれの生きる道があるようには思うのですが、今後どうなっていくでしょうか。
また、おもしろい実験も掲載されていました。
メディア・パブ: 津波警報の緊急ニュース,気になるWebニュースの遅さ
先日の地震と津波速報で、Webニュースよりも圧倒的にTVの速報の方が早かったという事実です。
速報性はまだまだTVニュースに分がありそうです。
2006年11月24日金曜日
音楽税とDRM
ある音楽業界関係者が、音楽ファイルに対するDRMへの反発の立場から音楽税を提唱していることに対して、Techcrunchの記者が反対意見を書いています。
TechCrunch Japanese:DRMのかわりに音楽税とはあまりにバカげている
たしかに、音楽を創造することへの対価がすべて一律の税金で支払われることになると、音楽業界の創造性を阻害することにもなりかねません。業界内のパイの奪い合いだけとなり、新規開拓へのインセンティブが低くなるからです。
他方で、現在も、ドイツや日本では補償金制度によって、コピー媒体の価格に著作権料が一律上乗せされています。これは税金ではないですが、"音楽税"の発想と似ているものとなります。
違いは、補償金はコピー媒体となるメディアなどにだけかかるものなので、CDの売り上げなどは実際に売れた枚数に基づくことになり、Techcrunch の記者が批判する音楽業界の創造性はそこで担保されます。他方で、音楽税の場合、もし音楽業界の全ての売り上げを税に依存するとなると、記者の言うとおりの創造性の欠如が問題になるかもしれません。
が、音楽税が、音楽配信に対してのみのものだとすると、それ以外の売り上げ、たとえば、コンサートや関連グッズ販売、さらにはもしかすると細々と残っていることになるかもしれないCDやレコード販売の売り上げは、工夫次第で増やしていけるものとなり、音楽業界の創造性のインセンティブは失われない可能性もあります。
音楽配信はパイの奪い合いだけとなるので、おそらく音楽業界はそれ以外のところに活路を見出し、場合によってはイノベーションを起こしていくかもしれません。
それは、現在、フリーソフトやWebサービスを手がけている企業と同じ発想で音楽を取り扱うということにもなります。
話は少し変わって、他方で、こういう記事もありました。
メディア各社,違法コピー撲滅には法的手段より強固なDRM技術の開発を期待:ITpro
音楽会社も含めてメディア各社はDRM技術に期待しているようです。もちろん、このアンケートの選択肢には"音楽税"はなかったと思われるので、それについてどう考えているかはわかりませんが。
DRM技術は、いちいちネットワークにアクセスして認証を得なければいけなかったり、コピー回数や場所が限定されていたりするために、エンドユーザに不便をかけるものでもあります。
もともと著作権では"私的利用"によるコピーは認められています。
次の記事に、YouTubeでの話としてではありますが、今の日本でどの程度が"私的利用"の範囲になるかある弁護士さんの見解が述べられています。
YouTubeは“包丁”か“拳銃”か? 著作権法の専門弁護士に、YouTubeの合法性について聞く / デジタルARENA
この話に基づくのであれば、極端な話、10回未満のコピーは認められてもよいと思います。それもどんな媒体に対しても。
たとえ10回コピーできるとしても、後で自分で他の媒体にコピーすることを考えれば、10回分を使って10人にコピーするなんてことはなく、せいぜい5人くらいにコピーする程度ではないでしょうか?この程度は、現在の貸し借りの世界でもありえる数字です。
今のDRM技術による回数制限や媒体制限は少し厳しすぎる気がします。
また、配信料が十分安ければ、人は友達からもらってばっかりいることに引け目を感じたりするので、ほんとうに欲しいものは購入するとも思います。今のDVDソフトが低価格なためレンタルビデオ屋で借りずに買ってしまう人がかなりの数いるように。
著作物に対する経済的対価を得る方法については、コンテンツやメディアの違い、および配布規模の違いなどにより、さまざまな手法が模索されています。
1つ言えることは、著作物が広く広まることは、創作者にとっても消費者にとってもよいことだということです。ただし、その際に、創作の労力や価値に対して相応な経済的対価が支払われる仕組みをなんらかの形で構築する必要があるということです。そこの部分の社会的バランスの調整が今求められていることなのでしょう。
2006年11月23日木曜日
画面デザインにおける著作権と特許権
著作権と特許権に関する小ネタを。
画面デザインを著作権で保護するのか特許権で保護するのかということについて、過去の判例もひきつつ解説されている記事がありました。
画面デザインの保護(1)著作権だけで保護できる範囲は広くない:ITpro
画面デザインの保護(2)特許権は新規性・進歩性のあるアイデアを保護する:ITpro
画面デザインを、著作権を元に他に販売したり、特許権を元に他にライセンスするためには、かなりの独創性や新規性がないとなかなか難しそうですね。
一方、あきらかなデザインの不正コピーについては、著作権で保護しうるものと考えます。ちなみに、特許権で保護するためには出願が必要です。
2006年11月22日水曜日
知的財産権と独禁法
独占禁止法と著作権など知的財産権を守る法律との関係について、弁護士さんへのインタビューの形でまとめてあります。
知的財産権は、ときに独禁法に触れることがあります。健全な競争を害することがあるためです。
知財Awareness - アライアンス活動の拡大などで知的財産権をめぐる独占禁止法の問題が深刻化 − 弁護士 雨宮 慶氏インタビュー(上)
知財Awareness - 先進企業が知的財産経営で重視すべき「独占禁止法への対応」 − 弁護士 雨宮 慶氏インタビュー(下)
引用です。
近年の日本では企業が取り扱う事業の大規模化,複雑化,高度化,さらには効率化への要請などに基づいて,他社あるいは産学連携などを通じた「アライアンス活動」や協働が積極的に推進されており,こうした事業環境の変化に伴い,具体的には,(1)共同研究開発活動,(2)「標準規格」の設定とそれに伴うパテント・プールの形成,などが飛躍的に増えている。これらは,「ライセンサとライセンシ」という単純な図式だけでは捉えきれない複雑な事業活動であり,そのような局面に関する知的財産権の行使と独占禁止法の遵守について検討する必要性が非常に高まっている。
「健全な知的財産活動」と「独占禁止法に抵触する不公正な活動」の境界線を明確にする必要性がこれまで以上に増大している。
知的財産権については、次のような分かりやすくまとめてある記事を見つけました。
ITmedia エンタープライズ:これでわかる知的財産権の法律と規制
また、直接関係ないですが、最近の著作権および特許関連の動きとして、
著作権の保護期間にはなぜ制限があるのか:ITpro
「著作権保護期間の延長問題を考える国民会議」というものが設立されています。
日米欧の特許庁,共通様式の特許出願書類を導入へ - 産業動向オブザーバ - Tech-On!
「世界特許制度の第一歩」で書きましたが、現在日欧米を中心に特許制度の統一へ向けての動きが進んでいます。その具体的な方策が見えてきました。