lmm comments on June 2014 Media Thread - Less Wrong Discussion
You are viewing a comment permalink. View the original post to see all comments and the full post content.
You are viewing a comment permalink. View the original post to see all comments and the full post content.
Comments (95)
It might be possible to move on with a "sufficiently advanced compiler" for Haskell or the like, but barring that I think game devs for performance-intensive games will still want more precise control over memory usage. I predict we'll see widespread use of "functional C++" (eg Rust, or C++ 11's functional features) before "low-level Haskell" (eg ???).
As far as I know Haskell's performance isn't considered predictable/reliable (mainly due to GC and lazy evaluation) enough for games. If even multi-threaded C++ is still too slow for what you want to do (eg have 10000 people on one server in real-time), Haskell isn't going help.
At one point Epic was looking at Haskell, but recently they've actually gone the other way, abandoning embedded scripting languages in the newest version of the Unreal engine in favour of doing everything in C++ (although I think that was as much about consistency as performance).
(By the way, as a Scala dev I'd personally rather write Haskell than C++, and C++ is one of the things keeping me out of the gaming industry, but personally I'm not optimistic).
I've worked with videoconferencing software written in Haskell. Realtime performance is certainly possible, though whether the industry will accept that is another question.
Videoconferencing uses fairly consistent processing/memory over time. The load on the garbage collector has low variance so it can be run at regular inteverals while maintaining very high probability that the software will meet the next frame time. Games have more variable GC load, so it's more difficult to guarantee no missed frames without reserving an unacceptably high time for garbage collection.