Home > General Development > Smalltalk/VM allows code modification on the fly Smalltalk/VM allows code modification on the fly Submitted by kenny 2004-07-28 General Development 12 Comments OOVM produces a virtual machine that allows programmers to hook in remotely and modify code on the fly without needing to reboot the environment: which is very useful indeed. It makes software updates transparent to the user. About The Author Eugenia Loli Ex-programmer, ex-editor in chief at OSNews.com, now a visual artist/filmmaker. Follow me on Twitter @EugeniaLoli 12 Comments 2004-07-28 1:31 am well, sounds like a better implementation than squeak but it’s not open. 2004-07-28 1:42 am Not necessarily better than Squeak. OOVM is made for embedded devices, Squeak is made for multimedia, learning and kids (mainly). Two different goals, two different products. That said, I’d love to see more of that OOVM thing, I really dig Smalltalk. 2004-07-28 1:55 am it uses Smalltalk, rather than modern-day kludges such as Java, which resembles a modern object-orientated environment in the way that a pub ashtray resembles a cigar store. Well-said my man, well-said Anyway, hopefully some users of the “modern-day kludges” will get some keyboard-time in front of this thing, then push Microsoft and Sun to include dynamic features into C# and Java. The same technology that allows dynamic code updates also allow for true interactive development, which is very nice indeed. @matt: If you’re looking for high-quality, free smalltalk implementations, you’ve got a couple of choices. Cincom has a non-commercial version, IBM has a non-commercial version of Visual Age Smalltalk. For OSS versions, you can try GNU Smalltalk, but in general, the free Smalltalks don’t have the powerful optimizers and native-code compilers the commercial ones do. 2004-07-28 2:41 am Yeah. just for kids. You know kids love smalltalk and oo. And they love translating into equivalent c programs. You might want to look at people behind it . Ever hear of Alan Kay ? highly-portable Smalltalk-80 implementation. Why aren’t Rexx and Squeak mentioned like Python and ruby ? http://www.squeak.org/about/ 2004-07-28 2:44 am “Silent updates?” Isn’t this what we’re up in arms about in Longhorn? I don’t want code getting replaced on the fly by anonymous network users. I’ll stick with Windows XP and C++, thankyou very much. 2004-07-28 3:14 am “modern-day kludges”. Nice troll. Java already supports remote debugging and live replace through JPDA. See http://java.sun.com/j2se/1.4.2/docs/guide/jpda/enhancements.html#ho… 2004-07-28 3:29 am I don’t want code getting replaced on the fly by anonymous network users. You’d better get off the web then. 2004-07-28 3:47 am @Anatte: This functionality is a *mechanism* — whether random network users can change your code on the fly is function of policy. What this technology let’s you do is change the code of a system at runtime, without restarting the system. This sort of thing is very important for mission-critical services that must always remain up, and embedded devices that need to be managed remotely. From a security point of view, it’s not different than DLLs — anybody who has that level of permissions on your system could run whatever code he want’s on it anyway! @Pete: Java is not a modern day kludge because it does not have this feature. It’s a modern day kludge because it tries to be Smalltalk (fully OOP), without actually executing it properly. In any case, the “HotSwap” feature is quite a bit more limited than the same feature in a Smalltalk environment. In particular, Smalltak was designed for runtime redefinition from the beginning. That means you use it at every step of the program, from initial development, to debugging, to final deployment. The “HotSwap” feature was hacked onto Java through the debugger API, and requires the program to be running under a debugger to use it. 2004-07-28 4:08 am Erlang/OTP, http://www.erlang.org has Hot Code Replacement: http://www.erlang.org/doc/misc/files/replacement-explained/code-rep… 2004-07-28 4:19 am As usual, we can count on you to deliver wisdom Just to add that Smalltalk has had dynamic capabilities (it’s built around them, as you point out) since its birth, and it’s more or less the same age as C – though its ‘final’ form is from 1980. But hey, 24 years on, <insert language> already supports <insert feature>… With all its defects, Java cannot however be accused of not being Smalltalk. One can criticise the unwillingness to adopt certain features, or the future making of wrong design decisions. What’s past is past though, and can’t for the most part be redesigned. It can at best be hacked (cf. ‘generics’) and let’s pray it’s done with minimal damage. Self a successor of Simula? Self is kind of an object-centric dialect of Smalltalk. Meaning that while traditional OOP is to an extent class-centric (Eiffel, Smalltalk, whatnot), in Self the whole concept of ‘instance’ is fuzzy as you create objects by modifying previous objects. (That’s of course what you do in ST, since classes are objects. The difference is that Self mostly dispenses with classes altogether.) 2004-07-28 4:21 am I wouldn’t want to leave a Smalltalk entry unsigned. 2004-07-28 2:32 pm I’ve been pretty vocal on slashdot about the need for many programmers/companies to take another look at Smalltalk and this is just another reason why. I work on many large dev projects for various businesses and repeatedly I see companies that are unhappy with their investments in J2EE platforms and Java in general. The common issue is that business groups always want to know why projects with limited scope take so long to execute in Java. Examination of dev processes often reveals that Java/J2EE as part of the problem complicated further by the forced application of Java/J2EE upon every project solution. This could partly explain more up-take of .NET. In any event, I would definitely like to see at least one more enterprise class platform choice not based on Java/.NET but preferably Smalltalk. I wonder if there are any large companies (IBM, HP, etc.) bold enough to adopt ST, create a platform around it and promote to the masses instead of continuing with this religious like adoption of Java/J2EE. HP has Alan Kay and he could certainly create this platform for them.