I've never fully experienced Smalltalk, but the few posts that came by on HN always fascinated me, since there's a whole interactivity element to it. And I've noticed when it comes to programming, I like interactivity.
I've never fully experienced Smalltalk, but the few posts that came by on HN always fascinated me, since there's a whole interactivity element to it. And I've noticed when it comes to programming, I like interactivity.
1. being able to catch an exception, and injecting a sensible return value so the underlying code could continue. Its incredibly powerful although a lot of inexperienced smalltalkers used it as a crutch for poor design. I.e. I won't handle the error or do bounds checking, I will put a try/catch block around it and send back some value the code can handle.
2. The interactive debugger was truly fix and continue, not the pale imitation you get in .NET or Java. Your code crashed, it threw up an exception window, you fixed the method and restarted the thread of execution like nothing happened. You can kinda do this in .NET now but its slow and doesn't always work right.
The rest of the environment goodies like variable inspectors and live expression evaluation are largely as good or better in java and C# than the classic commercial smalltalks.
And this is the best we currently have, other languages are even more behind than those two ones.
Haha, no... have you heard of Lisp?
I have certainly heard about Lisp, in fact, many haven't heard about Allegro Common Lisp or Lisp Works, the only ones that matter, which the FOSS usually ignores.
This doesn't change the fact that sadly Lisp and Smalltalk are almost nowhere to be seen in 2021 (in large deployments).
As Guy Steele puts it, Java is half-way to Lisp, even if you put Clojure on top, it isn't the same deal as 100% Lisp.
You should take a look at hot reload in Dart and Flutter: