You made alot of good points there, and pretty much just helped enlighten people that C# is more flexible, intuitive, and promising then Java. I'm sure Java has its strong points to, but multi-platform is not one of them. The Mono project has made an alliance with Microsoft so technically .NET is not limited to Windows OSs. In 2006, Novell(owner of Mono at the time) and Microsoft made a joint patent agreement between Novell's and Microsoft's products. From the moment that takes place, rights are interchangeable. So because Microsoft owns, contributes, condones, and endorses to the Mono project then the Mono project is apart of .NET Framework and is most certainly compatible with other OS's such as Linux and Mac OS X.