4 ms·
I was fascinated by Self back in the day. The way any slot can be a parent and multiple slots could be a parent providing multiple inheritance seemed like magi
by fzzzy 4y ago
I was fascinated by Self back in the day. The way any slot can be a parent and multiple slots could be a parent providing multiple inheritance seemed like magic. You could just change them at runtime as well, possibly massively changing the behavior of the system. In retrospect multiple inheritance wasn't the greatest in practice.
The LambdaMoo language was also prototype based, and I think both languages were designed around the same time. I wonder if there was any influence in any direction. LambdaMoo only had a single parent slot, but you could delegate a method to another utility object to achieve a kind of mix in functionality.
Then later there was a fork of LambdaMoo called Stunt that added multiple inheritance, maps, and json support. It sure seems like Stunt would be fun to program in even though I didn't do anything complicated in it.
There's also Io which is prototype based and very minimalistic. It has much better interoperability with C and could be a very light scripting language for something in C.
- cmrdporcupine 4y agoRe: prototype OO and LambdaMOO and so on, there was also CoolMUD (also by Stephen White, who wrote TinyMUCK, and then wrote the first version of MOO before Pavel Curtis took it over) and also ColdMUD by Greg Hudson, which was then forked into Genesis. Those two were more "pure" prototype OO languages, in the sense that they didn't have "magical properties" like permissions and locations built in like MOO, and they provided multiple inheritance and, in the case of ColdMUD, also had lambdas and lightweight objects ("frobs") and in the case of CoolMUD a simple form of federation/object distribution. I recently dug up and archived the original ColdMUD sources at https://github.com/rdaum/coldmud https://github.com/rdaum/coldmud. There's a link to the (still maintained and used) Genesis fork from there. CoolMUD may have been lost to time. There was also FMPL, which was a nice and interesting scheme-inspired MOOish thing that was made by Jonathan Blow, who has since apparently gone on to become a famous game developer. (I messaged him a couple weeks ago asking if the sources were around anywhere and he thinks they're lost.) I don't think there's necessarily any straight line from Self to LambdaMOO, but I always wanted to ask Stephen White about it. It may be more that he fell into the prototype model naturally just from how authoring in those kinds of MUDs work. (Then again LPmud/LPC looked nothing like that) In a bout of unemployment after the .com crash I wrote my own language/server in a similar vein. But it had multiple dispatch and other stuff going on. Of course never finished. Anyways, I could go on at length on this topic. You probably know all this already. Thanks for bringing this into this thread. I wonder if we knew each other?
- fzzzy 4y agoVery cool, thanks. I don't know a lot about other MUDs besides LambdaMOO.