I've been reading a fair bit about Monorail and the Castle project recently because I would like to write an article on both (also because I'm insanely curious but that is another story entirely). In my travels this evening I came upon a rather interesting blog post in which Jeffrey Palermo talked about a possible future version/flavor of ASP.NET based on a Model View Controller Architecture.
While the story itself is certainly interesting, the comments quickly get quite heated as proponents of the Monorail project argued that Microsoft is re-inventing the wheel and stealing the thunder of good Open Source Projects. On the other side, the Microsoft army pretty much state that the Open Source Community isn't doing a good enough job and Microsoft need to step in and show everyone how it is done.
Here are two of my favorite comments. They are both fairly long but I didn't want to edit them.
By the way... all this talk about "Monorail already does that!" is crap. I applaud the efforts made by the Monorail guys/gals, but it's really such a hacked conglomeration of libraries (and in a lot of cases... libraries/projects that have lost steam or do not have a native .NET following) that it's only for your vodoo developers who are willing to build a project on technology that might fade away on a whim or change course. Not to mention all the hoops you have to jump through in order to get started. Rarely does Microsoft ever release a mainstream product without substantial documentation and examples to get you up and running. I know a number of people who have browsed through the Monorail site and have either been discouraged by the complexity of the solution, unimpressed with the progress or been utterly confused as to where to start. We're not all genius code monkeys who have 6 hours each night to devote to tinkering around with experimental frameworks.
In direct response to that we have the following.
Nonsense. The only reason some of what you say is true is exactly because of attitudes like yours. MonoRail and projects like it often end up failing because they end up competing against MS. Why doesn't MS nurture a development community that acknowledges many of these OSS projects? Why doesn't MS promote, MonoRail or NHibernate, as an example of the really cool alternative architecture that can be built on top of .NET technologies?
MS really doesn't do a very good job of leading in the realm of engineering and architecture.
At first I thought that this was all a little elitist from the Microsoft enthusiasts and alarmist from the Open Source Community, but then I remembered NDoc. No one should ever forget NDoc.
What are we doing to our open source communities? Should we support a product just because it is Microsoft or should we be judging software based on it's own merits? Is it up to Microsoft to promote open source products?
The truth of the matter is that Open Source software is always in a sink or swim style innovation whirlpool. If people stop finding it useful they will move away. As more people move away, fewer changes will be made. As fewer changes are made, less people will find it useful. And so on.
Closed Source commercial applications also suffer from this phenomenon but they usually have a buffer of releases to "get it right". The whole give us $30 now and we'll give you that feature later on is a compelling argument because handing over the money will give you the right to complain if things don't go as planned. In open source, effort is often related directly to consumer enthusiasm and feedback.
So how do we save open source projects and support teams of people who just write software because they enjoy it? Start by finding an open source project and just use it. Give feedback to the team that writes it. If you spend the 6 hours each night tinkering around with experimental projects then write an article boiling it down for those that don't have the time.
Seriously, become an evangelist. Generate some interest. Most open source coders are in it for fun. They don't get out there and show off their stuff because they'd rather be writing code.
If you write an article and it helps a bunch of people and they communicate their needs back to the dev team, then the product will move in a direction that is useful to the community at large. As that happens the project will gain momentum and new versions will be released quicker. As new versions/features are released, more articles explaining the new bits will need to be written and so on. Eventually the community grows large enough that there will be books written. Look at DotNetNuke among others.
On the other side of the coin, how is it that the open source community can rag on Microsoft and it's products as much as they seemingly do and still be threatened by them at the same time? Are they really so frightened that the man is going to show their potential customers a better way and steal their sales? They don't hate Microsoft they hate the fact that Microsoft has a marketing department. That they can get the word out. We can do that too.
There is one thing that Microsoft is seemingly coming to realize about the open source community and that is that communication with your consumers is key. If you can guide a product where the customers want it to go early then your potential profits are massive. A well run open source project can harness the exact same power but they do not have the same commercial drive. They depend on the customer to want to provide that feedback.
Well. That went on longer than I expected it to which is unfortunate because I have many other things to say on the matter. But as I do have a day job, and midnight rapidly approaches, that will have to do for now.
No new comments are allowed on this post.