[KCP] SystemChangeNotifications: Current state and some code

Daniel Vainsencher danielv at netvision.net.il
Tue Jul 15 09:51:19 UTC 2003


[class names]
I proposed "Code" instead of "System" as being much specific and
intention revealing, though "code" isn't a very precise term in
Smalltalk. 

<nit pick>BTW, can you explain the rationale for the methods in
SystemChangeNotifier>item kinds? it seems very repetitive and a bit
cumbersome. </nit pick>

Daniel

Roel Wuyts <wuyts at iam.unibe.ch> wrote:
> Oops, I forgot to add this point on my to-do list. It is one of the 
> reasons that I did not write too much documentation yet (because 
> otherwise I have to keep it up-to-date whenever I refactor some name 
> :-(  ). The current names 'grew' while developing but are not really 
> good.
> 
> Note that the names you propose will not really do though (since for 
> example, the current  SystemAddedEvent can be used with classes, 
> methods, instance variables, etc.). That is why I took this name:-) But 
> since I know I am not very good at names any input on this front is 
> welcome :-)
> 
> PS: Thanks for pointing out that it is one of the Squeak traditions to 
> not use prefixes for class names. This used to be the convention in 
> Smalltalk (at least in VisualWorks), to make it clear which code 
> belonged together when not seeing it in categories, and for avoiding 
> name clashes. I was not aware that this was changed in the meantime in 
> Squeak, even in the absence of namespaces.
> 
> PS2: [fun] you have to agree that SystemEvent is already a much better 
> name than ExtensionalClassification :-) :-) Maybe I'll learn it in the 
> end :-) :-)
> 
> On Tuesday, Jul 15, 2003, at 10:25 Europe/Zurich, Brent Pinkney wrote:
> 
> > Roel,
> >
> > I have not had the time to install and test your code.
> >
> > I do think however that we must be very careful when naming new 
> > classes, especially of this significance.
> >
> >>> (4) SystemEvent: root class of the events that implement most of the 
> >>> functionality
> >>>  ...snip...
> >>> so you find classes SystemAddedEvent, SystemRenamedEvent, ...
> >
> > One of the traditions of Smalltalk and Squeak in particular is that 
> > class names do not describe their implementation or namespace.
> >
> > This exact issue has come up recently on the list with the 
> > introduction of the Deprecation exception. That class was originally 
> > called DeprecatedException. This, I hope you agree, does not match the 
> > feel established by the ANSI exceptions: DivideByZero and 
> > MessageNotUnderstood, Halt.
> >
> > The mailing list seemed to agree and the class was renemed to 
> > Deprecation.
> >
> > Similarly I would strongly urge you to concider a similar naming 
> > convention\hierarchy for the events...
> >
> > e.g. (of the top of my head)
> >
> > Event
> >    CodeModified
> >       ClassChanged
> >       ClassRenamed
> >       ClassAdded
> >       ClassRemoved
> >       MethodAdded
> >       MethodRemoved
> >
> > PS. For this same reason, objects like SMObject and MagmaCollection 
> > make me unhappy, despite their excellent functionality.
> >
> > There is something very homely and intimate in the Smalltalk 
> > convention which prevents is feeling like _code_. It is about as far 
> > away from Hungarian notation as you can get - Squeak has ubiqitious 
> > reflection to assist the developer.
> >
> >
> > Thanks
> >
> > Brent
> >
> >
> Roel Wuyts                                                   Software 
> Composition Group
> roel.wuyts at iam.unibe.ch                       University of Bern, 
> Switzerland
> http://www.iam.unibe.ch/~wuyts/
> Board Member of the European Smalltalk User Group: www.esug.org



More information about the Squeak-dev mailing list