[comp.lang.smalltalk] Organizations for Smalltalk/V

mark@apple.com (mark lentczner) (03/09/89)

Hiho-
I finally broke down and bought Smalltalk/V Mac this past week!  I 
couldn't stand to use the Apple Version 1 System (which I worked on at 
Apple) anymore: no user extendible primatives, not multifinder compatible, 
etc.

Ok, so I get it home and, what?!?!?, no class or method organizations!  
OK, OK, so I spent last night adding them.  WOW!  That is the easiest 
variation of a browser I've ever created with Smalltalk.  (I know I know 
all you with Version 2 and pluggable views are used to this kind of stuff, 
but those of us with old Version 1 MVC aren't.)

So now the questions:
1) There is a problem that new code with organizations will not file into 
systems without them.  I can fix this by supplying two methods that get 
filed into those systems that drop the organization info from the file-in. 
(Assuming the target system doesn't want organizations.)  Does this sound 
reasonable or does anyone else have a better idea?

2) My organizations differ from the classic Smalltalk-80 ones in two 
respects: they are always sorted by group name (ST-80s are in the order 
you put them) and methods and classes can appear in more than one 
group!  This seems like a win for classes:  One can include them in 
several places if it makes sense.  Any comments on this?

I will happy to share the code once it's done (or at least close to done 
:-)

-mark l.

tce@ann.UUCP (Thomas C. Evans) (03/18/89)

In article <878@internal.Apple.COM> mark@apple.com (mark lentczner) writes:
>
>So now the questions:
>1) There is a problem that new code with organizations will not file into 
>systems without them.  I can fix this by supplying two methods that get 
>filed into those systems that drop the organization info from the file-in. 
>(Assuming the target system doesn't want organizations.)  Does this sound 
>reasonable or does anyone else have a better idea?
>
>2) My organizations differ from the classic Smalltalk-80 ones in two 
>respects: they are always sorted by group name (ST-80s are in the order 
>you put them) and methods and classes can appear in more than one 
>group!  This seems like a win for classes:  One can include them in 
>several places if it makes sense.  Any comments on this?

 That all sounds like a good start at building better than PPS tools
 into ST/V.  If your new code must be filedOut with catagories how
 do I file It in in the first place?  Could you modify fileOut so that 
 the organization information is optional?  Getting better tools and
 staying compatible would be best of both.

 I like what you did with class catagories.  As far as method catagories
 are concerned, the organization (as a comment) is part of the 
 encapsulation of the language.  A method in catagory PRIVATE is the only
 way the language/system has to hide behaivor.  Consider creating a few
 default catagories when ever a new class is defined.  They could be:
   Instance          Class
    private           private
    initialization    initialization
                      instance creation
    reporting
    core interface
Be talking to you..
  Tom