«前の日記(2005-04-05) 最新 次の日記(2005-04-07)» 編集

Matzにっき


2005-04-06 [長年日記]

_ [OSS] サンのJ・シュワルツ、オープンソースライセンスのGPLを批判

これで「オープンソースの守護者を自任自認する」んだからねえ。

GPLソフトウェアのソースコードを非GPLソフトウェアに流用したいという要求は分からないでもない。 が、作者がしてほしくないと思って禁止していることは、そもそもできないわけで、 「だからGPLは」というのはそもそも間違っている。

また、GPLの「どちらかというと略奪的な義務」がなければ、 フリーソフトウェア開発者が 「生み出した知的財産をすべてはき出して、世界で最も豊かな国、 つまり」世界最大のソフトウェア産業を抱える地である「米国に戻さなくてはならない」ということになることに気付いてないとは思えない。

なんで、そんなにGPLを目の敵にするのか。 それには「フリーソフトウェアの成果を自分のプロプライエタリソフトウェアに組み込みたいから」 という欲望や「フリー(無料)なんだからいいじゃん」とかいう態度が透けてみえるような気がする。

_ [Ruby] Objectクラスの上

RubyのObjectクラスはかなりリッチなクラスだ。たくさんのメソッドを提供している。 実際にはすべてのクラスに共通するメソッドはKernelモジュールで定義されていて、 Objectクラスがそれをインクルードしている。

普段はありがたいが、 method_missingを活用するプログラミングでは(定義されているメソッドに対してはmethod_missingが呼ばれないため)嬉しくないこともある。

そこで、Objectの上にKernelをインクルードしない「なにか」を用意しようと思うのだが、 問題は名前だ。

  • Nucleus − 「核」。でもKernelも核だな
  • CoreObject − 長い方が名称衝突の危険が少ない。でもイマイチ。
  • BlankObject − 同上。

良い名前が思いついた人は、気軽にツッコンでほしい。

本日のツッコミ(全102件) [ツッコミを入れる]
_ moritaka (2005-04-06 17:41)

SparklingWhiteObject

_ koyhoge (2005-04-06 17:57)

Voidってのはどすか?

_ the 4 a.m. (2005-04-06 18:14)

Savior<br>文字数はObjectと同じ。<br>でも単語の意味が濃すぎる。

_ nahi (2005-04-06 18:25)

Unknown

_ znz (2005-04-06 18:29)

BasicObject<br>Socket < BasicSocketがあるので。

_ s.sawada (2005-04-06 18:32)

Foundation

_ emeitch (2005-04-06 18:38)

細胞になぞらえると、Nucleus(核)が無いので、Membrane(膜)なんぞどうでしょう?

_ takos (2005-04-06 18:44)

Skeleton か SkeletonObject

_ the 4 a.m. (2005-04-06 18:51)

Plain

_ t (2005-04-06 19:01)

Atom

_ jbk (2005-04-06 19:03)

Air<br>そこにあるが無いもの

_ zzz (2005-04-06 19:19)

QuarkObject

_ yoosaki (2005-04-06 19:22)

Kernelがないのだから、殻だけのオブジェクトということで、<br>ShellObject

_ arayotto (2005-04-06 19:25)

heart

_ r (2005-04-06 19:47)

Atomに一票

_ @@@@ (2005-04-06 19:54)

OverObjectってのを思いつきましたがあんまりにもアレなのでSparseObjectとかHollowObjectってのはどうでしょう

_ Jaru (2005-04-06 20:08)

Frame がいいよ。

_ mash (2005-04-06 20:14)

RootObject<br>BaseObject

_ ashiya (2005-04-06 20:23)

物が消えても魂が残る、ということでSpiritはどうでしょう。

_ Psychs (2005-04-06 20:25)

Element ... ユークリッドにちなんで。かぶりやすいかも。<br>Modado ... ライプニッツにちなんで。Haskellと紛らわしいかも。<br>Principal ... 俗世的な意味合いが強すぎるかも。

