Why is there no .NET Community Process?
I was doing some research into general topics of software engineering and I came across the Java Community Process website:
The JCP is the mechanism for developing standard technical specifications for Java technology. Anyone can register for the site and participate in reviewing and providing feedback for the Java Specification Requests (JSRs), and anyone can sign up to become a JCP Member and then participate on the Expert Group of a JSR or even submit their own JSR Proposal.
Seems like a good idea to me, and there are lots of very well written specifications and reference implementations on the JCP website.
So why is there no .NET Community Process? Is that something that Microso开发者_开发技巧ft could or should start? Maybe they could install it on Codeplex.net and hand over the keys to the community.
Because honestly, trying to get anything done by a community process takes forever. I believe that's why C# caught up with Java; Microsoft controlled the whole process and therefore could make changes more aggressively than Sun could.
Not saying that a community process is a bad thing, just that it has its downside.
Because Microsoft as a corporate entity neither wants nor needs your (or anyone else's) opinion. It imposes a top-down will and may take advice from its own community (e.g. the MSDN) but at the end of the day will do what suits it (and its shareholders).
Sun's PoV at the time would have effectively been to get grass-roots buy-in by way of involving the "community". This wold build a critical mass with which it can compete with Microsoft. Problem is that the power of the community and that sense of ownership doesn't disappear at that critical mass stage, it just means you have more people with more conflicting opinions. Result: Java development slowed over time.
I would imagine it comes down to company culture and the purpose of the language. Java was intended from the outset to be a cross-platform... platform... that one could target and then expect your software to work on a multitude of OSes. Anything with a JVM, really.
Microsoft does not support cross-platform compatibility. Allegedly MS even attempted to hijack Java and turn it into a Microsoft-only platform. When that failed, they instead built the .NET framework
So back to speculation: Sun wants to encourage the community to support Java adoption on the maximum number of platforms possible, so they work with the community. Microsoft wants to appear to be friendly to the larger community so they tolerate projects like Mono, but they don't actually want it to gain enough traction to compete with their own implementation. To ensure this they must make it as difficult as possible to keep up with the Microsoft implementation of the framework, without doing anything overt that might cause bad PR.
精彩评论