Comment by Scarbutt
7 years ago
I would say "real time graphics" is one of the niches FP is not well suited for, most business software doesn't need to work at the level of the machine.
7 years ago
I would say "real time graphics" is one of the niches FP is not well suited for, most business software doesn't need to work at the level of the machine.
There is certainly prior art for complex games running smoothly in Haskell: https://wiki.haskell.org/Frag
This particular solution used functional reactive programming, essentially a composition of signal/event processing functions/automatons.
Ten years ago, that was the only substantial game written in Haskell. That you're citing that same game now is a bit telling.
Note the upload date:
https://www.youtube.com/watch?v=0jYdu2u8gAU
Ok here's a talk about making Haskell games that took place last week: https://keera.co.uk/blog/2019/09/16/maintainable-mobile-hask... I don't deny that making games in Haskell is niche, but it's certainly possible. Frag was just an example I remembered (ten years is recent for an old git like me).
If I remember correctly, in that thesis the author mentioned explicitly that the game didn't run very fast. If you watch the video from 2008, the in-game stats list framerates >60fps but the game itself is very laggy. Maybe there is a separate renderer thread?
Ironically the first CAD workstations were developed in Lisp, and Naughty Dog is famous for their Lisp/Scheme based engines.