_ q (2005-04-06 20:27)

Tao

_ tk (2005-04-06 20:32)

SqueakではObjectのスーパークラスはProtoObjectですね。

_ maeda (2005-04-06 20:33)

Bottom<br>Top<br>Root<br>Vanilla<br>ProtoObject

_ でんすけ (2005-04-06 21:15)

Rootかなぁ...<br><br>UNIXに毒されてるといわれればそれまででしょうけど。

_ sheepman (2005-04-06 21:57)

Seed<br>Hub<br>Axiom

_ takano32 (2005-04-06 22:02)

PlainObject

_ 一見さん (2005-04-06 22:21)

Ghostとかはどうでしょう。マンガの見過ぎかな。

_ Cello (2005-04-06 22:44)

Idea(イデア)なんかだと意味的に合うような気がします.

_ _|_| (2005-04-06 22:49)

Scream

_ AC (2005-04-06 22:58)

Ruby

_ sshi (2005-04-06 23:04)

Atomにもう一票

_ AC2 (2005-04-06 23:07)

意味的には、Ideaなんかがぴったりかも。<br>親クラスって、そのクラスの構成要素というより、そのクラスをさらに一般化したものですからねぇ。<br><br>でも、あまり癖のある名前より、<br>Squeakにあるという、ProtoObjectに一票。

_ 岩月 (2005-04-06 23:13)

NakedObject、BareObject。

_ xana (2005-04-06 23:56)

Genesis

_ i (2005-04-06 23:58)

Zen

_ 野分 (2005-04-07 00:21)

Base (BaseObject)

_ k3c (2005-04-07 01:27)

Empty とか

_ AC (2005-04-07 01:31)

大元という意味で、MatzObject

_ ym (2005-04-07 02:34)

material<br>bone

_ leque (2005-04-07 02:40)

Soft Objects ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-1014.pdf から、UrObject とか

_ ben (2005-04-07 02:55)

ぶつかるかもしれませんが、シンプルイズベストで「Core」。

_ Jim Weirich (2005-04-07 03:50)

BlankSlate

_ AC3 (2005-04-07 04:05)

ObjectTemplate, StubObject, Stub

_ AC (2005-04-07 04:09)

核を持たずに真ん中にあるものだから"Plateaux"

_ Michel (2005-04-07 05:42)

Archetype

_ Michel (2005-04-07 05:52)

Abstract

_ Jared Nuzzolillo (2005-04-07 06:40)

AlQaeda

_ N225 (2005-04-07 08:36)

Matz<br>Ruby

_ kominami (2005-04-07 08:37)

Vacuum--真空は何もないように見えて、本当は全てのものの源だそうです

_ habe (2005-04-07 08:44)

Object.super: Smalltalkのメタクラスみたいですが

_ 通りすがり (2005-04-07 11:45)

Atomだけは絶対反対。いろんなところで名前がぶつかります。

_ AC (2005-04-07 12:29)

言語Rubyのオブジェクトの天辺がRubyだとメタSFっぽくて萌える。<br>もしくはRubyChan:)

_ おくじ (2005-04-07 12:57)

Bare

_ AC (2005-04-07 12:58)

種が抜けた殻でhuskとか

_ shugo (2005-04-07 13:01)

mixinとの相性がよさそうということで、Vanillaにもう一票。<br>Flavors由来?

_ masakatz (2005-04-07 13:14)

PlainObject

_ mn_do2ob_nm (2005-04-07 13:25)

思いつくのは、<br>* Root<br>* Seed<br>* Base<br>ぐらいでしょうか。

_ (う) (2005-04-07 13:43)

紛らわしい気もするけど NullObject

_ shugo (2005-04-07 13:59)

NullObjectは何にでもrespondしてくれそうな気が

_ (う) (2005-04-07 15:31)

