Miguel de Icaza Explains How to "Get" Mono
Subject:   Other language support?
Date:   2005-03-25 06:34:27
Response to: Other language support?


Now that gcc got a new intermediate representation that is more flexible, we think that it may be possible to have a backend targetting CLI, in that way, all fine gcc front-end including C/C++/Fortran/etc. may be able to be used to program for Mono.

Also the main reason we didn't tackle the C++/CLI issue was that MS did it wrong the first time, by mixing native code with fully managed (bytecode) code, that is SIMPLY NOT PORTABLE. Now they've come with a better solution, but surely, the needed language extensions means your old code isn't readily reusable anyway.

Also, as Miguel said, with Platform/Invoke (similar but much simpler to use than Java's JNI) we can call most native libraries, even in a cross-platform way if the API is preserved among native implementations of the library.

So if you just want to reuse some C++ code in a new Mono-based solution it is easy.

Having written and mantained some million or so lines of C/C++ code in my career I can say that I prefer C# every single day.