Or they might be just creating a Yet Another Language precisely because they are luminaries of functional programming. Those often tend to chase a yet another unattainable dream of "the one true functional language".
When you type the words "the really know what they are doing" when talking about a language for game programming, I would expect people who know about game programming first, and about language design second.
There's a reason C/C++ and even C# are the go to languages for game programming, and not Haskell.
For example, the only presentation we've seen so far literally talks about Yet Another Language without mentioning a single problem it solves for game programming.
> I would expect people who know about game programming first, and about language design second.
Well, one of the authors is Tim Sweeney.
> There's a reason C/C++ and even C# are the go to languages for game programming, and not Haskell.
It's interesting that you list those because none of them were originally designed for games. Well, C++ sort of was if you consider network simulations to be game-like.
I share your concern that this language looks like they packed a lot of functional programming candy in it and maybe not so much "actually reasonable for building a game" features.
But I think you're also underselling the expertise of the people involved. Also, my impression is that Verse is mostly intended as a game server language. I don't think you'll be writing physics or rendering in Verse. From that angle, a heavy focus on immutability, software transactions, etc. can make a lot of sense: it's trying to make it tractiable to author very large distributed systems with a lot of mutable state.
> It's interesting that you list those because none of them were originally designed for games.
And yet, people are using those.
So, an introduction of a "programming language for game programming" should at least have:
- what are the challenges in game programming
- how they are solved or not solved by existing languages, and why people are using them
- what exactly this new language is bringing to the table, and how it solves those problems
What we've seen so far "loom at this amazing language that solves everything! Let's look at syntax and types".
> But I think you're also underselling the expertise of the people involved.
Or people are overselling the expertise and are blinded by the bright names
> Also, my impression is that Verse is mostly intended as a game server language.
See, you only have impressions and don't thinks, because there's really nothing about what the language really does, and what problems it aims to solve. Beyond some poorly executed marketing fluff.
C/C++/C# are indeed often used for game programming but when it comes to gameplay logic scripting there's a lot more options. Lua, blueprint, lisp, angelscript, unity's graph language etc..
Lua started out life as a simple language for extending larger projects and then repeatedly broke backwards compatibility to make the language simpler. For example it's lexically scoped now but it wasn't to begin with.
Contrast with python, which started out life as a simple beginner friendly language, then added lots of complexity, then had the totally botched transition from 2.7 to 3 and is now growing a static type system.
Lua is also very easy to embed in other systems. Like sqlite.c levels of easy to embed.
I think that's definitely the reason from my talks with the engine programmers who added lua support to our bespoke engines. Lua binding is quite easy.
Long ago I evaluated a few scripting languages to add to a Doom engine, I think I considered Ruby, Lua, Python, JavaScript, and Squirrel. I ended up choosing Lua because:
- easy to embed
- good ecosystem (in particular needed Lua GObject Introspection for pangocairo)
- usable from C (not just C++)
- not white space sensitive
- skills translate to programming in the large
- it's fast
A lot of games let you write little snippets of code or what have you in a console or text box. Python is really bad at handling that because of its whitespace sensitivity. It's also the slowest popular language by far.
Slowest in runtime performance I'd guess as the CPython runtime isn't really known for its performance. Other projects such as PyPy implement a much faster interpreter/JIT compiler but there are some compatibility quirks to use them.
Runtime; there are things you can do, but generally Python takes more time and memory to do things than other languages/platforms. It got better in 3.11 but AFAIK it's still the slowest.
It’s not super difficult to embed python, but it ain’t easy. It is also very slow and insists on stat’ing a million files all over the disk when starting up.
It’s also hard to stop python code from doing things it really shouldn’t, like calling os._exit.
Oh, you also have to deal with linking against the right crt on windows.
Sure, but my point was that some such YALs are just overgrown DSLs (cough UnrealScript) that find themselves facing the same kind of design problems that have been solved decades before by more forward-thinkers. In this case, these are good designers with decades of deep experience, and who I expect to have solved many design issues already.
C# is uniquely good at being a GC language that can easily interop with C/C++ code whilst also being quite performant itself. This is why it’s used for so many game engines.
There are some very obvious influences from Skookum script in Verse and that was designed for gameplay programming. I’d be surprised if Verse turned out to be a poor fit for games.
Why would Epic, owners of the primary reason why C++ is gravitated towards in game programming, spend time and money creating Yet Another Language just to satiate luminaries?
I'm confused by this example, Jonathan Blow sounds identical to LANGUAGE EXPERTS here. If anything the difference stems from humor, but they're both doing the exact same thing - arguing Yet Another Language is better.
> I'm confused by this example, Jonathan Blow sounds identical to LANGUAGE EXPERTS here.
No, he doesn't. He lists what problems he's running into, the challenges he faces and what his language is trying to do to mitigate that.
The two presentations I've seen on Verse are: "look at this python-like language and its syntax" and "look at the types in this language!".
We've yet to see anything of any substance that actually describe the whys and the whats of the language beyond "oh yea we use STM to code for multiple servers" (which is a nonsensical statement)
Generally speaking that's true. But I'm not entirely sure many luminaries would be satisfied being relegated to being the "Fortnite language". Surely they have larger goals here and it's why Epic is bothering when so much of their ecosystem relies on C++ currently.
I suspect they intend to roll this out the unreal engine some time in the future. Many people have been asking for a text based approach to game scripting (often it's ex-unity people asking for C# support.
When you type the words "the really know what they are doing" when talking about a language for game programming, I would expect people who know about game programming first, and about language design second.
There's a reason C/C++ and even C# are the go to languages for game programming, and not Haskell.
For example, the only presentation we've seen so far literally talks about Yet Another Language without mentioning a single problem it solves for game programming.