Distribution and Deployment

Glyph Lefkowitz glyph at twistedmatrix.com
Tue Apr 17 09:33:01 UTC 2001


Hi!

I'm new to Squeak, and to Smalltalk.  It seems like a very elegant platform 
for development, and Squeak's media stuff in particular is very interesting 
to me.  Kudos to the team that has been toiling for decades to make this 
happen, and to all those who have written tutorials, which I have been 
vociferously reading for the past few days ;).

Although the possibilities of the development environment seem vast, I'm 
confused by a few things.  I know that there are people working on some of 
these things, but trying to find working code has involved lots of broken 
links and blind alleys on the web, so here are my questions.

I realize this is probably still a thorny problem in Squeak, but I'm curious 
what the conventional approaches are to distribution.  I want to write an 
application which contains standard application-style stuff; and I would like 
to create both a "standalone" application that non-developers can use as well 
as something that can be loaded into a Squeak image so that fellow developers 
can use it without running multiple VMs at once.

The two major issues I have are figuring out how to segregate my app from the 
rest of the system, and understanding what base system functionality is 
actually supported and what is just a temporal artifact.

Is there the notion of a change-sub-set somewhere?  I would like to be able 
to file out changesets for other programmers working on the project (is there 
a better way to do collaborative development than just filing out changesets 
to each other?), and still have a final "this is everything I've done to the 
base image" changeset to distrubute when I'm done.

Is there a SqC "blessed" way to distribute apps that will eventually reach an 
end-user?

The other problem that I'm having I don't know how to discover which pieces 
of squeak are going to change out from under me while I'm working.  Ideally, 
I'd like to write software that will last for 100 years, and still run on a 
relatively current and supported environment :) but failing that, I'd like to 
at least not do anything that will be stomped on in the next major version of 
Squeak.  The only significant application I've been able to get working in 
Squeak so far (whisker) seems highly sensitive to the order in which it is 
filed in with respect to other changesets (SyntaxHilighting.cs in 
particular), and breaks completely if I upgrade to 3.1alpha.  I'm not so much 
interested in burdening Squeak with bad assumptions I've gleaned from other 
environments, but I would like my code not to break all the time for reasons 
that I don't understand.  The in-code documentation is spotty, so what 
conventions should I follow?

Finally, the user interface is really a big hurdle to clear; I can deal with 
the different look, or even the chunky performance, but I can't switch or 
close windows with a keystroke, just about every browse it/implementors of 
it/senders of it/references to it(etc) operation spawns a new window.  Are 
there any changesets that address some of those workflow-streamlining issues? 
Or give me emacs-style keybindings in the editor? ^_^ I saw a lengthy rant on 
the wiki, but again, no code to accompany it.

Thanks for any comments, and I look forward to hacking in this exciting and 
powerful (yet alient) environment! :)

-- 
                      ______      __   __  _____  _     _
                     |  ____ |      \_/   |_____] |_____|
                     |_____| |_____  |    |       |     |
                     @ t w i s t e d m a t r i x  . c o m
                     http://twistedmatrix.com/users/glyph





More information about the Squeak-dev mailing list