I mean it's either genius, madness, or both. Most programming languages I can least understand the general gist, the core motivation, whatever. I have a lot of respect for Epic Games so I read through most of it but I have to say I'm still non the wiser. If forced to summarize I'd say.. it's some kind of Haskell-ish language where the types themselves are defined by ... runtime functions? With some attempt at also be…
My guess would be to store game logic as data, as process it in a distributed way. An entity could have multiple rows for it's attributes and "methods", and the runtime just processes it
The Verse Programming Language [pdf]
381–387 of 387 posts
Re: The Verse Programming Language [pdf]
#382Earlier quoted context omitted.
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…
> you can't differentiate between an actual empty array or an error Empty array in this pattern does not represent an error. It represents the fact that no values you asked for can be found. It is like querying a database. It is not an error if your query finds no values. The calling code that receives the empty array might decide it is an error or that it is not. And of course you can always throw an error, that can…
Re: The Verse Programming Language [pdf]
#383These 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 accurat…
Re: The Verse Programming Language [pdf]
#384Earlier quoted context omitted.
> you can't differentiate between an actual empty array or an error Empty array in this pattern does not represent an error. It represents the fact that no values you asked for can be found. It is like querying a database. It is not an error if your query finds no values. The calling code that receives the empty array might decide it is an error or that it is not. And of course you can always throw an error, that can…
You can just replace "error" in my post with "not there" and the meaning stays the same though.
You can say a result was found and that result is an array, possibly an empty array. Or that no result was found which is indicated by returning TOP-LEVEL empty array.
Re: The Verse Programming Language [pdf]
#385Earlier quoted context omitted.
You can just replace "error" in my post with "not there" and the meaning stays the same though.
No not really. If every result is an Array then such an array can contain an empty array and then it itself is NOT an empty array. It's all about how you specify the semantic contract of your function. You can say a result was found and that result is an array, possibly an empty array. Or that no result was found which is indicated by returning TOP-LEVEL empty array.
> 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.
In other words: now you have Array>
And now it is only convention that the outer array must only have 0 or 1 elements. But there is no guarantee and the compiler won't help you since it cannot know. That's why this is the inferior approach compared to turning it around and making it so that null can be mapped and flattened.
Re: The Verse Programming Language [pdf]
#386Earlier quoted context omitted.
Oh this is new because our notion of expressions; thus functions, are different. Sure you can have terms in types in dependent types; thus functions in types is nothing new. But again, we have a much different notion of function here. And if anything I would say types in Verse are much closer to refinement types because of its ability to apply constraints. But they are still not the same thing.
Yes it is different but it doesn’t seem to give you anything that is better than what DT and refinement types give you. So why not simply use DT or refinement types? I know that in research you have to come up with something new to write papers about. Even if it isn’t actually better in practice. However this seems to be aimed at being a practical non-ivory tower language?
As of now all we have is a core language. But its not hard to read between the lines to anticipate how powerful it can be so that features that the industry needs can be built upon it.