This is not true. Yes, you can use C/C++ and VS still supports it. .NET is not crap. After JITting it, it is ofter faster that native code. (of course only if it is done well) And while native code is very good for system programming, managed code is way better for 3rd party apps. I haven't yet tried Java, so I won't prejudice it. But I heard several Java developers' complaints about it. Visual Studio 2010 for server and client side coding, Firefox+Firebug for client-side debugging, and Superpreview for debugging IE6's crappy behavior. And about the productivity of the ".net crap": VS offers a very nice code completion feature which I haven't seen (or not as sophisticated) in any other environments. The other is C#'s elegance and behavior. Look at its various features, eg. LINQ, lambda expressions, the event model, and more stuff. For example, when I develop my little app for Maemo (with Qt and C++), I very often need to search through various collections. With C++, I have to enumerate all the items and stuff, with C#, a single line can do it for me. And .NET can really handle exceptions and give meaningful error messages, while with Qt my app simply crashes without a message if something goes wrong (even if I wrap it in a try-catch block). Only in debug mode does it say something like "SEGFAULT". I really don't want to offend you or any people using different environments. I also don't want to flame on other environments, becuse what I don't know of, I don't form an opinion about. But really, I beg for someone making Mono available for the N900.