Curt Hibbs wrote:
> Smalltalk is a great language. It was my first exposure to Object Oriented
> programming. As a language it still holds its own to modern day OO languages
> (its probably over 25 years old now!).

It was my last exposure to OO so far...

> It has its blemishes, too (I won't go into that here). But I found Smalltalk
> particularly frustrating for team development where you wanted to have good
> version control (like CVS), because Smalltalk, traditionally, is not file
> based.
> 
> I haven't used Squeak, but I would be interested to know how well it works
> in a team development environment.

I understand your frustrations.  I felt the same way initially and still 
do to some degree.  Avi and I developed a simple version control system 
we call SSVS (Simple Squeak Versioning System) which pulls/commits 
changesets from/to a web cgi.  It keeps track of current version 
numbers, etc. It works pretty well but that is with only two of us 
developing.  Without code-merging, etc. I have serious doubts about 
whether it would scale to many more developers.

I don't think the non-file basedness *prevents* having good version 
control, however.  It's just that existing version control systems are 
designed to work with files.  The same paradigms can be applied to 
squeak/smalltalk, it's just that you either need to convert the squeak 
methods/classes into files that can be versioned, or develop a solution 
that actually works in smalltalk but models similar processes to 
existing version control systems.

We have been toying with ideas around using CVS or Subversion to version 
classes as if they were directories and methods as if they were files. I 
personally would like to use Subversion once it is released because by 
using the client library we can be notified of deletions, renames, etc. 
  But then we introduce a need for users to have the client library and 
we restrict it to one version control system instead of any one that 
works with files.  So we may end up trying to implement something that 
actually creates the files in the filesystem so that you can 
update/commit with your choice of command line tool.  I don't know 
though.. then you have to parse the output of all the programs, hoping 
they give you all the information in a clear way, and you rely on 
windows users having and using command line version control programs 
which is probably more annoying than making them have a Subversion 
client library .dll.

Anyway, solutions may be forthcoming at some point.  But our system 
works great for the two of us so It Can Be Done(tm).

Julian

-- 
julian / beta4.com
Beta4 Productions (http://www.beta4.com)