The screenshots of the Self morphs world inspectors are a blast from the past.
When I was a student at Brown U. CS (same time as the much more accomplished Bryan Cantrill), the department had a good relationship with Sun, so students got to play with cool R&D stuff, like Self and Oak (Java).
As I've mentioned before on HN, the research around Self did a few neat things we use today, and is worth looking at:
* JIT compilation and runtime optimization,
* prototype-based object model (and not just this, which we then saw in JS, but Self did this when OO was hot and it seemed everyone thought class-instance was the way to go, and only recently has mainstream PL been moving away from class-instance), and
* the direct-manipulation morphs world, which seemed to go back to some of the promise of the PARC Smalltalk work (before UI thinking turned "and here's some examples of the kinds of interactive graphical objects we could have" to "these is the set of approved standard business form GUI widgets by which all shall abide").
Those are the ones that I noticed and recall, but I wouldn't be surprised if there were more.
If you want to play with morphs worlds today, besides what's in Self, I think Squeak has seen a lot of activity. In any case, it's also worth at least reading some of the seminal research papers around Self.
BTW, the text aliasing in the screenshots didn't look that sharp on a CRT. :)
I believe that the biggest problem with Self and later Squeak was never releasing a useful (killer) app that could demonstrate the advantages of the system. If you nowadays go to Squeak and open a standard image, there is nothing that you can say: this is an useful app that I would like to use. Even Plan9, which is by comparison a very esoteric OS, has managed to create useful apps such as Acme.
I would hardly fully credit Plan 9 for ACME, given that it just made Oberon text editing famous, and poorly given that it lacks document object model from Oberon.
In any case, the main issue of these platforms is a bit like explaining monads and other complicated stuff.
To really get the point of how those systems work, a person needs to invest time into the system until it clicks, and no matter how much we try to put the experience into words, there is only so much the audience is able to grasp, assuming it actually cares to pay attention to.
Killer apps, when it comes to languages, are feedback loops, but you need a statistically significant number of people using those languages to make it more likely that those killer apps get made. To me, this really just sounds like statistically no one used Self so no one (or not many, to be kind) made useful apps in Self.
imo, the Self/Smalltalk vision was just hard to sell to people in the 80s/90s since it was so ahead of its time, with no easy bridge back to the world people were building their existing software in. It might even be hard to sell it today. People built their apps with an existing toolchain and a language they already knew. To adopt the Self/Smalltalk vision largely meant ditching all that to replace your language, your OS, and your toolchain at the same time, for a bet on the claim that a dynamic language was somehow fast enough.
Instead, we piecemeal evolved into a worse world where Javascript apps run in a worse OS (the browser) and Python apps run in a lower level OS that needs to transport itself in a worse image model (Docker). But, it was easier to adopt from what came before. I can't say I'm happy about it, but at least the vision of Self and Smalltalk caught on.
>If you want to play with morphs worlds today, besides what's in Self, I think Squeak has seen a lot of activity. In any case, it's also worth at least reading some of the seminal research papers around Self.
I think Pharo, as a fork of Squeak, has that as well. There's even a MOOC at https://mooc.pharo.org/
Love Morphic. I implemented some ideas from it (in particular I borrowed the "halos" from Squeak Morphic) in my game engine a while back, and this year I'm rebooting the project:
When I was a student at Brown U. CS (same time as the much more accomplished Bryan Cantrill), the department had a good relationship with Sun, so students got to play with cool R&D stuff, like Self and Oak (Java).
As I've mentioned before on HN, the research around Self did a few neat things we use today, and is worth looking at:
* JIT compilation and runtime optimization,
* prototype-based object model (and not just this, which we then saw in JS, but Self did this when OO was hot and it seemed everyone thought class-instance was the way to go, and only recently has mainstream PL been moving away from class-instance), and
* the direct-manipulation morphs world, which seemed to go back to some of the promise of the PARC Smalltalk work (before UI thinking turned "and here's some examples of the kinds of interactive graphical objects we could have" to "these is the set of approved standard business form GUI widgets by which all shall abide").
Those are the ones that I noticed and recall, but I wouldn't be surprised if there were more.
If you want to play with morphs worlds today, besides what's in Self, I think Squeak has seen a lot of activity. In any case, it's also worth at least reading some of the seminal research papers around Self.
BTW, the text aliasing in the screenshots didn't look that sharp on a CRT. :)