|
|
|
|
|
by JeremyReimer
1475 days ago
|
|
Author here! I'm really happy to see people getting into the nostalgia about these weird and wonderful devices. Researching the story was absolutely fascinating, and I loved getting to talk to Steve Capps, who was still excited to talk about the work he did all those years ago. |
|
> And NewtonScript influenced the creation of JavaScript, with its prototype-based object model, dynamic variable typing, garbage-collected memory, and fast interpreted design. Today, JavaScript is the most popular programming language in the world.
The reasons are understandable though (sorry if there are any slight mistakes as I'm writing from memory here).
Brendan Eich was hired to create a Scheme in the browser. Later, the requirements were changed to "make it look like that new Java language". He has said on record that he was familiar with the Self language. JS is often called "Lisp in C's clothing" because under the surface, it is quite similar to Scheme with a prototype object system (Scheme has no object system by default).
Apple created a language in the 1990s called Dylan that was also used on the Newton. It started out as something very close to Scheme + CLOS (Common Lisp Object System though it's more properly MOP -- MetaObject Protocol). Lots of programmers hate the lisp lack of syntax for whatever reason, so they changed Dylan to an infix-style language. OpenNewton is still a thing if you're interested.
NewtonScript kept much of the Dylan-style syntax, but changed out the complex MOP for the more easy to understand prototypal inheritance. I've never encountered even the hint that Newtonscript was on Eich's radar when he started work on Javascript.
There are definitely similarities that become apparent when you look at both language designer's inspirations:
Scheme + Self + C/Java = JavaScript
Scheme + Self + Dylan = NewtonScript
The result is two languages with the same core language ideas from Scheme, the same object system from self, and very different syntax inspirations from C and Dylan.
EDIT: Eich says in an interview he never saw NewtonScript before designing JS
https://wm-help.net/lib/b/book/2520193410/6