Re:Beyond Functional Programming: The Verse Programming Lang...
by Terretta on Monday December 12, 2022 @07:04AM
(#33953782)
> Finally, people saying it looks difficult to learn…
“To answer "what does this program do, or what does it mean?“ just apply the rewrite rules.”
Whenever a senior engineer* uses the word "just" you're about to have a bad time.
* Or an expert in anything, really…
Re:Beyond Functional Programming: The Verse Programming Lang...
by cottenio on Wednesday December 14, 2022 @02:33PM
(#33988875)
Hi, fellow MUD/MMO person here with an additional background in blockchain.
Can you walk us through where you think a language like Verse really shines with transactionality versus the current server authoritative models we see implemented in [language here] using [framework/pattern] here (like C++ and ECS)?
I've done my fair share of FP (got into Haskell years ago) so I see value here, but I'm not sure I'm grokking your level of excitement and would like to understand better.
Transactionality. Check. ACID type semantics are absolutely key to handling the concurrency issues created by a world with thousands of authors/programmers and concurrent actions. This is not the place for locks.
Declarative. Essential. This is going to be the only way to manage the complexity of interactions on a large scale. Though perhaps I don't jibe with the particular form described here and would instead encourage a more relational/datalog type approach, but that's my bias.
And management of mutable state / side-effects, through functional type approaches also seems key. Not just for expressing problems elegantly, but also for security / visibility management.
Some of the interesting things in here (approach to truth values etc) have a vibe similar to the approaches behind evaluation in a Datalog but also look similar in spirit to some of what's behind my employer's (RelationalAI) knowledge management programming language, Rel: https://docs.relational.ai/rel/primer/overview
Finally, people saying it looks difficult to learn, I think that for many people working in this kind of environment... it could be their first programming language. So they don't come with the same baggage & expectations about what programming languages are. Back in the 80s and 90s there were all sorts of "game builder" (esp for interactive fiction) type languages that often had what we'd now see as "odd" semantics. But this was part of the advantage. Heterodox approaches often bloom in domain specific locales.
Going to spend some more digging into this after dinner. Neat stuff.