Mono had a lot of time to catch up, but as much as I respect the effort of the Mono team, the progress has been painfully slow. It took several years to even get the implementation of generics debugged. The last time I checked, implementation of web services (olive) was mostly one guy's job, and not even in the core system. Meanwhile, the gap is widening, and Microsoft is moving fast. At this point, nobody in the sane mind except the hardcore free software fanatics will ever choose Mono/Linux over .NET/Windows because it just makes no sense: Mono is epochs behind .NET in terms of functionality, and has negligible user base. How exactly is Mono going to catch up? Turn on a hidden antimatter quantum warp drive, or some other secred weapon from Sci-Fi novels? The Linux community has not embraced this technology, even though it was clearly a marvel of engineering and popped out just in the right moment. Indeed, some folks out there are still not sure that it "really flies". Nevermind that .NET is spreading to one platform (PCs, PDAs, gaming consoles, browsers, OS scripting, headless servers), programming languages and paradigm (dymamic languages, functional languages, you name it) after another. With this sort of attitude, surely it will never fly on Linux. How unfortunate. The Linux community had a huge head start with Java, but is blowing it big time, too. By the time this community realizes that managed languages were the key technology to focus on, .NET will be light years ahead. Who cares about superior package management if the development tools lag behind because the community has not actively promoted and developed and a single consistent modern development platform?