4 ms·
More than features, JS derives from Lisp because its author was a Scheme implementor. Otherwise function pointers are trivially done even in assembly language,
by astrobe_ 2y ago
More than features, JS derives from Lisp because its author was a Scheme implementor. Otherwise function pointers are trivially done even in assembly language, and Smalltalk does have closures.
Or maybe you think of the fact that JS uses prototype-based OOP, which makes it closer to what one would do with Scheme (something inspired from CLOS I guess) than Smalltalk ?
- pjmlp 2y agoPrototype-based OOP came first in SELF, a Smalltalk dialect. CLOS is an evolution from Flavors and similar Lisp packages, and outside Lisp, Julia would be the closest to it, in modern times, not counting Dylan.
- lispm 2y ago> Prototype-based OOP came first in SELF Isn't prototype-based OOP roughly a decade older? -> for example "Director" from Ken Kahn is from 1976.
- pjmlp 2y agoMaybe, I never heard of "Director", its documentation seems hard to come by in digital world. Although Wikipedia also points out that, https://en.wikipedia.org/wiki/Prototype-based_programming https://en.wikipedia.org/wiki/Prototype-based_programming Actually your remark has made me dive into alternative prototype based languages.
- lispm 2y agoCheck the resume of Ken Kahn: http://toontalk.com/resume.pdf http://toontalk.com/resume.pdf Director Guide: https://dspace.mit.edu/bitstream/handle/1721.1/6302/AIM-482b.pdf https://dspace.mit.edu/bitstream/handle/1721.1/6302/AIM-482b... Creation of Computer Animation from Story Descriptions: https://dspace.mit.edu/bitstream/handle/1721.1/16012/07200639.pdf https://dspace.mit.edu/bitstream/handle/1721.1/16012/0720063... The other mentioned tool was Thinglab, by Alan Borning https://www.ijcai.org/Proceedings/77-1/Papers/085.pdf https://www.ijcai.org/Proceedings/77-1/Papers/085.pdf "The Smalltalk notion of an object has been modified and extended in a number of ways. In ThingLab, objects are constructed interactively by editing and making descendants of prototypes. An abstraction hierarchy is used that allows arbitrarily many levels of both parents and descendants, with the problem of objects with several parents being handled by the technique of merging. There is no distinction between classes and instances." "The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation Laboratory" https://dl.acm.org/doi/pdf/10.1145/357146.357147 https://dl.acm.org/doi/pdf/10.1145/357146.357147 "CLASSES VERSUS PROTOTYPES IN OBJECT-ORIENTED LANGUAGES" https://dl.acm.org/doi/pdf/10.5555/324493.324538 https://dl.acm.org/doi/pdf/10.5555/324493.324538 Available in the Browser, running in Smalltalk: https://constraints.cs.washington.edu/thinglab/ https://constraints.cs.washington.edu/thinglab/
- pjmlp 2y agoThanks for the overview.