-ss
-ss
-ss
-ss
Java and .NET are based on VM with mixed execution models, interpreted, AOT and JIT to native code.
Their semantic model is closer to Smalltalk, with GC, dynamic loading, incremental compilation, ability to change code in debug mode and continue, reflection, dynamically generate bytecode on the fly, ....
BTW I just found out that, apparently, C++ Builder is, sort of, still alive. The most recent release is "10.2 Tokyo / March 22, 2017". I thought it was dead for a decade or so.
-ss
Currently on mobile, not so easy to provide a link.
If anything, among more "modern" languages, I would think that the closest thing to Smalltalk is Ruby.
EDIT: Here's an example piece of code of Smalltalk:
#(1 2 3 4 5) select: [:i| i odd ]
in the equivalent Ruby: [1,2,3,4,5].select {|i| i.odd? }But for overall development experience, modern industrial C# and Java developer environments may be closer to the Smalltalk dev experience.
This is what most people miss when comparing languages.
There's also REPLs for Smalltalk, but none for Java due to it's syntactic structure that prevents top-level statements.
That sounds like Smalltalk leads to far different development experiences compared to Java.
In other words, I can't think of how anything between Smalltalk and Java could be similar (at least more so than comparing it to any other programming language). Could you expand on that?
[1] http://web.cecs.pdx.edu/~harry/musings/SmalltalkOverview.htm...
To this day it still contains the Smalltalk style code browser for Java code. REPL like experience in Eclipse was done via Scrapbook, which are similar to transcripts.
And as of Java 9 there is an official REPL on the JDK.
The workspace concept in Eclipse is based on the idea of having a kind of virtual image based on files.
JVM debugging capabilities support edit and continue, then there are tools like JRebel that take advantage of class loaders to extend the code replacement capabilities.
Eclipse has its own Java compiler that does incremental compilation on file save.
Java collections introduced in version 1.2 are influenced by Smalltalk collection classes.
Also note that I didn't state it was the same thing, rather "the only ones close enough to the experience.".
> Eclipse has its own Java compiler that does incremental compilation on file save.
Unfortunately, this seems to be the other kind of incremental compilation, different from Smalltalk's or Lisp's. As far as I can see, it simply results in faster compilation, and not in run-time program modification.
Again I am not saying you can do everything that Smalltalk allows for, after all it enjoys the flexibility of a dynamic language, just that those environments (.NET and Java) are the closest to the overall experience, from the point of view of someone that used Smalltalk/V back in its golden days.
The dynamism of those IDEs can be traced back to what Xerox PARC was doing on their Mesa/Cedar developer's environment.
http://toastytech.com/guis/cedar.html
https://archive.org/details/bitsavers_xeroxparcteCedarProgra...
These ideas influenced the IDE experience of other statically typed languages.