Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

In the early 1990's Visual Works Smalltalk became the language that introduced enterprises to object oriented programming.

At FPL, the large Florida electric utility where I worked, we went all-in, received training, and with pricey consultants, built several client server applications using GemStone as the Smalltalk server.

What most developers loved about Smalltalk was the liveness of the system, in that a just-in-time compiler made it possible to develop in a debugging environment. You changed a line in a method, and immediately you could interact with the revised app.

In 1995, Sun Microsystems released Java whitepapers. When I saw those I thought - Java is Smalltalk with C syntax, but without the image-derived liveness.

FPL switched from Smalltalk to Java, gaining all the benefits of reusable code, and object-oriented libraries.

I miss Smalltalk syntax, in particular named method arguments, and to this day comment my Java code to compensate like this...

    sendMessage(Message.notUnderstoodMessage(
            message, // receivedMessage
            this)); // skill
where the method parameter names appear as comments if the calling method does not have local variables of the same name.

A particular feature of the Visual Works Smalltalk implementation was a concept known as "Save to Perm" which, after a thorough garbage collection, moved the remaining long-lived objects, e.g. nearly the whole language runtime, to a memory buffer thereafter free of garbage collection.

Even after two decades, no Java implementation has this feature without resorting to off-heap storage.

IBM got on board the object-oriented development wave in the early 1990's and introduced Visual Age Smalltalk. They bought a Smalltalk version control product "Envy" and created the development environment that has over the years evolved into the famous Eclipse (IBM's Eclipse "blocks out" Sun Microsystem's Java).



I make an app at work using a Javascript framework called Cappuccino. It transpiles an objective - c like language to JS allowing Cocoa developers to develop web apps.

Initially it was very tedious to develop apps as you'd have to refresh the page each time , and the transpilation times began to add up. I read about small talk and realized that objective-c is very close to small talk and hence I could implement hot reloads in a similar way.

I proceeded to make a watcher process in node.js and made a process in the page listen via websockets. Whenever a file changed , I'd just fetch the file and execute it again , replacing it in the central class repository. All existing objects would instantly have their implementations changed.

It's much more fun to develop this way but it's also easier to make a mess. But it's speeded me up enormously and I end up missing it when I code in other object oriented languages.


I got to use Visual Works at the university during 1995, then as you say Java came out and Smalltalk became history.


Yes, I read somewhere it was supposed to be an Eclipse of the Sun :)

Note sure if apocryphal or not.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: