. .


Portability and Smalltalk

February 14, 2010 18:20:13.120

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';

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: , ,

posted by James Robertson

 Share Tweet This