If only it had been made open source 25, 30 years ago when I was really excited about this stuff. I have no idea why they kept it locked up inside Sun for so long.
They hesitated a bit on continuing to release it as open source when they moved from Stanford to Sun (I should actually say Sun's lawyers hesitated) but then went ahead and released Self 2.0 sources (Self 1.0 and 1.1 had been open source). This continued with Self 3.0 and Self 4.0 and then the project was cancelled the first time as Sun decided to focus exclusively on Java. David Ungar was able to continue making small changes but neither the sources nor the binaries were released to the public.
Around 2000 Sun decided to restart the Self project with a embedded Self-in-Self called Klein and released Dave's improvements (including the PowerPC Mac port) while an outside group had done a port to x86 Linux.
I think it was 2006 when Sun cancelled the project again and Dave moved to IBM research.
So all the sources have been available since 1990, but with the delay I mentioned in the case of Self 4.1
DonHopkins 35 days ago | parent | context | favorite | on: Help us raise $200k to free JavaScript from Oracle
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 [Dave Ungar] 33 days ago [–]
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.
DonHopkins on Nov 9, 2022 | parent | context | favorite | on: The influence of Self
I wrote this in a discussion with Tom Lord in 2006 (a couple years before Lars Bak developed V8 at Google), after I ran into Dave when he was interviewing at Laszlo Systems, and he showed a demo of his latest Self system:
9 comments
[ 4.5 ms ] story [ 31.5 ms ] threadDecent readable C++, too. With a modern CMake build, the whole bit.
https://github.com/russellallen/self
If only it had been made open source 25, 30 years ago when I was really excited about this stuff. I have no idea why they kept it locked up inside Sun for so long.
Around 2000 Sun decided to restart the Self project with a embedded Self-in-Self called Klein and released Dave's improvements (including the PowerPC Mac port) while an outside group had done a port to x86 Linux.
I think it was 2006 when Sun cancelled the project again and Dave moved to IBM research.
So all the sources have been available since 1990, but with the delay I mentioned in the case of Self 4.1
But I always thought "dynamic deoptimization" should have been called "pessimization".
https://news.ycombinator.com/item?id=33527561
DonHopkins on Nov 9, 2022 | next [–]
A Conversation with Bjarne Stroustrup, Carl Hewitt, and Dave Ungar
https://web.archive.org/web/20150428011217/http://channel9.m...
https://donhopkins.com/home/movies/BjarneCarlDaveLangNEXT_mi...
They have a fascinating (and polite, respectful) argument about shared memory, message passing, locks, synchronization, and lock free message passing!
https://news.ycombinator.com/item?id=45315685
DonHopkins 35 days ago | parent | context | favorite | on: Help us raise $200k to free JavaScript from Oracle
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 [Dave Ungar] 33 days ago [–]
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.
https://news.ycombinator.com/item?id=33527618
DonHopkins on Nov 9, 2022 | parent | context | favorite | on: The influence of Self
I wrote this in a discussion with Tom Lord in 2006 (a couple years before Lars Bak developed V8 at Google), after I ran into Dave when he was interviewing at Laszlo Systems, and he showed a demo of his latest Self system:
>I just ran into Dave Ungar (of Se...
I wouldn't be surprised if toit primaries, Kasper or Florian also have experience in these technological intersections.