> > I just don't want people who merely write a module or class to be
> > able to prevent people who actually use that module or class from
> > using, extending, or poking around in it.
> Sounds kind of like Linus's opinion of close-source modules. If they
> exist and work, he's not going to break them, but he's not going to do
> *anything* to specially support them.
I mostly agree, but I'm not talking about the *license* of the code. I
don't think that's clear to everyone reading this thread, so I think I
should clarify.
Regardless of the license, the author of a class or module should not be
able to close off that class or module from people using that class or
module who want to poke around in its guts at runtime, regardless of the
license or availability of the source code.
Allowing authors to say "This is my namespace and you cannot touch it"
or "This is my class and you cannot touch it or derive from it or
decorate it or apply roles to it" is silly, because they'll do stupid
and wrong things that the rest of the world will have to work around
forever, regardless of the license of their code.
By all means write efficient code and well-encapsulated code and
document your interfaces and intentions appropriately, but if you want
to write generic and reusable code, don't "optimize" for situations
which you can't possibly have profiled because no one has written the
code for them yet.
We should not encourage that.
-- c