Licenses redux

goran.hultgren at bluefish.se goran.hultgren at bluefish.se
Mon Feb 11 11:01:57 UTC 2002


I don't intend to drag anything on - but I wanted to insert a small
comment here.

> At 9:58 AM -0500 2/10/02, Mark Mullin wrote:
[BIG SNIP OF INTERESTING VIEWS]
> >Second,  interpretation is a bad thing when it comes to legal agreements
> >like licenses.  Remember that the selection of words in any contract has
> >nothing to do with welding an irrefutable logical chain, it's the selection
> >of words to argue over in court later, if need be.  So lets not make the
> >argument any broader than it needs to be.
> >
> >Rant off.
> >
> >Don't get me wrong, I think Squeak has a living and vibrant community and I
> >think it's membership should talk about whatever they bloody well please.  I
[SNIP]

As a lot of people has already noted these things pop up regularly. And
Andrew regularly
posts clarifications or reference to the fact that it has been discussed
before and that
the stuff is either on the Swiki or in the mailinglist archives - thanks
Andrew for your
patience on that. :-) And indeed - if you are new to the list and
haven't seen these discussions before,
do go and check them up because there have been VAST amount of posts
discussing these things in depth.

I understand (and partly agree) with what Mark wrote, but still - the
vast majority of the Squeak
community are individuals (and not corporations) and we must also
understand the license questions.

And we gain that understanding by these discussions. So in fact, even if
it is better to have a lawyer
giving you advice most of us do not have that luxury and we must try to
understand the license
questions ourselves. So we must "interpret the license". As you said, in
court everything can happen - so
perhaps the most important aspect of OpenSource-licenses is for them to
be easily interpretable by ordinary
people.

And SqueakL isn't hard to understand - but it would be VERY good for us
to have
(and we probably already have that) a Swikipage explaining the SqueakL
in plain english - what you CAN do
and what you CAN'T do, why it isn't OSI certified etc. etc.

BTW, I am offline writing this, but I assume that the FAQ includes such
a page. If it doesn't then I will create one
and try to fill it with a bunch of these questions and some answers, and
then we can all help fill in the blanks.

And then, when it pops up the next time we can just post a big juicy
READ THE #&%! FAQ, and be done with it. :-) :-)

regards, Göran
PS. <CSOTD>
"Ok, I can't just bail out AGAIN. So... ok, a newbie tip is always good,
right? It ain't code but... :-) Here goes:

If you get a 'MessageNotUnderstood' often referred to as a DNU (Does Not
Understand), which is a common error
in Smalltalk/Squeak there are AT LEAST three very common reasons for it:

1. An uninitialized variable (typically an instance variable).
You are sending a message to the object that the variable references and
that object is
the one-and-only-nil-guy. And Mr nil doesn't understand anything. Well,
he does understand a few things but not much.
If you are familiar with Java this is the equivalent to a NullPointer
Exception commonly referred to as NPE in the Java world.

2. A missing return statement. You have probably forgotten a ^ (return)
in one of your methods. If you forget that,
Smalltalk returns 'self' by default and that is probably in this case
not what you want. If you are really unlucky, the code dealing
with the result might actually work anyway and then you have a tricky
bug to find. An example would be if you test the result
with isNil or something and of course - it will never be nil... and
everybody understand isNil so there won't be a DNU popping up.

3. A method in the base classes returns nil as the answer (poor mans
error handling) if something can not be computed.
For historical reasons (and others) Smalltalk code relies on two error
handling techniques - returning nil (or 0 in some cases)
or raising an Exception. The latter is perhaps to be preferred today,
but testing for a nil-return is sometimes easier.

...and then of course - it just might happen that you have forgotten to
implement the method in question... :-) :-)

"</CSOTD> DS



More information about the Squeak-dev mailing list