Hacker News new | ask | show | jobs
by mtomczak 6211 days ago
I've seen Mono used to great effect in the Unity 3D game engine (http://unity3d.com/). Game engines are one of those interesting spaces where speed matters quite a bit, but so does ease of modification; you want your developers to be comfortable enough to implement whatever crazy ideas are designed up for game mechanics, and you need to be able to make sweeping changes to game logic quickly. But you need those implementations to be fast as well. With its multi-language support and JIT-compiled nature, Mono seems to sit at an interesting saddle-point that makes it attractive to applications like this. It's also cross-platform compilable, which in this age of multiple consoles-plus-PC-plus-mobile platforms is extremely attractive.

I couldn't tell you why they wouldn't use Java, however.

1 comments

> I couldn't tell you why they wouldn't use Java, however.

Visual Studio and value types come to mind.

Visual Studio is not a factor here, value types, delegates (aka safe function pointers), mono SIMD and C# are the factors that mono was chosen over Java. C# is more expressive and concise than Java, C# supports unsafe (pointer) operations inside unsafe blocks which is very valuable for a game engine if such a thing is required. Mono has a more powerful eventing model through the use of delegates, where the Java equivalent of using anonymous inner classes is much more syntax and runtime heavy. C# supports semantic closures and has iterators, very useful features for scripting support.

Plus Mono is more open than Java, was developed by open source community, therefore was already more easy to modify than Java, which has in house developed source.

My 2c.