Prepapre for Verse(Haskell) crash landing

The bean has just spilled and it smells rotten on arrival.
That’s exactly what I worried about. Too late to do anything right now.
If that’s what it is, I must say SPJ has put a curse on all of us.
Just take a look at this.
image
It ain’t going to be pretty and things will get worse as we get more extensions.
Call by reference by default? Didn’t it say all variables are value types???
‘=’ used as comparison and assignment at the same time???
‘|’ means several different things???

I had a pretty open mind when it comes to the new scripting language but it totally blew my mind.
I can’t find a single thing that I like except the Vision.
One can say Vision anything, but “learnable as a first language” ain’t going to be true.

I really don’t get this. What’s is this used for?
image
It seems that Sequence/Tuple/ListComprehention going to be a big part of the language and I start to smell Academic.
I so, Lisp-like syntax would’ve been a better choice; at least the syntax is simple and consistent.

And what about this?
image
For loop returning tuple instead of looping on something? Are we stuck with List Comprehensions only and no traditional iterators?

It’s too late and I’m really bummed out right now.
The only thing that I can hope is that they would go back to the drawing board.
Yeah, I rather want to have SK and we would’ve been a much better place if the Scientist had catered it instead.
Oh, well, whatever. We will just have to munch whatever they feed us.

1 Like

A lot of the ideas that seem quirky to you are coming from the logic programming paradigm. I, for one, am incredibly excited that a company is trying to mainstream logic programming. Basically, every statement is a predicate, groups of statements must all be true for the outer predicate to be true. There is no way for me to easily explain what that means but you can try to learn a little prolog in order to understand some of the concepts that are being proposed (I know, that is a slog but it is worth it): Amzi! inc. Adventure in Prolog
My personal favorite logic language is here: http://www.picat-lang.org/

Try to keep an open mind, this language actually looks like it would make many things a lot easier to express.

1 Like

Yeah, I’m familiar with Prolog but for game devs?? It might be good for Quest Machine or Planning but I’m not sure what the logic programming will bring to the table. Please let me know if you know of some good use cases.
Just a simple imperative language with real REPL, GC, and Coroutines will do; the simpler the better.
I have to say I’m very grateful that they didn’t go Pure Functional.
Tim is overly ambitious with Verse and we will see if others will embrace it.

Beyond Functional Programming: The Verse Programming Language (Simon Peyton Jones) - YouTube video released

2 Likes

For those that want the PDF link to the above youtube talk that JacobGood1 posted.

Beyond Functional programming: The Verse Programming Language:

Looking through it. There is a few things that I like, and a few things I am not used too. But some of the dislike appear to be optional approaches to particular problems so I can likely just not do those. Maybe I’ll change my mind as I absorb more of the language.

There is nothing I’ve seen that is like “Nope, this is a dealbreaker”. I am still planning on becoming a Verse Expert. It’s not quite what I was used too, but I am open to it making certain types of problems easier to have solutions for. I am still super excited and hyped to start using Verse. I can’t wait until its accessible to me outside of Fortnite ecosystem since I don’t really care about fortnite mods.

1 thing thing I noticed about a lot of the choice | operator and other things, is that is gives me a sense of GPU programming style or 1st class multithreaded support potential. Which I guess falls in line with functional programming.

Just saw there was a good 350+ comment conversation about it over at hacker news.
Although mostly traditional software engineers there and less game devs. There is variety of interesting comments

https://news.ycombinator.com/item?id=33946933

Yeah, we haven’t seen the complete pictures yet. Hopefully, the rest will make up for it such as SK style continuations. I was scared that it will force us Haskell’s pure functional programming to us. As long as it’s optional, it will be fine.

I will be creating educational resources as soon as the language is released, from looking at that thread, people are going to need it…

1 Like

Here is a nice summary of what we’ve seen so far about Verse: What's the deal with Verse? · ben🌱ui
Tho it seems the author is making a few assumptions in some points. Still, it’s a nice read.

It says, "all variables are effectively const"
Variables are not variable. Hmm…
I’m going back to being worried. Perhaps they are going Pure Functional. That’s the SPJ’s curse I’m talking about.

To be clear, I like Functional Language as long as it’s optional.
It can be fun to work with streams.
However, Pure Functional makes simple things complicated and overall it’s more burden than it provides when it comes to game programming.
You have to turn everything into streams first and then copy if you want to modify anything. In the dynamic nature of game programming, it’s very cumbersome and it can be inefficient if you don’t know what you are doing.

Considering they are primarily targeting fortnite mods only for probably 6+ months before they release to regular UE devs. I’m sure they will hopefully have enough situations to investigate/redesign/refactor for anything that does become cumbersome. I just hope limiting to fortnite mods only doesn’t somehow cause some bad assumptions for other gamedev scenarios?

There is a possibility that they are building ECS, a data parallel system that can scale to massive numbers disguised underneath.
Hmm…

Making variable reassignment immutable is not the same as making the value itself immutable. It could be the case that the value can be mutated, I take advantage of things like that in other languages sometimes. In the case of how cumbersome it is to modify state in functional languages, that depends on the language. Some functional languages make it harder than others, but I am sure that Verse, which is made for real-time interactive simulations, will not be overly cumbersome when it comes to “modification” of state. My only problem right now is that WE CAN NOT PLAY WITH VERSE =(

1 Like