Live data from Hacker News

The Verse Programming Language [pdf]

simon.peytonjones.org

181–190 of 387 posts

Re: The Verse Programming Language [pdf]

#181
post #93
post #53

For those wondering if there's actually something relevant to the Epic's approach to the metaverse: there's not beyond slide 3. Everything after slide 3 is a description of the semantics of a novel functional logic programming language, the sort of which you'd expect you'd get if you paid the world's premier Haskell core contributor a large sum to design a new language. Of course its intended audience is Haskell acad…

Simon my boy. The "View from 100,000 feet" slide does highlight the kind of experience SPJ would have in identifying where Haskell lacks a bit in pragmatism as a basis for a new, but not super different language. Hopefully the tooling is much better though.

I was expecting an entire section devoted to how this language would deliver on its promise on powering the metaverse. This was a nice post about a new language, but I was ready for a bitcoin paper.

Re: The Verse Programming Language [pdf]

#182
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 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. This is similar to how Icon works: https://en.m.wikipedia.org/wiki/Icon_(programming_language)

Yes, I noticed that, too. I used Icon to process a big pile of code at Apple in the late 80s and found it pleasant to work with.

Re: The Verse Programming Language [pdf]

#183

Verse reminds me of Mozart/Oz[1][2]. I really liked Oz, and thought it had a lot of potential. But its documentation was a big adoption barrier (scattered mess plus expensive textbook), and Oz failed to escape being a turn-of-the-century European research and intro-CS language. The intro-CS role perhaps lends plausibility to Verse's "a first language" objective, despite the off-mainstream computation model. Explicit…

I am happy to see i am not the only one who remembers Oz and i wonder if there are any connection between those projects.

Re: The Verse Programming Language [pdf]

#184

Earlier quoted context omitted.

> sequence of zero or more values You can try this type of programming at home, say in JavaScript Make any result or argument be an Array. The problem with nulls goes away because "not there" is represented simply by an empty Array (a.k.a "sequence"). And you will not get null-errors because you can write: newValue = someValue.filter(...) . map(...) ; You don't need to test whether filter() returns an empty array or…

Because now you can't differentiate between an actual empty array or an error. That's horrible. Or, you actually have to use nested arrays to describe that the result might be an error or an array. But now you have to deal with an array which might contain... zero errors or even multiple ones. That's really not a great way of doing things. Instead, do it the other way around and make null treatable in the same way as…

[deleted]

Re: The Verse Programming Language [pdf]

#186

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.

Big fan of <- for assignment for this reason.

Re: The Verse Programming Language [pdf]

#187

Off topic but wow cannot believe someone used comic sans.

It's just because SPJ likes it. He uses it for presentations a lot.

> This is a very funny question, "Why use Comic Sans?" So, all my talks use Comic Sans and I frequently see remarks like 'Simon Peyton-Jones, great talk about Haskell but why did he use Comic Sans?' but nobody's ever been able to tell me what is wrong with it. It's a nice legible font, I like it. So until somebody explains to me ... Ah, I understand that it's meant to be a bit naff, but I don't care about naff stuff, I care about being able to read it. So if you have got a sort of ... some rational reasons why I should not then I'll listen to them. But just being unfashionable? I don't care.

source: https://graphicdesign.stackexchange.com/questions/38226/what...

Re: The Verse Programming Language [pdf]

#188
I must be getting old.

Neither the prospect of spending time in the "metaverse" for "social interactions" nor a language design that requires you to keep in your head not just simple bindings to names but sequences of values, is just not very appealing.

What are younger folks thinking how they will be interacting with the metaverse? Less clunky VR glasses you can wear for more than an hour?

Re: The Verse Programming Language [pdf]

#189
post #8

I'm not sure about the "learn it as a first language" bit. x:=(1|2); y:=(7|8); (x,y) This stuff just doesn't seem intuitive to me. It's not verbose enough to be obvious to someone who doesn't know what's going on. Looks interesting though; that's a really bright group of people. Be curious to see where their project ends up.

Has it got currying? Partially applied functions passed around in folds and traverses are horribly difficult to read for beginners. Example: an Advent of Code solution posted in r/haskell for Day 10 this year, tell me how long it takes you to understand the function cycleStrengths. signalStrength cycle x = cycle \* x cycleGaps = [19, 40, 40, 40, 40, 40] cycleStrengths = foldr a (const []) cycleGaps . (\x -> (1, x)) w…

That kind of code is sometimes easier to write than read… you build it up incrementally. On the other hand it’s easy to refactor this to make it readable. Is Haskell supposed to be an easy language for beginners? Is Verse? Not every language should be.
Post reply on HN