なるほど。んじゃ、Mockup(Object)とか、DummyObjectとか。

_ arton (2005-04-07 15:43)

KongTongとかどうかなぁ。混沌ってのは原初を意味するし。

_ takatoh (2005-04-07 15:54)

Primitive

_ AC (2005-04-07 16:51)

Perl

_ nin (2005-04-07 17:51)

ProtoObject

_ gom (2005-04-07 18:58)

ObjectBase<br>ObjectSeed

_ mash (2005-04-07 19:27)

Chassis

_ nanasi (2005-04-07 19:58)

Tsurupeta

_ 千代郎 (2005-04-07 20:58)

Mother<br>母なる自然という言葉もあります。

_ nisi (2005-04-07 20:58)

RawOre (of Ruby)

_ ぺお (2005-04-07 21:06)

LenreK<br><br>Kernelの綴りを逆さにした.

_ さかい (2005-04-07 21:35)

PreObject なんてどうでしょう。<br>数学では制約を弱めたものを pre〜 と呼ぶことがあるので。<br>e.g. monoid->premonoid, order->preorder, sheaf->presheaf, etc...

_ AC (2005-04-07 21:41)

SonShi

_ AC (2005-04-07 22:16)

BEER

_ jk (2005-04-07 22:51)

SuperObject

_ AC (2005-04-07 23:12)

ObjectWithoutKernel

_ AC (2005-04-07 23:18)

>Kernelをインクルードしない「なにか」<br>Nanika

_ MMX (2005-04-07 23:58)

リッチの反対語をひろって<br>thinObject<br>leanObject<br>minimalObject

_ nemo (2005-04-08 01:14)

Rupa<br>(Skt.)外見、形

_ nil (2005-04-08 01:36)

Virgin, VirginObject

_ AC (2005-04-08 02:17)

GeneticObject<br>起源という意味と、遺伝子(仕様)だけ持っているという意味

_ void (2005-04-08 09:30)

Offshect<br> オブジェクトからテンテンをとってみた

_ AC (2005-04-08 09:58)

万物(all object)を作り給うのはGod

_ AC (2005-04-08 09:59)

いっそ「_」(アンダーバー)とかどうですか

_ tkmr (2005-04-08 10:54)

Corundum (鋼玉:酸化アルミの結晶) はどうでしょう。<br>適量の添加物(クロム)が含まれるとRubyになりますし、<br>添加物の量が多すぎても、少なすぎてもRubyでは無くなる性質が<br>言語と機能の関係に似ているように思います。

_ k3m (2005-04-08 11:35)

> サンのJ・シュワルツ、オープンソースライセンスのGPLを批判<br><br>「自任」→「自認」は書き間違いだと思いますが、「また、GPLの〜」の段落はmatzさんはどういう意図で書いたんでしょう。原文は「GPLに略奪的な義務があるから、世界の知的財産が(産み出した本人の利益にならずに)米国を始めとする世界中に取られる。GPLソフトウエアを最も産み出しているのは米国だから、取られる知的財産の量も大きい」という主張だと私は理解します。<br>matzさんはその逆も成り立つと主張しているのですか?<br>「GPLの略奪的な義務が無ければ、フリーソフトウエア作者の知的財産は、米国に戻さなくてはならないことになる。」と。そうだとすると、その理由は何故ですか?

_ まつもと (2005-04-08 12:15)

