News for hackers. Stuff that matters.
Re:Crafting Interpreters: Classes by munificent on Monday October 30, 2017 @01:44PM (#15587175)
Oh, man, that's a good question. I still really really like multimethods, but I ran out of steam on Magpie for a couple reasons:

1. Julia came out. It looks to me like a really nice language that is heavily based on multimethods, and is orders of magnitude more mature than Magpie. In many ways Julia fills the niche I was aiming for with Magpie and probably better than I could have.

2. I hit a dead end in the VM implementation. This is an amateur mistake on my part, and obvious in retrospect, but it turns out writing a VM in C++ with virtual methods and also using a moving GC is a Bad Thing. It means in the middle of a method, "this" could disappear out from under you. Once I realized that, I realized I'd need to significantly rework the entire VM to fix it. Oops.

3. I'm not a sophisticated enough VM hacker to implement multimethods efficiently. I might get there eventually, but getting Magpie to a state where it's fast enough to be usable for real programs is very likely beyond my skills, especially with my limited free time.

Wren was designed deliberately to be a language that I personally have the ability to design, implement, and ship. There's definitely something to be said for being more ambitious and trying to push one's own envelope, but I wanted Wren to be a think that I could make and get to something usable with a realistic amount of effort.

Re:Crafting Interpreters: Classes by fasquoika on Monday October 30, 2017 @05:07PM (#15588899)
Have you looked closely at Julia, or are you just kind of aware of its existence? I've been learning it recently, and I'm actually quite impressed with its suitability as a general purpose programming language because of how much of the marketing is oriented toward scientific uses. I'm going through Crafting Interpreters and translating it into Julia (mostly so I'm sure I understand what I'm reading) and it's been somewhat interesting to not have to deal with the expression problem.
Re:Crafting Interpreters: Classes by munificent on Monday October 30, 2017 @06:40PM (#15589613)
I'm slightly more than just aware of its existence — I've read a bunch of docs and seen some talks. But I haven't sat down and written any code myself yet.

> it's been somewhat interesting to not have to deal with the expression problem.

Yeah, I think it would be really fun to hack on a compiler in a language with multimethods.