2007年5月27日日曜日

DIコンテナは最先端の技術なのか?

もはや、DIコンテナは最先端の技術ではないと思う。

個人的にはDIコンテナという範疇の中での瑣末な違いに作者以外が
拘ることが何の得になるのか、さっぱりわからない。

今後10年生き残る技術かと問われれば、10年生き残るかは不明と
答えるし、10年近く生き残る事が決まっているかのごとく書かれた
文章を読めば、疑問符が10個以上、頭の中を飛び回る。

DIコンテナの登場による祭りは世界では過去の出来事にも関わらず、
日本の技術者の一部では未だにお祭り騒ぎが続いているようにみえる。

DI(IoC)という概念自体はDIコンテナが登場する以前から存在し、別段
最新の概念ではない。DIコンテナの登場により脚光を浴びるように
なっただけであり、DIコンテナと共に登場したわけではない。
そのことは1997年刊行1998年改訂のJavaプログラムデザインの中で
既に紹介されていることからも伺える。

ソフトウェア工学の分野では既に存在した概念が数年遅れで世間で
流行し、最新の技術のようにもてはやされるのはありがちなことだとは
思うが、言語仕様の概念でもない精々ミドルウェアの実装概念の一つ
に過ぎない技術の流行が今後何年も続いていくものであるかのように
錯覚しているとすれば、ある種、滑稽ですらある。

DIコンテナはゴールデン・ハンマーでも万能ナイフでもない。

推敲中...つづく?

WEBアプリのUIコンポーネントの潮流

http://d.hatena.ne.jp/asip/20070527#1270773768

2007年5月26日土曜日

GPLでライセンスされたライブラリは商用利用できるのか?

Linuxは何故GPLでありながら商用利用されるのか?は間違いだらけでしたが
書きたかったことはLinuxについてのことではなく、GPLと商用ソフトウェア
の関係についてです。

Linuxはそのライセンスに記述されている例外条項によりその上で動く商用
アプリの開発を可能にしています。
KDE3に関してはQtベースの機能を利用したソフトウェアを開発する場合、例外
条項が存在せず、素のGPLであるため、商用ソフトウェアの開発はまずありえません。

つまり言いたかったことはこうです。
例外条項を設けられていない素のGPLで公開されたライブラリを利用する全て
のソフトウェア(ライブラリを含む)は、GPLで公開される義務があり、例外は
認められないということです。無論、素のGPLで公開されたライブラリを利用する
ソフトウェアがそのソフトウェア独自の例外条項をライセンスに追加することは許可
されていません。

素のGPLでライブラリを公開すれば、ほぼ例外なく商用利用されることを回避
できます。

蛇足となりますが、GlassFishやOpenJDK等Sunの公開するOSSプロダクトでは
ライセンスをGPL+ classpath exception等の例外条項として、それらのライブラリ
を利用するソフトウェアの商用利用を可能にしています。

但し、標準化団体で標準化されたインターフェイスを実装したGPLで公開された
ライブラリを作成したソフトウェア(標準化されたインターフェイスのみを利用)に
同梱した場合、作成したソフトをGPLで公開する必要があるかは議論の余地が
あると思います。

[omake]
KDE4ではFreeDesktop.orgでホストされているD-Bus(on off)という
メッセージバスシステムを用いることでKDEのライブラリ外からのKDEのコア機能
の利用を可能にしています。

[2007/5/27追記]
KDE3に関してはライセンスの見直しが行われ、kdelibs、kdecoreの
一部等Qtが利用されていないソースに関してはGPLを適用しない
方向に進んでいた...いつの間にか。
KDE4は追っていなかったのでわかっていませんでしたが
KDE4において現状におけるKDEのコア機能を利用するGPL
以外のライセンスのアプリが開発しづらい問題等を解決する取り組み
の一環としてkdelibs全体からQtに依存するコードを取り除く方向
に進み、kdelibsにGPLは適用されていないようです。
KDE のコピーライトおよびライセンス問題に関するDebian のスタンス
に書かれている問題全ての解決方法にはならない気がします。

#重箱の隅をつついて喜ぶ人がいるようなので色々と追記・修正。
#商用利用は「プロプライエタリなソフトでの商売」という意味です、
#文脈を辿ればわかることです。1から10まで説明する義務は
#ありません。

#GPLなライブラリを利用したソフトはソースの公開が必須、
#プログラムを書いてそのコードへの対価を得て商売している
#場合にGPLでソースを公開する選択肢はほぼありえないw。
#コードではなくサービスで十分な対価を得られるのは、ほん
#の一握り。コードを公開してサービスで対価を得られるのは
#更にその一握り。業務用システムに限定すれば、ソース公開は
#100%ありえないw。
#サービスで十分な対価を得られる人間は、ミドルウェア・サポート
#等一部のケースを除いて、コード作成時に利用するライブラリに
#関して大騒ぎしないし、拘らない。より便利なモノがないか
#リサーチを欠かさず、スイッチしていく...99%。
#何故なら、コードを書くのが目的ではなく、サービスを作るのが目的
#だから。短期間でサービスを立ち上げられる手段を模索こそすれ、
#コード内で利用する何かに異常に拘ることはない、自分がその作者
#である場合を除いて。
#コード内で利用する何かに異常に拘るグループはサービスを提供
#することで十分な対価を得られる人間からすれば、負け組以外の
#何者でもないだろうと思う。

#重箱の隅をつついて喜んでいる人に一言。
#ここは個人のブログ、思い込みや間違いがあっても別に問題は
#ありませんが何か?思い込みや間違いが気になるなら、
#読まなければいいだけ。読む側が思い込みや間違いを
#チェックするのがWEBでは常識。
#一つの記事を読んで鵜呑みにするのではなく、関連する記事も
#読んで判断すればいいだけ。間違いや思い込みで書かれた文章を
#鵜呑みにするのは読む側の問題。
#指摘されたら(狛犬もどき関連を除いて)修正はしますよ。
#自分が気に入らないからといって、個人のブログの重箱の隅つつき
#を熱心にやって、こちらの評価も下がるかもしれんが、そちらの
#第3者からの評価も下がっていくとは思わんのかいな。
#WEBのブログで一々、一から十まで調査して書くことを他人に強要する
#のはどうかと思うよ、気楽に書いてるブログに何で事前に調査して
#書くなんて面倒臭い手順を加えなくてはならないのか、よくわからん。
#そちらが事前調査を念入りにして書くのはそちらの勝手。
#自分の考えを相手に押し付けようとするところがアレだな。

2007年5月12日土曜日

Linuxは何故GPLでありながら商用利用されるのか?(当たり前のこと)

>勘違い開始---->>
>Linux自体はPOSIX準拠で、Linuxでも利用されているGLIBCはISOやANSIで
>標準化されているCの標準ライブラリを実装しています。
>Linux自体はGPLですが、POSIXやISO Cで標準化されている
>インターフェイスでアプリを記述する限り、そのアプリをGPLで公開する
>必要がないのです。だから、Linuxは広く商用利用されるようになりました。
>もし、Linuxが標準化されていない独自のインターフェイスのみで実装されて
>いたならこんなに広く商用利用されることはなかったでしょう。
>POSIX準拠(UNIXほぼ準拠)であるため、UNIX用に書かれたソフトの大半が
>ほぼそのままLinux上で利用できたこともLinuxの商用利用の拡大に繋がり
>ました。
>>--勘違い終了

間違い①
GLIBCはLGPL。GPLだとばかり思い込んでました。
GPLの場合には、ダイナミックリンクする場合もGPLに従う必要があります。
間違い②
Linuxの場合、基本的にはGPLですが、例外条項が存在し、 通常のシステム
コールを利用するユーザプログラムについてはソースをGPLで開示する必要
はない。デバイスドライバは別。

詳しくはこちら

LinuxやGlibcに関する上記の記述は以上の勘違いから上の文書は全くの
間違いです。POSIXやISO Cで標準化されているインターフェイスでソフト
を記述する限り、そのソフトをGPLで公開する必要がないという一文について
は間違いではないと思います。GPLのライセンス上はライセンス違反だったと
しても。

正しくはLinuxは基本的にはGPLだが、例外条項により、通常のシステム
コールを利用するユーザプログラムについてはソースをGPLで開示する必要
がないことがLinuxが広く商用利用される要因の一つであるとなります。

KDE3のGUIライブラリを利用した商用ソフトが存在しません。KDE3の基盤で
あるQtはGPLと商用ライセンスの2重ライセンスです。Qtの開発元である
Trolltechはソース公開必須のGPLでQtを公開しつつ、商用ライセンスで
収益を上げています。
蛇足になりますが、Qtは独自インターフェイスです。
大手LinuxベンダがGnomeを採用する傾向にあるのは
KDE3のGUIライブラリでGUIベースのソフトを開発する場合、必然的に
QtベースとなりGPL適用の義務が発生するため、KDE3のGUIライブラリ
を利用した商用GUIソフトをユーザが開発することがほぼ不可能だからです。

#ここに書いてあることはLinuxがGPLでありながら商用利用される理由の一つで
#あり、全てではありません。

#狛犬もどき厨向けに書いてみた。
#2007/5/26追記
#まぁ、個人的には思い込みを修正できたので「odz氏、ありがとう」な心境。
#http://d.hatena.ne.jp/odz/20070512/1178994457

#もともと「GPLであるLinuxが商用利用できるから、GPLも商用利用できる」
#みたいに思っている狛犬もどき厨がいるようなので書いてみたネタ。

#「LinuxはGPLだが、標準化されたインターフェイスを実装しているので
#商用利用できる」が本当は「Linuxは基本的にはGPLだが、例外条項を
#設けているので商用利用できる」だったのは本来(裏)の主旨からすれば
#枝葉末節の間違い。
#枝葉末節に間違いはあったものの、この文章を書いた本来の目的は
#果たしているので問題なし。

#「素のGPLでライセンスされたライブラリを利用するプログラムはGPLで
#配布する必要がある義務を免れないので、そのライブラリの商用利用は
#まずありえない」というこの文章の本来(裏)の趣旨は損なっていない。

#(狛犬もどき関連を除いては)思い込みを交えて文章を書かないように気を
#つけます。

#2007/5/27追記
#一部の文章を削除。