. .

smalltalk

The Joys of Patch in Place

January 1, 2010 12:47:45.862

Smalltalk One of the things I really like about Smalltalk is the "living" nature of it - you make a change, and your environment notices it right away: no recompile, no taking your app down and up, no "have to rerun to that point"... it just takes the change and runs with it.

This morning I noticed a small bug in the archive links, for instance. Looking at my test server (on a Linux box here in the house), the problem was obvious enough; it was a stupid little bug. The part I like is how I addressed that in the running server (both here and over at my Cincom blog):

  • Had VisualWorks drop out a change set (all the changes I had made) as source code
  • Transferred the code to both servers, here and over at Cincom
  • Transferred the new version of the component in question, so the changes would be there if the server was restarted
  • Went to a small control panel I have in the app server and had it load the change

The last part is just a simple file-in - the Smalltalk image loads and compiles the code, and keeps going along its merry way. Even if that change involved shape changes to existing objects (i.e., redfining their class), things would be ok: the image modifies every such object that exists in the image. This change was simpler than that, but it's a really nice thing to have - it means that there's almost never a reason to take an Smalltalk server down. It can be patched in place, while it's serving requests.

I just think that's cool, and it makes a Smalltalk developer just a little more productive.

Technorati Tags: ,

posted by James Robertson

Comments

Re: The Joys of Patch in Place

[Douglas Putnam] January 1, 2010 13:57:45.854

I've been doing PHP and Ruby on Rails for too many years and have always felt that we spend most of our energy and time seeking the Holy Grail called Persistence. It is a revelation to those of us on the beaten path to find that the solution is right in front of our noses: Smalltalk.

I'm in the process (a rather drawn-out process, I admit) of learning Smalltalk. I plan, eventually, to teach a Smalltalk course at CCSF where I teach PHP and Ruby.

Re: The Joys of Patch in Place

[MichaƂ Wyrobek] January 2, 2010 12:02:56.692

Smalltalk is really really powerful language with great environments (ides). Only reason for now why Ruby is higher in popularity rankings is its community with perfect marketing scenarios thats all. But it's almost absolutely impossible to have equal fun from work in any other language/environments :)

Re: The Joys of Patch in Place

[Bernard] January 4, 2010 11:03:15.599

I'm also a subscriber to the idea that restarts should be as rare as possible. There are three environments that I use that all operate in ways similar to what you are describing.

1. Lotus Notes - applications get added to Notes servers all the time without the server being restarted. Indeed, changes can also be made to the running applications without the server being restarted (although generally, it is not considered to be good practice, in case the change has unforeseen consequences).

2. Zope - very similar to Notes.

3. Revolution - a cross-platform version of hypercard, where even the IDE is written in hypertalk (or revTalk, as they so inelegantly call it).

I love dynamic platforms. Problem is, that after using them for over a decade, I find the idea of compilation to be so unpleasant, that I find it hard to take up any language requiring compilation.

 Share Tweet This