4 ms·
The metaverse angle doesn’t make much sense to me but whatever. The big idea I see is that prolog-style backtracking logic becomes a first class notion in the
by dan-robertson 4y ago
The metaverse angle doesn’t make much sense to me but whatever.
The big idea I see is that prolog-style backtracking logic becomes a first class notion in the language – every expression denotes a sequence of values reached through backtracking-like behaviour – which allows mixing logic-programming with a more familiar kind of functional programming. Though perhaps there are other ideas too.
I think it will be interesting to see where this goes. Perhaps this will be another Fortress but SPJ is well regarded, has written a bunch of interesting papers, and has a bunch of experience managing a programming language project from haskell which will hopefully carry over.
- travisjungroth 4y agoSee slides 2 and 4. He has an idea of what a metaverse would look like and the technical challenges that will bring up. The language is meant to help solve them.
- dan-robertson 4y agoThanks. I re-read them but the metaverse angle still doesn’t make much sense to me. I don’t think that’s super relevant to the PLT stuff though.
- travisjungroth 4y agoI think it makes more sense if you don't think of it as an angle but a motivation. We've all been attacked with stuff like "shopping lists but on the blockchain!" for so long. This isn't like that. It's that they're foreseeing a technical problem of a shitload of concurrency and extra pain of API changes (metaverse) and this is meant to help.
- dan-robertson 4y agoI didn’t find the metaverse stuff to be a compelling motivation for the programming language features described. It felt to me more like ‘I had some ideas about programming languages after 20+ years of Haskell and research. Here’s my plan to unify logic programming with more normal functional programming (also we’re getting rid of monads). By the way my boss cares about the metaverse.’ But maybe that is too cynical. The metaverse things used to motivate this language don’t seem new to me either. Aren’t they basically ‘works well with concurrency’ and ‘somehow the language that finally makes it easy for different programs written by different people to talk to each other’ which don’t seem to be new goals in programming language design as far as I’m aware. But maybe I’m being uncharitable in my interpretation. I’ve not looked at the associated paper or tried to understand what the metaverse is so maybe things are better discussed there. Or maybe they are glossed over because the presentation was for PLT people rather than metaverse people and I think many of the former would be turned off by a talk about the metaverse. This doesn’t strike me as a very serious attempt to predict the future and design a programming language based on that prediction (though few such attempts exist for the design of most things in tech, and they needn’t correspond to success). It seems more like taking a punt and exploring a new point in the programming language design space that may be relevant. I think it is interesting to look at what happened with Fortress for comparison: - Well known PLT person (Guy Steele of scheme, CL, Java fame) in a reasonably funded industrial research lab - they started with ideas about where computers were going around 20 years ago. So high core counts, big memory vs cpu frequency divergence, NUMA/HPC architectures. And an increasingly difficult amount of legacy Fortran code - developed an idea for a language that would be easier to write parallel scientific programs in - eg functional, map-reduce paradigm - added in some known features like typeclasses (monads for map reduce) - some other random features/ideas - wrote a bunch of papers - not that much actually came of it, I think Maybe they weren’t good at executing on making a language people wanted, or maybe that was never the goal. Or maybe they were too early – a lot of the ideas became more important with gpu compute but most people still write those programs at a much lower level.
- cmrdporcupine 4y agoI followed Fortress eagerly at the time. I'd say if you want to see what eventually came of it, look at Julia. It's a pretty clear descendant.
- dan-robertson 4y agoI think one must squint a lot to see Julia as a fortress descendant. They seem much more like siblings trying to solve similar problems. Like fortress, Julia does have a reasonable amount of CL/Dylan ancestry with multimethods, etc, but didn’t try any of the fortress style efforts around typeclasses and writing varied code that magically parallelises – you can still get good perf doing typical vectorised stuff like numpy/APL/R, and you get decent perf in loops etc due to the jit and aggressive monomorphisation, and there is fancy stuff for clusters or gpu arrays, but it doesn’t try to achieve the things fortress wanted like making it easy to write code that can be more magically parallelised.
- cmrdporcupine 4y agoI think in the constellation of languages there's still more intersection of "feature dots" between the two than there is disjunction. Multimethods & numerics emphasis alone makes them uniquely similar, as the latter especially is not a feature that has been mined well in other languages. Some of the influence is quite conscious, too, from my reading. Though as you mention is obviously a lot of common influence from Dylan and Common Lisp. And here's a talk by Guy Steele about the Fortress experience, at JuliaCon: https://www.youtube.com/watch?v=EZD3Scuv02g https://www.youtube.com/watch?v=EZD3Scuv02g
- WillPostForFood 4y agoThis doesn’t strike me as a very serious attempt to predict the future and design a programming language based on that prediction I don't think it is trying to predict, it is purpose built to be the Unreal engine scripting language. I hate the word metaverse, but it will be a highly relevant, important language to online multiplayer worlds as soon as it is released (as soon as a month from now).
- Findecanor 4y agoI'd think the real interesting stuff would have been the transactional parts and the effects system. Unfortunately, these slides don't describe them; they just mention that they exist.
- qayxc 4y agoThe paper also stops before going into these. These were the bits that actually interested me, but alas, guess we'll have to wait for that.