これで「オープンソースの守護者を自任自認する」んだからねえ。
GPLソフトウェアのソースコードを非GPLソフトウェアに流用したいという要求は分からないでもない。 が、作者がしてほしくないと思って禁止していることは、そもそもできないわけで、 「だからGPLは」というのはそもそも間違っている。
また、GPLの「どちらかというと略奪的な義務」がなければ、 フリーソフトウェア開発者が 「生み出した知的財産をすべてはき出して、世界で最も豊かな国、 つまり」世界最大のソフトウェア産業を抱える地である「米国に戻さなくてはならない」ということになることに気付いてないとは思えない。
なんで、そんなにGPLを目の敵にするのか。 それには「フリーソフトウェアの成果を自分のプロプライエタリソフトウェアに組み込みたいから」 という欲望や「フリー(無料)なんだからいいじゃん」とかいう態度が透けてみえるような気がする。
RubyのObjectクラスはかなりリッチなクラスだ。たくさんのメソッドを提供している。 実際にはすべてのクラスに共通するメソッドはKernelモジュールで定義されていて、 Objectクラスがそれをインクルードしている。
普段はありがたいが、 method_missingを活用するプログラミングでは(定義されているメソッドに対してはmethod_missingが呼ばれないため)嬉しくないこともある。
そこで、Objectの上にKernelをインクルードしない「なにか」を用意しようと思うのだが、 問題は名前だ。
良い名前が思いついた人は、気軽にツッコンでほしい。
This work is licensed under a Creative Commons License.
SparklingWhiteObject
Voidってのはどすか?
Savior<br>文字数はObjectと同じ。<br>でも単語の意味が濃すぎる。
Unknown
BasicObject<br>Socket < BasicSocketがあるので。
Foundation
細胞になぞらえると、Nucleus(核)が無いので、Membrane(膜)なんぞどうでしょう?
Skeleton か SkeletonObject
Plain
Atom
Air<br>そこにあるが無いもの
QuarkObject
Kernelがないのだから、殻だけのオブジェクトということで、<br>ShellObject
heart
Atomに一票
OverObjectってのを思いつきましたがあんまりにもアレなのでSparseObjectとかHollowObjectってのはどうでしょう
Frame がいいよ。
RootObject<br>BaseObject
物が消えても魂が残る、ということでSpiritはどうでしょう。
Element ... ユークリッドにちなんで。かぶりやすいかも。<br>Modado ... ライプニッツにちなんで。Haskellと紛らわしいかも。<br>Principal ... 俗世的な意味合いが強すぎるかも。
Tao
SqueakではObjectのスーパークラスはProtoObjectですね。
Bottom<br>Top<br>Root<br>Vanilla<br>ProtoObject
Rootかなぁ...<br><br>UNIXに毒されてるといわれればそれまででしょうけど。
Seed<br>Hub<br>Axiom
PlainObject
Ghostとかはどうでしょう。マンガの見過ぎかな。
Idea(イデア)なんかだと意味的に合うような気がします.
Scream
Ruby
Atomにもう一票
意味的には、Ideaなんかがぴったりかも。<br>親クラスって、そのクラスの構成要素というより、そのクラスをさらに一般化したものですからねぇ。<br><br>でも、あまり癖のある名前より、<br>Squeakにあるという、ProtoObjectに一票。
NakedObject、BareObject。
Genesis
Zen
Base (BaseObject)
Empty とか
大元という意味で、MatzObject
material<br>bone
Soft Objects ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-1014.pdf から、UrObject とか
ぶつかるかもしれませんが、シンプルイズベストで「Core」。
BlankSlate
ObjectTemplate, StubObject, Stub
核を持たずに真ん中にあるものだから"Plateaux"
Archetype
Abstract
AlQaeda
Matz<br>Ruby
Vacuum--真空は何もないように見えて、本当は全てのものの源だそうです
Object.super: Smalltalkのメタクラスみたいですが
Atomだけは絶対反対。いろんなところで名前がぶつかります。
言語Rubyのオブジェクトの天辺がRubyだとメタSFっぽくて萌える。<br>もしくはRubyChan:)
Bare
種が抜けた殻でhuskとか
mixinとの相性がよさそうということで、Vanillaにもう一票。<br>Flavors由来?
PlainObject
思いつくのは、<br>* Root<br>* Seed<br>* Base<br>ぐらいでしょうか。
紛らわしい気もするけど NullObject
NullObjectは何にでもrespondしてくれそうな気が
なるほど。んじゃ、Mockup(Object)とか、DummyObjectとか。
KongTongとかどうかなぁ。混沌ってのは原初を意味するし。
Primitive
Perl
ProtoObject
ObjectBase<br>ObjectSeed
Chassis
Tsurupeta
Mother<br>母なる自然という言葉もあります。
RawOre (of Ruby)
LenreK<br><br>Kernelの綴りを逆さにした.
PreObject なんてどうでしょう。<br>数学では制約を弱めたものを pre〜 と呼ぶことがあるので。<br>e.g. monoid->premonoid, order->preorder, sheaf->presheaf, etc...
SonShi
BEER
SuperObject
ObjectWithoutKernel
>Kernelをインクルードしない「なにか」<br>Nanika
リッチの反対語をひろって<br>thinObject<br>leanObject<br>minimalObject
Rupa<br>(Skt.)外見、形
Virgin, VirginObject
GeneticObject<br>起源という意味と、遺伝子(仕様)だけ持っているという意味
Offshect<br> オブジェクトからテンテンをとってみた
万物(all object)を作り給うのはGod
いっそ「_」(アンダーバー)とかどうですか
Corundum (鋼玉:酸化アルミの結晶) はどうでしょう。<br>適量の添加物(クロム)が含まれるとRubyになりますし、<br>添加物の量が多すぎても、少なすぎてもRubyでは無くなる性質が<br>言語と機能の関係に似ているように思います。
> サンのJ・シュワルツ、オープンソースライセンスのGPLを批判<br><br>「自任」→「自認」は書き間違いだと思いますが、「また、GPLの〜」の段落はmatzさんはどういう意図で書いたんでしょう。原文は「GPLに略奪的な義務があるから、世界の知的財産が(産み出した本人の利益にならずに)米国を始めとする世界中に取られる。GPLソフトウエアを最も産み出しているのは米国だから、取られる知的財産の量も大きい」という主張だと私は理解します。<br>matzさんはその逆も成り立つと主張しているのですか?<br>「GPLの略奪的な義務が無ければ、フリーソフトウエア作者の知的財産は、米国に戻さなくてはならないことになる。」と。そうだとすると、その理由は何故ですか?
あ、間違えた > 自任<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>であるという美しくない話になります。
Rubyから一字とってRとか
class MicroObject < MicroKernel
ObjectからKernelをとったら、残るのはエーテル(Ether)かなぁ・・・。<br>あとは実物としてのObjectに対して、抽象的なMatterとか。<br>MatterはMatzをかけています(嘘
実の無い→しいな→empty っていいと思ったんですけどね。
RubyのスーパークラスであればStoneというのは冗談です。
Pure とか PureObject もありきたりでしょうか。
私も Pure または PureObject が良いと思います。<br>[ruby-dev:5340] でも PureObject が提案されていますね。
Seedに+1票。Common は かち合いそうだなー。
- Substance<br>- Nature
Someone (I can't remember who) created a BlankSlate object which serves this purpose.<br>Other ideas:<br>- Blank[Object]<br>- Empty[Object]
MU
Instance
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>とか。
通りすがりさんへ、それは今でも undef でできます(メソッド単位なら)。<br>だけど、それをいちいちやるのが面倒なので今回の案に至ったわけです。<br>またクラス/モジュール単位でexcludeするのは手間がかかる割に応用範囲が狭いのであまり採用したくありません。
Ah, the exclude idea is a good one. It's open to abuse, of course, but so is "include." But is it too kludgey?
ToBe とか Aru とか