i think many of the features that made smalltalk look revolutionary in the eighties are probably common in most modern languages
i am personally not supper impressed with the live ide thing, it feels more like a gimmick than anything else
i think many of the features that made smalltalk look revolutionary in the eighties are probably common in most modern languages
i am personally not supper impressed with the live ide thing, it feels more like a gimmick than anything else
The closest popular language to it today is probably Ruby, which was directly inspired by it and is similarly dynamic, single-inheritance, class-based, and pervasively object-oriented.
I have given Smalltalk plenty of tries, and always ended giving up due to the lack of polish prevalent on all current implementations:
Pharo looks blurry on my Macbook and is crashing all the time.
Squeak is a bit more stable but feels and runs like a toy.
Cincom is a tad better and has a pretty nice UI designer that is best in class (I would be embarrassed to give a client the ugly non native user interfaces that I see people building in Pharo) but I had the community version (which is not even the latest version) also crash on me a few times and you cannot test it on macOS Catalina / Big Sur.
But without the live IDE thing, you lose many of the great things about Smalltalk.
I spend a lot of time on the Ruby Docs, looking up which methods an object has. "Traditional" IDEs give you type-ahead features, where they perform a code-analysis and then predict what you might want to type. But in Smalltalk I just ask the class how I should be using it and it tells me there and then, even if the class has been modified with methods added or removed or rewritten at run-time.
Autocomplete if good tool support is available everywhere, and some languages have very good dynamic introspection (usable in a repl)
Powershell, Julia, raku .. i think also Ruby and Python also have create introspection, that you can use dynamically in a repl
https://perl6advent.wordpress.com/2015/12/19/day-19-introspe...
So in summary, doesnt repl+introspection+auto completion give the same value
If your environment has stuff added dynamically (for example every Rails app) you need to attach to the live environment - an OO version of gdb. And once you’re doing that, you’ve basically got Smalltalk without the nice presentation layer.
Update: by presentation layer I mean I can ask to inspect a live object and open a window that shows not just it’s instance variables and the messages it responds to, but read the documentation (the equivalent of Rubydoc) and source code (including editing that source code if I wanted to).
most programs run, and finish, and updating most programs while running, is not something important, you can always update it and run it again
for long running processes like servers well again,not really sure what this means
but i deal with database management systems, and i mean you can update a stored proc, without shutting down the server, you can of course update the data etc ..
as for the dbms process itself, i am not big on dba stuff,but most databases allow in-place upgrade , but usually you can to disconnect everyone while doing it
as for large website, like facebook or anything else even a lot smaller in scale, those are obviously not a single program .. and most likely they just restart services to pick up updates, and use a form of load balancing to work will go to servers that are not restarting
So in summary, this notion of live app, seem more theoretical than real to me
The language itself is surprisingly pleasant to program (even for a professional programmer). The real problem is the lack of data structures (like a dict), so some projects (unfortunately, many my 7yo comes up with) become extremely annoying to program.
Unfortunately, I've never found anything with an IDE that touches what you get in Smalltalk. I've always wanted someone to create an environment for Ruby, Python, or JavaScript that would give us the best of both worlds, depending on what you needed at the time. I remember attempts in the early 2000s, but nothing really touched it.
The only other language with an environment like Smalltalk that I've seen is Self, which is a prototype OOP language derived from Smalltalk, but that's even less popular.