I was reading
Dale Henreich's post about portability and Smalltalk (riffing off
Kent Beck's post), and saw something I thought made a lot of
sense:
Envy and Store are not viable candidates. Monticello is
a light-weight solution compared to Store and Envy. If you can
afford to port Seaside, then you can afford to port
Monticello.
And in fact, the people doing
Seaside (and WebVelocity)
here at Cincom have ported Monticello (in fact, I did a
screencaston that last summer).
Now, I like Store well enough, and I've worked with Envy. But
yeah - both are too tightly wound into vendor specific solutions
(Cincom, Instantiations), and both are pretty heavy. This really
hit home for me when I thought about the process of loading some
library (say,
Silt, which I've been writing about recently). To do this with
VW or ObjectStudio, you need to:
- Load Store (the NC download does have it loaded for you)
- Create a login for the repository (again, the NC provides a
read-only one)
- Connect to the repository
- List the available packages
- Going alphabetically, find Silt (the bundle, fortunately I did
not create a matching package name)
- Load it
Contrast that with something from "
Talking Meta" this morning, talking about loading up some new
filesystem code for Pharo:
Gofer new
wiresong: 'mc';
package: 'Filesystem';
load.
Gofer seems to be a small tool Lukas built on top of Monticello
to make loading (etc) easier. Now sure, you can script easy
solutions for Store and Envy, too - but porting either one to
another Smalltalk dialect would be a pretty big task (yes, Envy did
that once. No, it won't be doing it again). Monticello though? It's
pretty small, seems easy enough to port, and, being file based, can
work pretty easily via http, ftp, (insert your favorite network
protocol here). Neither Store nor Envy do that part. And while
again, a client could be built to deal with that, it's highly
unlikely to happen.
Now that Seaside is a common web framework, it seems like having
a common version control system would be a good next step. I think
perhaps Monticello
couldbe that system - but I haven't personally done any
work with it, so I could be wrong. Thoughts?
Technorati Tags:
portability, version control, smalltalk archipeligo