I did some crazy research in the Unity game engine, particularly the sound engine of the iphone port.
My result so far is that there is about 0 - 80 milliseconds unpredictable delay for the sound engine, which makes it less suitable for real time audio applications.
However, I did find the engine extremely polished in every other aspect, the component approach (similar to mix-ins in Ruby) is so powerful. When I was using the engine, I kept thinking what if this is done in Haskell, and so far most of my answers are that there has to be a break through in Haskell tool chain in order to do what Unity can possibly do now.
Some background of Unity:
- scriptable part of the engine runs on top of Mono's runtime
- multiple languages (C#, Javascript, Boo)
- static typing, with optional dynamic typing
- type inference !!!!
- component based OO approach
- very very powerful runtime manipulation
- very high performance
- ahead of time compilation for iPhone, extra speed
- unbelievably polished workflow
- extremely friendly community
The Unity developers really know what they are doing!
Wish Haskell can compile to CLR ... :p