About KCP and automatic initialize

ducasse ducasse at iam.unibe.ch
Tue Sep 16 07:08:33 UTC 2003


> ducasse <ducasse at iam.unibe.ch> wrote:
> 	I do not understand why simply having a better default
> 	initialization schema that let everybody breaks the rule the way
> 	he wants is a problem.  But may be this is because Smalltalkers
> 	always want to cry that they are so cool but less and less.
>
> This is an ad hominem attack.

No this is just a sad remark. We should just open our eyes. Richard I'm
one of the few persons that is really pushing like hell Smalltalk in 
Europe
(free books, free lecture, ESUG organization....) so I really think 
that if we do not
pay attention, all the languages will have a cool run everywhere, 
browsers, debugger...
So we have to look and make an auto-analysis of the system and create 
the future.

The first step to get more people is what andreas well defined: let 
people choose when to
present a difficult point. Rationalise a idioms that exists.

> What we don't have is agreement about whether
>  - the #new-calls-#initialize proposal *IS* better and
>  - whether it makes sense to have a "better" schema for something
>    which should very seldom be used at all.

If 42% is seldom I do not know what to tell you.

> One of the things that has annoyed me in the past about Squeak
> is that some great new tool (like the Refactoring Browser) becomes
> available for other Smalltalks, finally (ah, finally, after a LONG
> wait) becomes available for Squeak, but then Squeak changes so I still
> cannot use it.

So what. Just take Rb and make it run. This is nice that you mention 
that funny point because
In the new Smalltalk of John new call initialize and do you think that 
RB will not run on this new Smalltalk :)
No!

> We are ALL in agreement that Squeak should move forward.
> We do NOT all agree that this is best done by cutting ourselves off
> from other Smalltalks and other exciting Smalltalk tools.

Come on I collect them and scan so I know them all. Remove two pages 
and this is done.
Or no just let these two pages for the 8 weeks and not the first day!

Now the compatibility with other Smalltalk is not at this level. it is 
at the level of class library.
such as VW not having asString in Integer. Those are the stuff really 
boring.

In term of evolution I think that new/initialize is nothing. I think 
that evolution is worth
for important features. That's why I do not consider that 
initialize/new is evolution. Imagine
traits. The people of VW approached us last year at OOPSLA and they 
wanted to build a prototype. But they
will never be able to do that because they have customers. Squeak has 
this role to play showing the way to others
because we are free if we pay attention not to be nuts.

You know I'm working half in VW and half in Squeak. SmallWiki is 
developed in VW because we have better team
and version management system but we are planning to port it to Squeak 
so we are really aware about changes. But
evolution is necessary else we will be like the Sequioa in a parc 
standing above but a rare species.

In term of evolution I'm much more worried about caseOf: (BERKKKK),
{} and friends because I have two forms to do the same. But we already 
discussed that point.
When andreas extended to get [], I still did not understand and need to 
discuss on a black board with him about that.

But new/initialize is just a pattern that recognise a practice.


> If ducasse at iam.unibe.ch is proposing to give us a tool which will
> automatically convert XML parsers, fancy browsers, &c to the new
> interface, well and good, the objection goes away.

Look at the test of andreas. This is enough to catch most of the 
problem.

>
> Put it this way:  I would regard it as a significant improvement to
> C if 010 meant ten, not eight.  While I am more than capable of writing
> my own preprocessor to fix this, or of patching the three compilers I
> have sources for, doing so would actually lock me *out* of using tools
> which have *higher* payoff for improving my code.
>
> So I am opposed to the proposed change not because I want Squeak to
> be mired in the past but because I *don't* want it to be mired in the 
> past.
>
> SqueakMap doesn't show me a version of the Refactoring Browser that I
> can load and use.  There is a SmallLint *tutorial*, but no SmallLint
> *package*.  This is ironic, because this is the tool that could help
> people with #initialize bugs AND OTHERS without any kernel change at 
> all.
> By flicking switches, I can see a version that says it might work in 
> 3.4,
> but of course I'm not using 3.4.  Try it, .... "MessageNotUnderstood:
> hasPrimitiveChangeClassTo:".  Nope.  I _can't_ use RB.

Have you tried it. I load RB and it work. Now this is just a question 
of energy
put in. if only daniel maitain and daniel is doing something else who 
is to blame.


> Does anyone have a version of the Refactoring browser/of SmallLint
> that works in 3.5-5180 or 3.6 final?
>
> Is there anyone out there who understands my utter FRUSTRATION
> at the way I can never move forward in my Smalltalk practice because
> someone keeps yanking out the rug so that I can never use this tool?

But new/initialize will not prevent you to do that. At ESUG we loaded 
RB in 3.6 alpha and it worked.

> Anyone who *does* understand that will understand why I refuse to
> consider Kernel Changes in basic language mechanisms on the merits
> they might have if other Smalltalks and other Smalltalkers did not 
> exist.


>
> My other point is that simply *having* a "default initialization 
> schema"
> is in invitation to error.  Experts can cope with the present system 
> and
> with the proposed change.  I'm no expert, and I can.

No you are an expert. Do not play this game. If everybody in this 
community which is really excellent
would be at your level we would be an excellent level, but we would be 
a really private club, were newcomer
has to pass all kinds of dirty tricks.


Just a true story:
	- nearly all the people I interview for a PhD position in our group 
are fuzy about super semantics
	- I saw ***assistant*** teaching OO since two year and programming 
daily for 3D modelisation in Java since two 	year not been able to 
correclty explain to me self. Still I did not conclude that this guy 
was stupid.
	He never payed attention or to had to pay attention and it worked for 
him (I can tell you that he attended
	all my lectures even if he was not forced to).

	- I saw researchers not been able to reply well this simple puzzle

			ClassX>>m

				^ super class == self class
		The answer been that if class is not redefined we should get true.

So you see you are not average. we are not average. Our responsibility 
is to pay attention to the entry level without
compromising our SOUL.

> The change is
> supposed to be for the benefit of beginners.  But to me this is like
> seeing a 4-year-old running with a knife in her hand and saying "little
> one, don't do that, let me give you this much sharper knife instead".

You are wrong. Evidence and practice show it.

> I cannot see a change that makes it easier to do the wrong thing (or
> rather, something which is occasionally sensible but almost always 
> wrong)
> as "better" in any honest sense of the word.

I do not know what I tell more.

Note that I like your examples and discussions but reread my emails and 
the emails of andreas.
The point is just that no more and this is a small change.


Stef



More information about the Squeak-dev mailing list