This post originated from an RSS feed registered with Ruby Buzz
by Vincent Foley.
Original Post: VMWare and Smalltalk
Feed Title: Vincent Foley-Bourgon
Feed URL: http://www.livejournal.com/~gnuvince/data/rss
Feed Description: Vincent Foley-Bourgon - LiveJournal.com
If you've followed the IT scene in the past few years, you probably know about a product called VMWare, a very nice product that allows you to run multiple OSes on a single machine. A couple of friends of mine were talking about VMWare the other day, and they especially liked the fact that the whole virtual OS was just a single image file.
"That way, if you need to move the virtual OS to another machine, you just have to copy the image file, start VMWare and you're off!" they said. I don't know if it's that simple, I have no experience with VMWare, but it sounds reasonable enough to me to believe.
This made me wonder if VMWare that is quickly becoming a life saver, even a necessity for some system administrators can enlighten programmers about what is so hot about Smalltalk (and Lisp) images.
Smalltalk images are like that, they contain all your source code, but also the source code of the Smalltalk distrubution you have, the tools you use (debugger, refactoring browser, unit test browser, etc.) to develop. If you use Squeak for instance, you can easily put your image file on a USB drive, go to another computer, plug in your USB stick and just open the image file with Squeak and you have the exact same thing than the last time you saved.
Since everything, including your configurations, is inside that image, if you need to change computers, your work environment will be exactly the same. So if for any reason you have to change computers (maybe you're going home, maybe you want to use the laptop outside, maybe you bought a new computer), as long as you have your image file, your work environment will be the same.
That sounds pretty attractive to me, doesn't it? One file with all your code, the system's code, the development tools and your configurations. Consider if you were using Java with Eclipse, to have the same work environment, you'd need to either copy all the config files from another PC, you'd need to install all the third-party libraries you need and get your source code from either a RCS depository or just by scp'ing the files from another system. In either case, it seems like a lot more work than in Smalltalk's case, doesn't it?
Another advantage of images and Smalltalk has been explained by Cincom Smalltalk's product manager, James Robertson where he said that some clients had problems with their programs, so they saved the image and sent it to Cincom, where some programmers could look at the code, see what conditions triggered the exception, etc. Replicating a bug in Java is much harder, because the code is dead. It's like Frankeisten, you code it when it's dead, you try it, when it tries to kill you, you unplug it, see what's wrong and try to fix it. Smalltalk code is alive.
If sysadmins begin to see just how nice it is to have VMWare imges, is it possible that programmers could begin to see that source code in files is quaint (to quote Kent Beck) and that images are the way to go? You get the added bonus of much more powerful tools than grep, sed and awk.