There’s a couple of people on Lobsters who have used Self or are involved in it. Self is still a (slowly) ongoing project, available for MacOS and Linux. I guess I’m the main Self guy at the moment, so happy to answer any questions.
Whoaaaa. I just wanted to say: SUCH A COOL FUCKING PROJECT! THANK YOU for working on it.
I know I’m not supposed to yell like that, but… whatever, it’s deserved.
The reason I’m so happy that something like Self exists is that it serves as an example of “graphical programming”, which is a concept that somehow got lost between the 90’s and now. Project Oberon is another excellent example.
Basically, you’re able to interactively explore a system and link arrows together. It’s a flow chart, not a text file. (It can be a text file, of course, but a text file doesn’t help you examine runtime state.)
Not even React / Redux tooling is as advanced. You can inspect state, but you can’t really do anything using their tooling.
I just help keep it ticking over, but thanks.
There is such a large amount of computing history which has been effectively forgotten. It’s amazing given how short the history of computing is! And every so often people reinvent something :)
Do you have a text summary of what this even is, for those of us who don’t want to invest time in watching videos?
Self is a research programming system first developed at Sun in the 80s, comprising a prototype based language, GUI and VM. The VM was for its time groundbreaking for its use of generational garbage collection and JIT compilation and is an ancestor of the HotSpot JVM. The language is clean and simple, “like Smalltalk but more so” - everything is a message send including local variable access, control structures and arithmetic. The GUI focuses on immediacy and concreteness and allows for multiple independent developers to collaboratively interact with objects on a shared canvas.
Thank you! I’ll make sure to add this to my list of things to watch!
I’ve written about self this Series of articles: http://blog.rfox.eu/en/Series_about_Self.html
It’s submissions like this that make me love lobsters. I can’t think of anywhere else I’d find this, other than randomly stumbling on it via twitter or something (which is rare).
Related, and worth a read: Organizing Programs Without Classes http://bibliography.selflanguage.org/_static/organizing-programs.pdf
Interesting read, thanks.
Do you think it would be accurate to say this is the “mix-in pattern”? I’m playing with implementing mixins in one of my languages and not sure who does it best. Honestly it seems like the simple way CSS/HTML can approximate mixins may be the best I’ve seen.
Chew on this over the course of several days. It’s worth it!
Related to https://lobste.rs/s/v2qahh/self_movie
Another good video is https://www.youtube.com/watch?v=8nfrC-YLYqc, but I don’t want to spam.
Thank you Bystroushaak, I’ve merged your submission here in to story v2gahh. To your follow-up comment about not wanting to spam submitting another link: there is an open ticket to make story merging available as an edit suggestion, which would make submitting material related to previous story submissions less manual than it is now.
Tangential, but I find it interesting every time I see multiple mouse cursors (https://youtu.be/Ox5P7QyL774?t=933) in an old demo. The first time I saw them may have been a newer implementation (2013 - https://hacks.mozilla.org/2013/10/introducing-togetherjs/), but it goes back to at least 1968 (https://youtu.be/B6rKUf9DWRI?t=178).
For some reason it always looks like an innovative, attractive feature. But in practice doesn’t seem to be that useful and perhaps might even do more harm than good. I guess it’s important to have everyone focus on the same thing. Probably the same reason why almost all the major sports have only 1 ball in play at the same time (a fact that often surprises me, as it seems like it would be more fun to play if there were more balls).
You could argue that this is only almost multi-pointer but still: Settlers 2 had a split screen mode that used two serial mice! It was very cool.