4 ms·
Reducing "Smalltalk experience" to "windows, images, menus and pointer" is a gross mischaracterisation. Reducing "Smalltalk the language" to message passing is
by klibertp 12y ago
Reducing "Smalltalk experience" to "windows, images, menus and pointer" is a gross mischaracterisation. Reducing "Smalltalk the language" to message passing is similarly unfair.
Imagine an environment where you can modify and debug every single program you run without ever restarting it; where every little part of GUI of every program is there for you to manipulate (in real time, without restarting) if you want. Environment where you can grab an item from a deeply nested menu and pin it to the desktop, change its color and make it spin, while still being able to click it and invoke the function it's supposed to call. Environment where you can inspect and modify everything in real time (have you seen "Inventing on Principle" by Bret Victor?), from GUI artifacts to underlying models, to system resources, to the very core of the system. An environment which you can clone with one click and run anywhere with a real, not Java-like, guarantee that it will work exactly the same way as for you.
Well, that's still not quite it and there are many other things "left for Smalltalk to accomplish", but hopefully you get the picture.
- drather19 12y agoWe use Smalltalk for a good portion of our distributed control system on our semiconductor manufacturing equipment (at least the non-RT critical portions). It's actually sort of awesome to be able to test/rework/enhance the software on the fly as we discover things we'd like to change in the clean room without having to go through traditional implement/build/deploy cycles. There's certainly other caveats about working in the environment we have, but those we can chat about offline :). From what I've read and played with (briefly), JRebel gives you a bit of this experience on the Java side as well, though I've never used it extensively enough to know if it delivers a comparable experience. It's not that far removed from what many web application developers take for granted in terms of ability to make/test/refine changes on a live system with ease, but it does bring more of this experience to other functional domains.