あ、間違えた > 自任<br><br>> 「また、GPLの〜」の段落はmatzさんはどういう意図で書いたんでしょう。<br><br>問題の段落はこんなのです<br><br> GPLの「どちらかというと略奪的な義務」がなければ、フリーソ<br> フトウェア開発者が「生み出した知的財産をすべてはき出して、<br> 世界で最も豊かな国、つまり」世界最大のソフトウェア産業を抱<br> える地である「米国に戻さなくてはならない」<br><br>これを言い換えると<br><br> * GPLには(Schwartzの言うところの)「略奪的な義務」がある。<br><br> * それがあるのでGPLソフトウェアを組み込んだソフトウェアは、<br> やはりGPLを適用する必要があり、知的財産を自分だけのもの<br> にできない(正確には「(自発的に)しない」んだが、自分でGPL<br> ソフトウェアを組み込んでるんだから)<br><br> * あるオープンソースソフトウェアのライセンスが仮にGPLでな<br> く、たとえばBSDライセンスであれば、商用ソフトウェアに自<br> 由に組み込むことができる。<br><br> * つまり、「略奪的な義務」のないライセンスでソフトウェアを<br> 開発することは、その開発者が苦労して開発したコードを米国<br> (を始めとする主に先進国)の商用ソフトウェア開発者に無料で<br> 利用を許すということにほかならない。<br><br> * 非GPLオープンソースを利用して商用ソフトウェアを開発でき<br> ることから大きな利益を得るのは「発展途上国の人々や学界関<br> 係者」よりもむしろ「GPLソフトウェアを自社製品に採り入れ<br> 始めた製造業各社の人間」や商用ソフトウェア開発者であり、<br> 主に先進国の連中である。<br><br>Schwartzが米国の商用ソフトウェア開発企業のCEOであることを考<br>えると、「発展途上国の人々や学会関係者」のような人の利益にな<br>ると美しい話を匂わせつつ、実際には一番利益を得るのは自分たち<br>であるという美しくない話になります。

_ よし (2005-04-08 12:20)

Rubyから一字とってRとか

_ jzkey (2005-04-08 18:31)

class MicroObject < MicroKernel

_ naruse (2005-04-08 20:31)

ObjectからKernelをとったら、残るのはエーテル(Ether)かなぁ・・・。<br>あとは実物としてのObjectに対して、抽象的なMatterとか。<br>MatterはMatzをかけています(嘘

_ tito (2005-04-08 21:31)

実の無い→しいな→empty っていいと思ったんですけどね。

_ tet (2005-04-08 22:27)

RubyのスーパークラスであればStoneというのは冗談です。

_ tet (2005-04-08 23:03)

Pure とか PureObject もありきたりでしょうか。

_ えぐち (2005-04-08 23:26)

私も Pure または PureObject が良いと思います。<br>[ruby-dev:5340] でも PureObject が提案されていますね。

_ babie (2005-04-09 00:00)

Seedに+1票。Common は かち合いそうだなー。

_ 本質 (2005-04-09 00:43)

- Substance<br>- Nature

_ avdi (2005-04-09 01:21)

Someone (I can't remember who) created a BlankSlate object which serves this purpose.<br>Other ideas:<br>- Blank[Object]<br>- Empty[Object]

_ e (2005-04-10 12:20)

MU

_ taimamiso (2005-04-10 16:45)

Instance

_ 通りすがり (2005-04-10 18:13)

Objectのsuperclassを作るよりも、継承する際にsuperclassのメソッドをexcludeできる仕組みを作るというのはどうでしょうか。<br><br>class MyClass < Object<br> exclude_symbols :foo, :bar<br>end<br><br>とか<br><br>class MyObject < Object<br> exclude Kernel<br>end<br><br>とか。

_ まつもと (2005-04-10 19:47)

通りすがりさんへ、それは今でも undef でできます(メソッド単位なら)。<br>だけど、それをいちいちやるのが面倒なので今回の案に至ったわけです。<br>またクラス/モジュール単位でexcludeするのは手間がかかる割に応用範囲が狭いのであまり採用したくありません。

_ Chris (2005-04-12 12:08)

Ah, the exclude idea is a good one. It's open to abuse, of course, but so is "include." But is it too kludgey?

_ ゴン太 (2005-04-12 14:50)

ToBe とか Aru とか

お名前:
E-mail:
コメント:
[]

«前の日記(2005-04-05) 最新 次の日記(2005-04-07)» 編集

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.