2 ms·
One reason: Lisp was the first to use a garbage collector and thus needed a form of managed memory. In the 60s and early 70s it was relatively alone with its fe
by lispm 8y ago
One reason: Lisp was the first to use a garbage collector and thus needed a form of managed memory. In the 60s and early 70s it was relatively alone with its feature set and a bunch of things in the early evolution of Lisp (like compilers (1962), images as memory dumps (1962 or before), records, arrays, large and small numbers, ...) lead to runtimes supporting these features. Special 'machines' appeared in the 70s which implemented parts of the runtimes in virtual machines or even physical machines (the JVM is in some ways technically similar to other Lisp runtimes -> that's why Steele talked about half-way to Lisp, which in reality may only be 1/4 of the way). In the 70s/80s then the need for larger memories in Lisp programs lead to a bunch of new garbage collection schemes, like generational GC. In the 70s/80s then new languages appeared which were influenced by Lisp implementation techniques: like ML or Smalltalk. Later languages like Ruby were influenced by the implementation of Emacs Lisp.
- pjmlp 8y agoOn Xerox's paper about Mesa/Cedar they describe how they saw as influential to support the same kind of development workflow as Lisp/Smalltalk on a strongly typed systems language. Meaning the REPL, dynamic code reloading, debugger, ... Then we had to wait a couple of decades to catch up and aren't still not there.