Live data from Hacker News

The Verse Programming Language [pdf]

simon.peytonjones.org

131–140 of 387 posts

Re: The Verse Programming Language [pdf]

#133

Earlier quoted context omitted.

I have no experience with game programming. Why would you not want booleans when developing games?

Not a game dev, but I suspect that it might be to avoid branching (which slows down processing)

Branching is not a bottleneck in games.

Re: The Verse Programming Language [pdf]

#134

Earlier quoted context omitted.

I 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.

I 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.…

I underestimated your disagreement with the metaverse motivation, taking it as "I don't get it" versus "I don't think that's true/right/good/worthwhile/honest/whatever".

I wouldn't take your skepticism as uncharitable as much as realistic. If a company is trying to apply some abstract theory to solve a problem, they might hire a theoretician to work on it. They'll say "We are advancing X theory to solve Y problem for our customers". Well, the "we" in there is one dude and his motivation certainly isn't Y. He'd be working on X regardless. Y is just the reason he's getting paid. That's not exactly what's going on here, just sayin distorted motivations aren't that rare or even really that nefarious.

On the not-newness, I think that's true, too. You can justify it by saying that a metaverse will have the same problems in different proportions. This would justify approaches with tradeoffs that wouldn't make sense in other situations. It looks like it's optimizing for a system with high concurrency, weak coordination and on one platform. So like Erlang at Ericsson but more programmers, or like the internet but less independent.

Thank you for sharing the Fortress example!

Re: The Verse Programming Language [pdf]

#135
Functional programming as an introductory language? Maybe it's just me, but functional programming is a steep hill to climb, it has always felt more akin to mathematics than, say, scripting.

To this day I have still never really "got it". From what I can see, the people who love it really do love it, maybe one day I'll give learning it another shot.

Re: The Verse Programming Language [pdf]

#136

I still don’t get why people would want to type ‘:=‘ instead of just ‘=‘, but okay.

Confusion between '=' and '==' is a typical pain point that beginners have when learning to program. Plus it is super at odds with the notation we all learn in math.

':=' is didactically better because it shows that assignment has an direction. It also leaves '=' for actual equality.

Re: The Verse Programming Language [pdf]

#137

Functional programming as an introductory language? Maybe it's just me, but functional programming is a steep hill to climb, it has always felt more akin to mathematics than, say, scripting. To this day I have still never really "got it". From what I can see, the people who love it really do love it, maybe one day I'll give learning it another shot.

I dont remember which paper, but there was once a FP vs OO for learning paper that showed that there was not much difference in speed of learning: but that was on total beginners. Since most langs are OO/imperative, the FP-style is simply less common, thus a steeper learning curve than the next OOish/imperative language.

Re: The Verse Programming Language [pdf]

#138

I'm confused by the Nested choices and funky order slide. How does x:=(y|2); y:=(7|8); (x|y) Give only (7,7), (8,8), (2,7), (2,8)? What about (7,8) or (8,7)?

It can't be either of those, because any given outcome is forcing a single value of y (or any variable in general).

Re: The Verse Programming Language [pdf]

#139
post #26

This looks incredibly ambitious: - There are no booleans in the language! Conditionals can still succeed or fail, but failure is defined as returning zero values and success is defined as returning one or more values. - Verse uses a so-called 'lenient' evaluation strategy which is neither strict nor lazy, but somewhere in-between ("Everything is eventually evaluated, but only when it is ready") - an expression does n…

There's really not much new here. All these ideas have been used in other languages previously, but perhaps not in exactly this cocktail.

I'm decidedly in the not convinced camp.

Re: The Verse Programming Language [pdf]

#140
post #26

This looks incredibly ambitious: - There are no booleans in the language! Conditionals can still succeed or fail, but failure is defined as returning zero values and success is defined as returning one or more values. - Verse uses a so-called 'lenient' evaluation strategy which is neither strict nor lazy, but somewhere in-between ("Everything is eventually evaluated, but only when it is ready") - an expression does n…

> This all looks very mind-bending to me (in a good way). Perhaps Verse will one day be as influential for PL design as Haskell has been. I'm not convinced. Making non-determinism a first-class feature in the language might be good if you simply care about logical specifications that might enable you to prove something correct, but a real-world program implementation has to make heuristic choices for efficiency as to…

But it's very much not non-deterministic. It's a deterministic choice. You can give it an exact semantics.
Post reply on HN