Hacker News new | past | comments | ask | show | jobs | submit login

I think the following is a bit inaccurate.

> 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




Early Dylan owed more to Common Lisp than to Scheme, especially in its object system. It removed some of the more complicated CLOS mechanisms (e.g. :before, :after, and :around methods) but it still "felt" a lot like Common Lisp before its syntax was de-parenthesized.

The first Dylan compiler was written at Apple Cambridge [Massachusetts] Laboratories in Macintosh Common Lisp (MCL) which was itself an Apple Product. Later, Apple decided they didn't really want Dylan after all so they sold the Cambridge lab, later renamed Digitool. The MCL product lives on today as Clozure Common Lisp (CCL).

The transition from MCL to CCL is a dramatic story unto itself. I should probably write down what I remember about it someday.


I played around with Dylan around a decade ago. Maybe my Scheme comparison comes more from it having just one namespace (lisp-1) rather than the more functional aspects of Scheme. MOP is definitely from CL though.


I'd love to hear the MCL to CCL story, if you do get around to it.


For the record, NewtonScript wasn’t inspired by Dylan. I did work on Dylan, but only in the early stages when it had normal Lisp syntax. The syntax inspiration for NewtonScript was Pascal.


Ok, wow. JS object literals were not inspired by NewtonScript but I was inspired by Niklaus Wirth and Pascal.


>OpenNewton is still a thing if you're interested.

Did you mean Open Dylan?


Yes. I wonder how I missed that, but then again, I see the stuff that's made it into a PR of mine on occasion and I guess I shouldn't wonder....




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: