Live data from Hacker News

The Verse Programming Language [pdf]

simon.peytonjones.org

211–220 of 387 posts

Re: The Verse Programming Language [pdf]

#213

(meta) Interesting to go with what looks like Comic Sans in this day and age. Deliberate trolling?

Using it as slide text isn't so bad. Placing parts of code, like as[i] in it, is pretty silly though.

My personal preference for a typeface that gives off the feeling of handwriting is an italic one. Palatino's italic bold is quite nice for that.

Re: The Verse Programming Language [pdf]

#215

Earlier quoted context omitted.

In Icon a function ("procedure") can: fail, return a value, or "suspend" (yield) a value (and then again and again). The difference between returning and suspending being that a generator that returns cannot be resumed again. That difference was needed (IIRC) because the alternative would be to end the generator with failure, which could be confused with failure in a boolean sense. jq gets this better by saying that…

Boolean values are inherently a sign of an insufficient data model. Booleans carry no inherent meaning. They don't tell you where they came from or provide any context about what operations or data they are guarding. If your language lets you declare your own algebraic data types, there's no need to lean on a built-in Boolean type. You can create types that actually carry all the information you need so that pattern…

> Boolean values are inherently a sign of an insufficient data model. Booleans carry no inherent meaning.

Would you say the same about Ints or Strings?

Re: The Verse Programming Language [pdf]

#216
post #88
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.

No programming language is obvious to someone who doesn't know any programming. This particular example is even less clear because it's purely abstract; it literally doesn't do anything. If it were suit := (clubs | diamonds| hearts | spades); value:= (2..10 | J | Q | K | A); deck := card(suit, value) You would recognize it instantly.

Your objection does not make sense. The code is simply bad and you replaced it with better more verbose code.

Re: The Verse Programming Language [pdf]

#217

I honestly fail to see what properties of the language has anything to do with the metaverse, or millions of devs, etc... At first I though the "choice" construct would be a way to distribute code execution among multiple computers (using the fact that in a grandiose metaverse, everything would be a connected computer with lots of compute time to spare ?) but there is not much detail. Also it's not obvious from the s…

> I honestly fail to see what properties of the language has anything to do with the metaverse, or millions of devs, etc...

They're pushing transactions straight from the beginning, which I think is the sanest way for multiple actors to all try to interact with the same world.

And for the compiler to stay sane in dealing with transactions, it's necessary to mark effects, which is also in the slides.

The inclusion of effects & transactions already puts it way outside of the mainstream, even without the Logic stuff (which I admittedly don't understand yet)

Re: The Verse Programming Language [pdf]

#218
These slides need a lot of work. I'll read the paper later, but the slides really lack context and motivation.

* I'm a little disheartened to see "Objectively: no. All languages are Turing-complete" in the context of the question of needing another language. It's a throw away comment and largely irrelevant when considering the actual use of programming languages. If one has to state this platitude, it is more accurate to say "theoretically" rather than "objectively", as I think the latter is actually debatable.

* The utility of the choice syntax over comprehension syntax is not clear at all. The choice thing seems neat, but I don't understand why comprehension semantics weren't just extended. Every example of choice seems to refer to sequences and comprehensions anyway to make the meaning clear. Will have to see more examples. Right now, the syntax seems a bit quirky, especially with `false?` thrown in.

* Why is `fst` not named `first`?! The shortening is maddening to me. It saves two characters (negligible savings), decreases readability, and first is probably just as fast to type.

* I'm still not sure why they're creating this language, what problems it solves, and what any of it has to do with a metaverse.

These are professors and language experts, so I'm a bit surprised by the presentation. Also, the idea that this language will be learnable as a first language is ambitious, if not naive.

Re: The Verse Programming Language [pdf]

#220
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…

> Perhaps Verse will one day be as influential for PL design as Haskell has been.

Has Haskell really been that influential though? It seems to me that MLs, Lisps, Schemes, and even Erlang have been more influential.

Post reply on HN