In case you didn’t know, Charlie Calvert (former Borland developer community evangelist) has joined our family as the C# Community PM. For comparison sakes Charlie Calvert’s impact in the world of Borland development is equivalent to that of Charles Petzold for Microsoft Development. Anyway, I was reading the transcript for the LINQ to SQL chat that Charlie coordinated this past Tuesday. I have been so preoccupied with WPF and the .Net 3.0 framework that I forgot all about the stuff coming down the road with .Net 3.5. Honestly I think 3.0 should have been called 2.5 and 3.5 called 3.0 but 3.0 (nee Winfx) does add SIGNIFICANTLY to the existing .net 2.0 framework.
But I digress…after reading a bit of the transcript and what we will be able to do with Orcas. I read some of Charlie’s prior entries (The man blogs A LOT) and ran across a link to a blog entry discussing the duplication of effort in the Microsoft Open Source community. I wa going to write a comment, but like David, I felt that this merited discussion on my own blog.
I definitely have agreed with what David said a few times in regards to collision within the OSS community. If you look at O/RM alone you have several decisions to make including what persistence framework to use, what generation technology to use (myGeneration, Codus, etc.), and most importantly what style of crust you prefer, pan or thin?
Now if you consider how many people eat pizza on a daily basis…or for a more manageable number how many people engage in database programming daily. I’d assume it’s more manageable because a WHOLE lot of people eat pizza, but not as many engage in database programming regularly…I’d guesstimate that 99.99% of the people who program against databases eat pizza…but would be surprised if even 20% of the people who eat pizza program against databases…however I guess we should stick with the pizza analogy because it fits well with what we’re discussing…
Think of Pizza as Data Driven applications. Just like Data Driven Apps, pizzas have layers…not as many layers as onions, but layers none the less. Your crust is your database…some people like thin crusts like Access, or FoxPro. Others like buttery crusts like MySQL or Firebird. Others prefer a pan pizza Thick and Robust…practically a meal by themselves like SQL Server, DB2, or Oracle. On top of your crust is your pizza sauce. Okay you get the idea. There are a number of ways to develop an application, just as many (if not more) as there are ways to make a pizza). There are hundreds if not thousands of companies that specialize in making pizza, no one complains about redundancy or duplicated efforts when it comes to pizza. In the same vein, I think that multiple options are a good thing when it comes to development tools. Sometimes one is a better fit for a project than another.
As someone else mentioned in the comments, it could definitely be worse. Look how many web frameworks are available in the Java open source community.