Remix.run Logo
oersted 5 days ago

Apparently the codename for the prototype language was "Mocha", infinitely better! Even the release name "LiveScript" is much better.

They switched for cynical marketing reasons, riding the "Java" hype, and to flaunt their partnership with Sun. Well, it did make some kind of sense at the time when the scope was much smaller. They had this rough idea of an interpreted lightweight companion to Java, back when lots of backends where build with Java and it was meant to be the frontend counterpart for some limited interactivity in the client. But they never got it properly integrated and they diverged very early.

legobmw99 5 days ago | parent [-]

We should call it UnTypedScript

DonHopkins 4 days ago | parent | next [-]

SelfishScript. JavaScript credits Self as inspiration, but misses all the important things about Self.

JavaScript copied:

The name "Java", cynically chosen for marketing misdirection, not technical truth.

The word "prototype" from Self, but turned it into a quirky pseudo-class system. Instead of living objects delegating naturally, with multiple inheritance dynamically changeable at runtime, JavaScript glued on a weird constructor-function pattern that always confuses people, with constructors you have to call with new but can also uselessly call as normal functional foot-guns.

JavaScript missed:

The fluid, live object experience (JavaScript dev environments were never designed around exploration like Self’s Morphic).

The elegance of uniformity (JavaScript bolted on primitives, type coercions, and special cases everywhere).

The idea that the environment mattered as much as the language. Netscape didn’t ship with the kind of rich, reflective tools that made Self shine.

And most important of all: Self's simplicity! The original Self paper (Ungar & Smith, 1987, “Self: The Power of Simplicity”) was all about stripping away everything unnecessary until only a uniform, minimal object model remained. The title wasn’t ornamental, it was the thesis.

Simplicity. Uniformity. Minimal semantics. A clean consistent model you can hold in your head. Less semantic baggage frustrating JIT compiler optimization. Dynamic de-optimization (or pessimization as I like to call it).

Self proved that expressive power comes from radical simplicity.

JavaScript showed that market dominance comes from compromise (worse is better, the selfish gene).

JavaScript should be called SelfishScript because it claimed Self’s legacy but betrayed its central insight: that simplicity is not just aesthetic, it’s the whole design philosophy.

senderpath 2 days ago | parent [-]

Yes, indeed! It's a design philosophy, and one that the market does not always reward. I suspect that for many, it is either not salient, or unimportant. Design is subjective, and multi-dimensional.

Thank you, Don for seeing and writing about this dimension.

nullable_bool 2 days ago | parent | prev [-]

What about SloppyScript? It has a nice ring to it.