Competing with the community
Jeffery's post about Microsoft MVC prototype brought some interesting questions. The most interesting one is, why can't they just use MonoRail? It is here, it is mature, and the license allows it.
Jeffery's response to these suggestions was:
Reinvent the wheel? Microsoft doesn't have the option of incorporating MonoRail into ASP.NET. They don't own the intellectual property. Microsoft has many, many customers who want _them_ to provide and support extensions to ASP.NET. I, for one, use many, many open-source and 3rd party tools and libraries to help deliver software systems, but there are others who prefer to have Microsoft support most of their platform. Microsoft might upset some of us at times, but saying to these other customers "sorry, we're not going to do it. MonoRail has already done it. Go use them" isn't an option. First, that's not business. Second, it would royally piss of other customers. Microsoft can only hope to keep most of us mostly happy most of the time.
And the reason for this post is Hammett's reply to this:
Sun doesn't own IP on Struts and encourage its use. Sun doesn't have anything to do with Tomcat and yet they use it as a reference to a correct JSP/Servlet container implementation.
Sun doesn't compete with the Java Community. Why does MS have to?
I agree with Hammett, I do not accept the mindset that Microsoft must provide everything to its customers.
Comments
I'm agree but I think it's always better more frameworks competing in the same domain problem to reach ideally the best one and, to have the choice is always the best thing for all.
...I'm also agree with Tommaso: i prefer to have 10 frameworks like Struts, 20 of IoC, QT/MFC/gtk and, have the freedom to choice one.
I know that there are waste of "energy" but this is the price of the freedom :-) the main aspect of an open community.
Sun also doesn't sell development tools to developers, i.o.w.: the developers are for sun the influencers which ultimately make the customers of the developers buy into the sun brand, with for example server purchases.
Microsoft has a completely different business model: they see the developers as their customers now. This is more visible now via the team system product line. I.o.w.: they don't see the developers as the influencers who will make the customers of these developers buy Microsoft software.
This thus results in the fact that they want to own the IP they're selling, as in the US you're still liable for software patents for example.
Is Sun's model better? Well, it's not better for Sun, that's for sure ;). But it's better for the average developer in the street. The Microsoft model really helds the MS platform oriented developer hostage: often the developer has to use MS stuff because 'it's more business-safe to do so'.
It's good to have competition.
Take the Entity Framework that MS is doing - is it bad for NHibernate?
I don't think so, it might actually help NHibernate, as it will open developers eyes about ORM, etc...
It's good to have choice.
I think it should inspire Monorail to update it's documentation, continue to promote it by giving Monorail developers templates to generate scaffolding in a RAD approach, etc... The Castle offerings are fantastic, they just need to work on creating tools to help use their offerings easier.
We know MS's offering will probably be focused on being RAD ;)
That all being said, I wish that Ms would have adopted NUnit rather than creating their own, etc..., but that doesn't support much of what I said above does it...
Projects like Monorail need to continue to grow via 'grassroots', where developers are adopting it to the point where eventually it grows into mainstream. The more articles written explaining how to use it, it's benefits, etc... will help promote it and spread the word of it's value.
One interesting thing about the NUnit vs. MS Test discussion is that all of the frameworks coming from the Patterns and Practices group ship with tests for both frameworks. I suspect that the group prefers NUnit, otherwise there would not be any good reason for shipping tests written with a non-Microsoft framework.
Actually there is a reason for this.
The MSTest framework is only available for the high end versions of VSTS, which not all PAG customers have.
Frans, Sun also sells software, see iPlanet.
Steve, you've been broadcasting that we have a poor documentation. Can you pinpoint what is it lacking?
Well, I'm sorry if I come across as "broadcasting" it.
I will refrain from that comment, but I will try to post on the Monorail forum about it.
I don't mean it as a 'dig', more as a place I feel there could be room for improvement. (I don't want to highjack this thread).
I highly respect what the team has done with Monorail - it's a definite breath of fresh air when it comes to working with asp.net
Personally I'm happy to see Microsoft doing their own thing. Because at the end of the day Microsoft either does something so bad its something I won't touch with a 10 foot poll (EntBlocks) or they do it so good I can't live without it (Visual Studio).
Of course the stuff they do really good opens up a lot of opportunities for others. I may love VS but I love VS + Resharper much more :)
I'll end by saying.. I find it funny how the open source community talks about how diversity is such a good thing... unless Microsoft is the one doing it ;)
You would be surprise to hear how many people are using the EntLib and think that it is the best thing ever.
I believe that I stated my opinion in this matter here:
http://www.ayende.com/Blog/archive/7043.aspx
I love this topic. I can understand the business need of MS and many many of its customers that demand a MS solution. I can only wish that this does not discourage the community driven efforts. If there's one thing I admire of the MS development tools is that they have always evolved in the direction that the users (developers) have pushed them. The bad part of this is that the undisputed majority will always be waiting for the MS alternative while the solution is already available outsde the proverbial box.
Steve, didnt mean to be rude. I just think that you should let us know about it is a good thing.
Smart people usually flock to the more useful utility, the more feature rich, the easier to work with etc. Unless of course their in one of those "we only use MS stuff" shops.
If ASP.net's MVC does compete with monorail I see a few possibilities.
1 its a direct competitor in features and performance and copious amounts of documentation, books coming off the press in droves, therefore monorail will probably keep existing customers, loose a few and gain some more just from choice and personal preference.
Microsoft's MVC isn't as good as existing products, people will try it, grok the concept and them look for alternatives that are better, possibly being monorail as a better option, thus monorail picks up users they never would've had initially due to the leap in understanding.
Microsoft's MVC exceeds existing products in performance, features and support, people shift from other products and move to the microsoft solution.
Microsoft's MVC has an abhorrent licensing model (think the stupid p&p statement Condition 3F in the WCSF that says you cant use the code on non-microsoft platforms) that people get turned off in disgust and resort to an alternative, more friendlier licensing model product.
Given their track record with stuff, I can see 4 being a given, 2 being a real possibility, 1 being a real possibility and 3 being just possible. It still is a very David and Goliath fight.
Hi,
It's true that sometimes we feel MS reinvents the wheel, that sometimes it acts against the community, contribute to shutdown very nice projects (like NDoc...).
Maybe MS feel they have the horsepower to do everything themselves. They probably have a bigger development team than Sun. Sun may have no other option to keep the pace.
Maybe MS feel they must do it to avoid patents, trouble with third party companies, retain the source code, or more importantly have a consistent set of frameworks that help their vision of the future of application development.
It will be nice that if MS could embrace open source projects:
maybe by partnering with them, build the tools around them. What about a Monorail RAD inside VS.NET made by MS itself ?
For those looking for the "MS label", the partnership will give the required credibility and give MS a say in the development. But will the community accept MS in the team ? It's not obvious.
I will prefer that MS work with the community, but I can understand if they prefer doing their own things.
However they should try at least one time to embrace an open source project just to see if it's workable.
Cheers.
Regarding EntLib. Everyone is entitled to their own opinions and if EntLib solves their needs then good for them. We actually use EntLib on the main project where I work. We are in the process of removing all usages of the data access stuff, but we haven't taken the time to see if their is a good alternative.
As for your article I'm still up in the air. I don't have enough knowledge of MSBuild vs NAnt (I use NAnt exclusively) but if you look at the unit testing world I can see MS's problem. What do you choose? MBUnit? NUnit? Personally I use MBUnit and Rhino mocks. If Microsoft had choose to implement NUnit I still wouldn't be using it.
And one other thing for me personally.. is I don't want Microsoft involved in NAnt, MBUnit, Rhino, Monorail or any of the other cool OSS stuff I use.
Wow.. no more commenting at that time of night. What I meant to say was we were getting rid of the data access stuff, and that we wanted to get rid of the cache stuff but had not taken the time to find a good alternative.
Shane,
What are moving toward now?
There are several good caching alternative for .Net not from EntLib.
MemCacheD and Babmoo.Prevelance meet two different needs (web farms and smart client), for instance.
We haven't really decided on an alternative caching system. The thing we like about EntLib is how easy it is to use. Both of the ones you linked to are really interesting but they seem like they might be overkill for our current situation. I think for now we'll probably keep EntLib's caching around till things settle down a bit on the project.
Obviously, if it works for you, there may be no need to remove it at all
I would agree with you.. of course sometimes one doesn't always get to do what makes sense :)
Comment preview