I've been reading a lot of old blog posts tonite regarding Microsoft and Open Source - it really reminds me of the interesting stances the company has taken over the last 5 to 10 years (I've only been working with Microsoft for just about 2 years now). For instance - I read a post from Scoble that goes over why "Web 2.
Sunday, May 03, 2009
I've been reading a lot of old blog posts tonite regarding Microsoft and Open Source - it really reminds me of the interesting stances the company has taken over the last 5 to 10 years (I've only been working with Microsoft for just about 2 years now). For instance - I read a post from Scoble that goes over why "Web 2.0 entrepreneurs" don't trust the M$ Stack - and I must say, it's a pretty interesting read and the points that Scoble raises are still felt pretty strongly:
As I’ve been going around the world I’ve been meeting with many people who’ve built their companies on non-Microsoft stuff. Some of whom have companies worth billions of dollars now. Some of whom you’ve never heard about unless you read TechCrunch. Here’s 12 reasons Web 2.0 entrepreneurs like Ross tell me that they aren’t using Microsoft’s stuff:1) Startup costs. Linux is free. Ruby on Rails is free. MySQL is free.
2) Performance per dollar. They perceive that a Linux server running Apache has more performance than IIS running .NET.
3) Finding tech staff is easier. There are a whole new raft of young, highly skilled people willing to work long hours at startups who can build sites using Ruby on Rails.
4) Perception of scalability. The geeks who run these new businesses perceive that they can scale up their data centers with Linux and not with Windows (the old “Google runs on Linux” argument).
5) That Microsoft doesn’t care about small businesses. After all, Microsoft is an evil borg, but Ruby on Rails comes from a single guy: David Heinemeier Hansson. He has a blog and answers questions fast.
6) That open source makes it easier to fix problems and/or build custom solutions. A variant of the old “Google or Amazon couldn’t be built on Windows” argument.
7) On clients, they want to choose the highest-reach platforms. That doesn’t mean a Windows app. Or even an app that runs only in IE. It must run on every variant of Linux and Macintosh too.
8) They don’t want to take shit from their friends (or, even, their Venture Capitalist). Most of this is just pure cost-control. I can hear the conversation now: “OK, you wanna go with Windows as your platform, but is the extra feature worth the licensing fees for Windows?”
9) No lockin. These new businesses don’t want to be locked into a specific vendor’s problems, er products. Why? Because that way they can’t shop for the best price among tools (or move to something else if the architecture changes).
10) More security. The new businesses perceive Linux, Apache, Firefox, and other open source stuff to have higher security than stuff built on Windows.
11) More agility. I’ve had entrepreneurs tell me they need to be able to buy a server and have it totally up and running in less than 30 minutes and that they say that Linux is better at that.
12) The working set is smaller. Because Linux can be stripped down, the entrepreneurs are telling me that they can make their server-side stuff run faster and with less memory usage.
I'd love to know if these opinions have softened at all - or if they've been further reinforced - especially given the release of ASP.NET MVC (and it's subsequent listing on Codeplex under Ms-PL). I'm going to guess that they're roughly the same: people will believe what they're going to believe and for some reason, when it comes to Microsoft, changing people's minds is really hard.
One thing that's particularly interesting to me is that Microsoft, at least some divisions, are actively changing their "thinking" if you will to a more open posture. The Ms-PL of ASP.NET MVC (mentioned above), some of the work that Developer Division is doing with the Mono team, and the source availability of the entire .NET stack (yes, I know it's still not open) are evidence of a shift in thinking.
Great! But now what?
Clearly openness and transparency is super groovy - but then what? I'm a huge champion of the open and transparent thing and I've been able to do some great stuff in the open with the MVC Storefront and I've taken you along with me. I like to think that I was brought to Microsoft to help keep "rolling the bubble" towards more openness - but I have no way of knowing where the rowers are a-rowing; so I just keep plugging along and thankfully they're letting me :).
The Storefront has been a great learning tool, and a lot of people have thanked me for it (and you're all very welcome! I learned a ton too). But now what?
It was always my intent to pop what I did up on Codeplex and share it with people with the idea that if it had legs - well hooray! So far I have every reason to think it will become quite the open, flexible, "new thinking" type of application that people can learn from, use, extend, and so on. It fires me up and makes me pretty happy because I really like Open Source and what it can do.
But then again - I'm a Microsoft employee and this is a Microsoft project, after all. They've given me tremendous latitude to do with it what I will so people can learn core concepts surrounding ASP.NET MVC. That part is sort of done, and now we have Kona - an app that I'm hoping will be somewhat influential with respect to Open Source apps built on ASP.NET. Nice idea - but then there's the fact that I work on the ASP.NET team.
What does it mean to you that I'm an MS Employee, on the ASP.NET team, building an OSI-licensed ecommerce app? Do you think Microsoft should do more things like this in a more formal way? Or should it stay out of the picture and let others run with this kind of thing?
There are so many questions that I have in my head - and I'm very, very interested to know what you think here: What do you think Microsoft should do with respect to Open Source and .NET?
Will - May 4, 2009 -
Releasing the .NET framework source is hardly a poster child for a "new way" of thinking:
A. It's exactly what had been done all along with the previous framework (MFC), but with extra hype.
B. Since launch, the RSCC ball has been completely fumbled. After the initial marketing push, the project has basically been abandoned. (See the seething indignation on http://social.msdn.microsoft.com/Forums/en-US/ref...
There are definitely some gorgeous 'green shoots' (MVC / IPy / DLR / MEF / Moonlight), but probably best not to mention the shriveled yellow ones while trying to promote them.
In terms of promoting the platform against the alternatives, the best thing would be to make a good job of using it for real stuff (not just reference designs). For example, there's something of an exodus from Codeplex onto Google Code at the moment, which is hardly a ringing endorsement. Visual Studio ought to be the show-case .NET desktop app, but instead it's a lumbering brute with serious memory and perf problems, which powerful MS opinion formers are now openly mocking in their conference sessions.
Make good stuff, and people will use it - look at Stackoverflow - three guys who give every impression of having only a passing familiarity with computer programming have built a fantastic stable, performant site in a handful of months - would MVC have anything like the buzz behind it without them?
My very first step, though, would be to find the person who thought of "Heroes Happen {here}", and beat them to death with a boxed copy of Microsoft Bob. If that created a Senior VP vacancy at DevDiv then so much the better. ;-)
Damian Hickey - May 4, 2009 -
Ultimately to do any serious development work on MS stack one needs an MSDN licence. The free express editions really don't cut it for serious product development. The recently launched BizSpark is a step in the right direction (my company is a member), but it feels like it's aimed at companies building the next enterprise-y product and not those really light-n-nimble web startups. To become a member of bizspark you have to apply, there are certain restrictions and you have to be sponsored. This actually made sense for us, we had some contacts, we're building a product targeted at financial companies.
On the other hand, most (all) non MS stacks for professional dev are there for the taking, no questions, no restrictions, zero costs. From IDEs, os's, tooling etc. Just the fact that having to apply for membership of something is enough of a barrier to entry.
There is one thing that MS could do: put to bed an questions regarding the viability of the mono stack as a open and safe platform to develop on. Everytime mono comes up on slashdot or what not, there is usually a barage of posts regarding patents etc that may bite adpoters in the ass later. As such, the OSS community seem to not want to touch it.
The silverlight cooperation is a step in the right direction. I would love to see that with the rest of the stack with the Novell guys.
Jim - May 4, 2009 -
Show Kona running on Linux. That would show me that Microsoft is serious about being open.
barryd - May 4, 2009 -
So yes, for BizSpark you have to be sponsored and at WebDD, a free community conference held 3 weeks ago at MS UK (with just community speakers, no MS speakers, they just donated their offices for the day) everyone was offered BizSpark ... 200 people at once *grin*
onemenny - May 4, 2009 -
Microsoft maybe followed the open source comm regarding its ASP.MVC but look at WPF, it's a brand new stand-art ;) better and more robust than any other thing (swing !?!) open source comm has to offer.
But not all is gold here, working with Microsoft tends to numb your brain (as mentioned with understanding various MVC view engines)
Besides that, installing, looking for or compiling drivers, working with non trivial UI, learning curve, lack official support for crucial issues can result in a much much more costly environment, specially for startups.
Microsoft can get better, and as an example I can say that the EF (entity framework) team is doing a great job by exposing themselves via the ADO.Net team blog and their Design blog, more ever answering "almost" every question in their forums; and to be honest they did not kickoff that way and had to adjust.
Nicholas Piasecki - May 4, 2009 -
In my experience, it's point #1. And that's it.
From the company side:
I've been sitting on a creaky old SBS 2003 server running on a 20GB hard disk that is practically sobbing with the warning e-mails it sends me daily, and I'm still waiting for my ~$750 purchase order for an SBS 2008 license to install on the new server sitting behind me to get approved. I think it's silly, since we easily spend that much per month on SEO snake oil, but I think a lot of small businesses still have trouble justifying spending lots of money on something that is not quite physical. It's the same problem Bill Gates had with BASIC, it's the same problem we have today.
From the developer side:
If my university didn't have the academic alliance, I probably would have stayed a Linux dweeb forever. Why pay for development tools when you can download something like Eclipse for free? I understand that Microsoft invests significant resources into Visual Studio, but the version fragmentation ("Microsoft Visual Studio Professional with MSDN Premium For New Subscribers") and the sheer cost is irritating. You can spend a day just figuring out what the heck Open License is or which MSDN subscription to buy and who to buy it from. (And the Express editions -- it's better than nothing, but you can't even make Solution Folders without a $500 upgrade? Come on.) The barrier to *meaningful* entry in the Microsoft world is still high enough that it happens by getting a job at a large corporation who has the we-just-pay-Microsoft-a-lot-of-money-type license, not by futzing around in the basement.
I don't see how open sourcing the .NET Framework itself would help much because I don't buy the lock-in argument. You either lock yourself into Windows or you lock yourself into *nix--while many *nix software does run on Windows, it's usually at best a little wonky.
Finally, for Web-based applications, IIS has always been a little difficult to deal with in that it's not a standalone product and was difficult to configure up until IIS7. (My boss used to take screenshots of the Properties panels, apparently unaware of the Export Configuration option.) You can set up a test instance of Apache that mimics your production server in 10 minutes on Windows XP; to get the same production-like experience with IIS, you need to deploy to a Server machine.
Just my few thoughts based on what I've seen from management in the past.
William - May 4, 2009 -
Considering the original article for this list was posted in 2005 is it even relevant anymore?
He mentions performance and RoR in the same article makes me believe that the people he talked to are clueless. Makes like DHH is some kind of OSS hero when he is just another form of prick to his community. Apache had more exploit patches released in the last year than IIS7 did. No lockin, try modifying any OSS project to suit your proprietary needs and keep it safe, GPL anyone? I can have Server 2008 core up and running (DNS, DHCP, IIS, and SQL Server) in less than 30 minutes thanks to Power Shell these days. How many small business startups recompile the kernel to suit their needs these days? RoR, Apache, MySQL are free but they don't install themselves do they, oh yeah I guess using those young, highly skilled people willing to work long hours for zero pay and compensation make it free, morally can they sleep at night, probably.
If I were to startup a business I would use MS products because that’s what I am more comfortable with and that is what’s important, my piece of mind.
Eric - May 4, 2009 -
Whatever happened to the source code for the MVC Store sample?
Karthik Hariharan - May 4, 2009 -
They need to drastically reduce (or even possibly eliminate) the licensing fees on their server edition OS's for anyone other than the enterprise level customers. The argument I always hear is that you can negotiate with any MSFT sales rep and that no one expects you to pay sticker price.
However, this is quickly becoming an old school way of doing things. Most entrepreneurs today don't want to BS and haggle with a sales guy to get a good deal and want to click the Buy! button on site and have their license instantly delivered for a reasonable price. If the pricing isn't easy to find (because sales people don't want you to see it), this creates just another barrier to entry for most new businesses that are evaluating software licensing.
Hal - May 4, 2009 -
The immediate value of MVC Storefront is teaching developers through open source code while solving highly relevant problems. Your dilema is that you might do such a good job that your teaching tool will evolve into a competitive threat to propriatery systems. It would be a shame if all the really excellent patterns of development were locked away. Microsoft competes for developer mindshare and for revenue from the sale of software. I guess the question might be which one is more important.
D. Lambert - May 4, 2009 -
There's some truth to Scoble's article, but a lot of it was pretty fuzzy - even back then. One of the things people need to understand about the appeal of open source software is that actual access to the source code isn't all that important to a lot of people.
I believe that the two biggest factors driving the appeal of open source software are cost and control. Cost has always been a factor, and there's no reason to think that's going to let up (especially in this economy). Programs like BizSpark are incredible values for people that qualify, but for those who don't, costs can add up quickly.
Add to this the legendary complexity of Microsoft licensing, and it's sometimes difficult for people to even understand what they're supposed to be paying. Team-oriented products like MOSS or TFS are either expensive (license everyone for everything) or complicated (who's licensed for what). Virtualization only complicates the matters.
The other big issue is control. Developers have become accustomed to seeing Microsoft march from one technology to the next, leaving a trail of deprecated libraries in their path, and that makes them nervous. Data access technologies have been notable for their degree of churn through the years. Look at the uproar when it became known that LINQ to SQL was going to take a back seat to EF.
Whether they're right or not, people believe that with open source, there's a more open, impartial decision process steering decisions like this. In an open source world, for instance, if enough people wanted to keep LINQ to SQL going strong, they could do exactly that. Again - this point is about what people believe to be true, so it's not necessary to point out that most of the people who might want a given technology to stick around probably aren't going to grab the source out of a repository even if it's available.
Releasing MVC as open source, then, is not going to have a huge impact on this perception, but it'll help. It's clear that Microsoft is becoming more open all the time, which is good. What remains to be seen is how Microsoft balances a more open stance with the need to earn a buck for the shareholders.
andypike - May 4, 2009 -
For me, I'd like to see Microsoft getting involved in existing Open Source projects rather than reinventing the wheel and then championing these projects. I've been using the Castle Project stack for a number of years now and in my opinion it would have been a breath of fresh air if Microsoft could have joined the Castle team in improving their already stable and mature code-base. Instead they decided to create their own MVC project from scratch. Just imaging the platform us web developers would have had if MS had decided otherwise. I've used ASP.NET MVC, but found that I had to import so much from Castle that I found my self wondering why I just wasn't using MonoRail as well. MonoRail/ASP.NET MVC is just one example, there are many others of course.
I guess the problem is that mainstream developers will only start using something that is part of the official MS product set and MS have business strategy reasons why creating their own products is the only way forward. It's just a shame. Stop reinventing the wheel and start supporting existing projects, that's my thought.
josh - May 4, 2009 -
I've played around with different tools and operating systems, and still float around in a few non-MS groups. I don't think the anti-MS attitude has changed much among the core anti-MS crowd. Those that weren't against MS just for being against it seem to be open either way and willing to simultaneously see the good, bad, and ugly.
Its clear to me that the .Net platform and tools around it are a superior technology. Its a big part of what keeps me in the .Net world. Despite the clear culture shift and great devs like yourself, I think the anti-ms attitude comes from a long history and not really based on the MS development products.
I think its great! I'm afraid not everyone recognizes it. Worse, many are religiously anti-MS and will never change. Don't quit though, it's the younger devs and those who aren't yet devs who will see your work and will help change the anti-MS attitude going forward.
Besides, I think we're all looking for someone new to take up the slogan of "Don't Be Evil" and actually mean it.
Seb - May 4, 2009 -
IMO, the best thing that Microsoft could do for the .NET framework would be to surrender the patents that is preventing Mono from fully reaching the other plattforms. The .NET Framework doesn't have to be plattform specific. There is room for other plattforms than Windows Server in the server farms. But anything like that would be detrimental to the sales of Windows licenses.
LukeB - May 4, 2009 -
The only thing that matters when choosing a stack - what do your developers know best? They are the highest cost in any equation.
AndrewY - May 4, 2009 -
"My core philosophy about open source is that we should all be working on the things that we personally use and care about. Working for other people is just too hard and the quality of the work will reflect that. But if we all work on the things we care about and then share those solutions between us, the world gets richer much faster."
--David Heinemeier Hanson
It is true. Open source projects (for the most part) stem from a need to solve a particular problem. Until MS decides to publish how they solve their own problems through open source, then being open source for MS is just a marketing tactic. To me, MS still seems to be "working for other people".
Adrian Lanning - May 4, 2009 -
Rob,
Speaking as a satisfied BizSpark member, I definitely appreciate MS's help getting my web startup going. BizSpark gives us access to Sql Server and VSTS, which would otherwise have been prohibitively expensive.
Getting back to your question of, "What should MS do re: Open Source"...
This may be showing my bias as a web developer but I don't find .NET's "open-source"-ness _directly_ beneficial.
Doing contract web programming over the past 8 years has given me exposure to a variety of techs; perl, php, java, asp, asp.net. .NET is by far my favorite because I find it makes my life as a developer easier.
For me, having access to the source of applications (like Kona/MVC Storefront) is extremely beneficial; it's how I learn. Same went for Java back in the day (JPetStore - iBATIS). I never did need to dig around in the core .NET or Java code.
Now, _indirectly_ there are several important benefits of .NET being open-sourced that I have enjoyed:
1. Goodwill - I am proud of MS for doing it
2. Expanded customer base - Linux deployment option. Even if MS had been willing to work with a vendor to allow a Linux .NET runtime, I don't think Novell would have sponsored Mono or Moonlight if .NET wasn't MS-RL.
3. Improved stability - My _perception_ is that MS is getting useful feedback on bugs/security issues ("more eye's" argument) although I seem to recall there being legal issues with MS accepting patches...
I'm sure I've missed a bunch but these are the top ones that come to mind.
Kevin Dente - May 4, 2009 -
One thing Microsoft could do more of is *formally endorse open source projects that don't originate from Microsoft". Having MS say "hey, if you want a good POCO ORM, check out NHibernate", or "if you need logging, check out Log4net" would go a long way to legitimizing OSS in the enterprise. jQuery is a great first step, but I don't actually need MS to ship and take on support obligations for any projects it endorses. Simply identify them as reasonable choices for their customers to consider.
Actually contributing to those projects to be nice too.
Mitch - May 4, 2009 -
I've never looked at the .net source code. I don't care to as it does not help me get my work done any faster. What does help, is applications like the storefront and dotnetnuke, because they give me usable code snippets that help me deliver my solutions faster, and get back to my son earlier.
To give you an example, the other day I wanted to hydrate an object's public fields from a database using a datareader. I could have spent a week studying reflection and creating a solution, instead I popped open DNN and copied and modified their CBO class to do just that. After two hours I had an elegant solution that solved my problem and left me 38hrs free that week to teach my son how play baseball (he is quite the batter, not there yet with catching though).
Why do I use Microsoft? Because it makes it easier and faster for me to build a solution to my client's business problems.
Thanks for subsonic!
Mitch
Andrew - May 4, 2009 -
I'll echo what most people said, the Licensing structure currently used by Microsoft is needlessly overcomplicated and is a huge barrier to entry for most small startups wanting to use your technology.
Secondly, the fact that in the past Microsoft has "competed" with OSS projects is a bit troubling. You've got something like Structure Map or Castle Windsor out there, so instead of embracing them, Microsoft feels the need to put out the sub-par Unity. Ditto for the Entity Framework, the integrated MS Testing in Visual Studio and (one could argue) ASP.NET MVC.
As Kevin above me states, jQuery is a step (and shockingly so) in the right direction, but I believe there really must be a "if it ain't Microsoft, it's crap" mentality within the Mothership, and it means that MS Technology will always be playing catchup.
Kent Sharkey - May 4, 2009 -
Dang, you beat me to it. This was pretty much exactly what I was going to say.
The longer Microsoft ignores the great solutions out there like NHibernate, log4net, Ninject, etc, and continues to invent their own versions, the .NET community will become more polarized. Ideally, a sample using some/all of these tools actually coming from the product team would do wonders.
There are groups that are changing. However, I'm increasingly thinking that it's only changing in the Gu-space and that other groups (most notably Windows and Data) are stuck in their old ways, with little interest in helping anything .NET, let alone open source .NET. Your team should help those other groups "see the light", using your successes as an example.
John - May 4, 2009 -
MS and open source may have a love child or two (e.g. MVC), but they will never be married. Open source is a really attractive girl, but MS will never remain faithful, because MS loves another more: the buy-it-all-here cross sell experience.
MS is out to make money and has made a bundle of cash by coupling technologies, in particular, Windows and Office. Scott Gu may be loved by developers everywhere, but it was BillG and the guys that made Win95, Word, Excel and Powerpoint that made Microsoft the great producer of many, many millionaires in the early 90s.
Open Source likes loose coupling and here's where she and MS just can't get along. MS likes loose coupling just fine -- so long as its from another part of the MS stack. Sure, there's MVC, PHP.Net, etc. but MS is just waiting for Open Source to turn her head and then he can put some long sought proprietary, Sql Server types into Virtual Earth.
Ben - May 4, 2009 -
The company I work for has shown well over 100% growth annually in revenue and size using the Microsoft Stack almost exclusively. In spite of the current economy we will most likely show this level of growth again this year. Frankly, I think there are some big benefits to using the Microsoft stack. Mainly, we don't rely on one person like DHH and the dev environments are strong. I will admit that Agile and XP programming can be a bit tougher on the MS Stack but that is changing. Not to mention it is very tough to get your foot in the door of big industries like banking and health care without using something like MS because frankly companies do become concerned with what their business partners are creating their software in. And you better believe they don't want you to develop code for them in a language that might not pan out or be around in a few short years. Also, the cost of using MS is not that expensive. Sure you pay more for licensing but let's be hon. So pick your poison. In the end, I don't understand why there is all of the flame wars.
derChef - May 4, 2009 -
I know whining about all things Microsoft is the thing to do, and gets you geek cred, but it's incredibly boring.
Karl - May 5, 2009 -
Ben:
Not even the biggest /. fanboy would argue that you _cant_ be successful while using an MS stack (that's like saying that because a company that makes fuel from discarded french fry oil is successful than the business model is proven for all companies).
The fact that you think its hard to get into banking (which i was in) or health care (which I am in) without a Microsoft stack tells me that you're living in a bubble. Fortran or Java are the dominate technologies there. I also don't think those are fields that typically represent the web 2.0 entrepreneurs being talked about here (it could, but lets face it, those are typically handled by large enterprise companies).
Will - May 5, 2009 -
There maybe something in what you say derChef, but customer complaints made in public are one of the ways the free market applies corrective pressure to companies.
I'm afraid that you'll just have to skip by my incredibly boring post and read the other 27 more interesting ones.
Carl McDade - May 5, 2009 -
What would save Microsoft from the constant back and forth with Open Source? Well they could actually create something that is Open Source from its first jottings on paper. No, not and old technology gone Open source but a new freshly hatched project that is open at its very core. Something that is also very simple and cross-platform from the beginning. They don't need five or a hundred of these just one good web platform that is not locked to the OS. They don't need to come up with a new programming language. They need a virtual machine that is totally transparent in its core kernel. Something small and flexible the is not the first a large enterprise would or should migrate to.
I suggest that Microsoft come out with "Microsoft Open Pages" a fully distributable open virtual machine that in its first incarnation incorporates everything that Classic ASP had but capable of growth without the need to involve itself with any particular OS. Forget about all the things you could not do with ASP before. You have .NET for that. Concentrate on bring forth a web platform that is open, speedy and uses concurrency that does not have to be run on a CLR that is locked to the OS.
In other words the only thing MS has to do to get hundreds of thousands of open source developers on there side is to actually give something to FOSS that is free and clear of any obligations or considerations for making a profit on the technology or community.
k_man - May 5, 2009 -
I wonder what all the MYSQL user are thinking in light of the Oracle buying Sun. Larry Ellison and Oracle are a lot scarier to me than BG and M$. I agree with others that SQL Server, especially SQL 2008 which has caused me countless hours of pain, are at a hugs cost disadvantage and the vertical scaling is expensive.
Oracle will do everything to push MYSQL to its platform which is a much more expensive and no more stable than SQL Server. I for one am starting to take a serious look at PostgreSQL.
Anthony Main - May 5, 2009 -
Firsty, I havent read the other comments so forgive me if its alreay been said but I thought I'd share my opinion as I feel quite strongly about this issue.
I have been an MS coder since dot and Im proud of that fact. I never had an issue with choosing a php route instead especially during the asp vs php days, but clients direction made these decisions for me so I have been following ms ever since.
Ever since I have been having these on going arguments with coders of the "dark side" ;) and have always been happy to give my 2 pence.
I think the points raised here are excellent examples. I went through that list in my head and ticked off every single one has been given attention from MS in the past 5 years. Now I don't feel that ms has light shining from its nether regions, in fact for most of my career I've been sat swearing a my screen and the Lord Mr Gates, but times have changed. In the past 3 years I've seriously seen a major change in attitude and MS has become a much more accepting and giving beast which Im now proud and excited to say Im involved with. The latest technology direction really has inspired me especially with their free software and support for new business (BizSpark).
So I'd like to thank MS for all their support and welcome the new image they are putting forward. It really is changing peoples opinions and I find it a much easier arguement to put forward to those haters I battle with on a monthly basis.
I show my dedication myself and a collegue will be releasing a MVC based CMS application for website management called Web Quarters, this week, so I hope followers of this post will get involved and give us feed back as I feel we have a good product here that we hope the community will embrace. For more information (soon to be post) follow us at http://www.openquarters.org
apg - May 5, 2009 -
@Rob:
Perhaps this is a naive question, but why does MS need to do anything with regard to OSS? I'm not saying that they shouldn't to anything, I just want to hear from an MS employee as to why MS needs to be involved in FOSS at a business level. That company wasn't built by giving it away.
The approach that MS has taken with jQuery is a good one: official support and integration into Visual Studio. How much does that cost MS at the end of the day? Granted, MS isn't in the business of selling javascript frameworks. Either way, the jQuery approach is probably what they should have done with NDocs, Nant, and various unit testing frameworks rather than copying them. Instead of copying existing OSS tools, MS should throw a little money or good faith at them first, and then see what happens, before copying them. MS should do this especially in areas where there is not a whole lot of financial incentive for them to come up with a competing product. On the same token, OSS projects need to choose an appropriate license at the outset, like the MIT license or even MS-PL. For you potential OSS developers, I highly doubt MS will support your GPL'd work. (IAAL).
Choice of language is somewhat of an issue. I don't think I'd ever start an OSS project in C#. I use it all day, I'm annoyed with it, and in my spare time I'd want to experiment. On .Net, that leaves you with VB.Net or F#. So on .Net, that really leaves you with F#. F# kicks a** and I'd probably choose that, but there are still some rough edges and for any project that could grow in size you run up against the potential cost of licensing issues. So if MS could somehow bring MONO up to .NET's level, then that might lead to a wider adoption of F#. For IronPython and IronRuby - I think it's neat that they exist, but if I want to use Python or Ruby, it's pretty darn easy get the real thing going, so I'm not sure why Iron* would be an option.
Finally, I'm going to echo the SQL Server sentiments I read here also. Without a doubt, it is the single biggest source of pain from a scalability, risk, and financial perspective. If I was starting a business, I would have a very hard time justifying it's use. I wish I got buy stock in PostgreSql right now!
Karl - May 5, 2009 -
k_man, I wouldn't want to be working at Mysql either these days, but do remember that Oracle bought Innobase which developed InnoDB (still the best transaction engine for Mysql) and didn't do anything with it that jeopardized mysql. Personally, that's enough for me not to fear for the future of Mysql in the hands of Oracle (well, that and the fact that I think they realize there's a difference between enterprise database use and web 2.0 use)
Govind - May 6, 2009 -
What about dreamspark offering lowering the cost factor?
bbqchickenrobot - May 6, 2009 -
How would that show anything? Novell/Mono are the ones implmenting asp.net with some help from MS along the way. MS releasing open products themselves would prove that to me.
Pete - May 7, 2009 -
Release LinqToSql as open-source such that anyone can come along, fork it, and add to it. Do the same kind of thing for other libraries that for whatever reason get end-of-lifed - if MS is not interested in duplicating effort, well, there are plenty of people that would take that sort of thing on, I expect.
Essentially, be a bit more hands-off where it comes to defining the direction of tools and libraries - allow consumers to run with scissors a mite more. Openness and extensibility; openness so people can contribute opinions and influence the direction a product is going, and extensibility so they can make it go the way they want if openness fails.
Jim - May 7, 2009 -
To me, open source is a lot about choice. Right now, your most realistic choice for deploying anything ASP.NET is on Windows Server using a SQL Server database. If ASP.NET apps can run on any platform, people concerned about choice would feel better about adopting it. Of course, losing Windows Server or Sql Server licenses is probably not high on Microsofts todo list.
joe - May 8, 2009 -
Microsoft is a pimp who wants to the sell open source - the beautiful girl (or it doesn't to be beuatiful).
Paul - May 8, 2009 -
When I first started development (about 3 years ago now), the thing that drew me to Microsoft was the Express editions. I always preferred SQL Server to MYSQL (mainly just through experience). The fact that we can get an awesome IDE and SQL Server for free made me think this is the way forward.
Luckily for me, when I started my new company Microsoft BizSpark was already out. We are now involved in this program and wouldn't touch LINUX, PHP or MYSQL with a bargepole. If it wasn't for the express editions and BizSpark combined, we would probably now be using PHP.
Chris - May 8, 2009 -
I'm a VB.NET/IIS/ASP.NET guy by day and a Perl/Ruby/C# MVC guy at night. One of my biggest beefs with MS still is the toolset. Yes, Express editions are nice, but it's not enough.
Why do I still have to but the Pro version of studio just to get built in unit testing?.. something that should be a core feature of all versions.
Why do I have to pay for Standard/Pro at all really. Between studio, and resharper and other costs, it's just too expensive to get good traction. Same goes for the "web" version of 2008/IIS7. Give it away. There's no value-add in it cmpare to all of the Apache/Linux/Lighttpd/MySQL alternatives.
I think the MVC code was a great step forward. I would be nice to see ASP.NET 4.x take the same route.
I think IIS7/2008 with headless install support, modular config and total command line administration was a huge step.
Now, about that price tag... :-)
James - May 9, 2009 -
They may try to "open" things up but they will never come close to gaining the respect of OSS people. Hell that don't even except patches due to some legal issue they hide behind. Linux would be dead in the water if it did the same thing.
Microsoft's about making money, and OSS is about making software. They have huge hurdles to jump over and have no desire to do it. They rather sell $10,000 licenses to MS SQL then completely release a free version of MS SQL/Server 2008/VS 2008 that carries no restrictions.
I can't blame them either, they are a publicly traded company who's legal responsibility is to turn a profit for it's shareholders. They lost the race on OSS and most startups just won't give them a chance anymore. It is what it is.
Kyle - May 10, 2009 -
Specifically Microsoft could do the following:
1. Build a Visual studio design tool for NHibernate (similar to Linq to Sqls).
2. Do more of the MVC project creation model where you can add things like Xunit tests to your project by default. Add drop downs for logging, IOC, and mocking tools to the MVC project creation tool.
Brian Lowry - May 12, 2009 -
I downloaded Eclipse months ago to start working on a Blackberry app using Java. Eclipse is 20 times more confusing than Visual Studio and has a steep learning curve and I'm coming from a similar-looking editor and similar-looking language (C#).
People stick with what they know for the most part. I would continue reaching out to the open-source community when it makes sense, but I understand that Microsoft also needs to sustain a profit. I get really tired of everyone whining about how bad Microsoft is...
Tim - May 18, 2009 -
MS could release LINQ-to-SQL as an open source project instead of letting it die on the vine. There's a lot that the community could do to turn LINQ-to-SQL into a lightweight and powerful ORM by correcting a few simple flaws.
Paul - May 19, 2009 -
I think it's people like you that would make me want to invest in microsoft. It's a very 20th century company. The 'embrace, extend, extinguish' business practice has to be dropped; people know it for what it is, and it's hurting the company. It's image is too negative. All things in moderation, some open source, some proprietary.
Mike - May 20, 2009 -
From the Scoble article:
"That Microsoft doesn’t care about small businesses."
I feel that vibe from Microsoft very strongly.
Otherwise, make Visual Studio Professional free of course! I can always hope...
You keep on doing what you do Rob, because a good example will find followers. Thanks!
mike - May 20, 2009 -
Oh crap yeah.. Mono! It's the elephant in the room in this discussion. Rob, any ideas on this?
Anders - May 28, 2009 -
Microsoft should creating something like Google Summer of Code for Open source project in .NET
Roy - October 26, 2009 -
1) Find a standard and stick to it. When you have something like DAO, and you want to upgrade to ADO, make sure that all the existing functions have the same names and parameters, and the existing functions all work as before. Add, don't replace. Then, developers can upgrade at a stroke, and won't keep bitching about how they'd rather stick with vb6 over vb.NET, and if they do upgrade, won't go to an open-source standard, that DOES upgrade easily.
2) If you're going to embrace open source standards, like XML, be consistent with your compliance of those standards. If you're going to support XML-based screens like XAML, then support the main things that developers love about XML-based screens, like CSS. If not, then expect developers to switch to xHTML, and ignore XAML completely.
3) If you're going to upgrade code, then put in an update tool that is quick and WORKS! Don't convert lines to labels. Don't convert data and adodb controls to labels. Write decent converters for ALL your existing controls and code.
4) Keep your settings in one place. If they are small, keep them in one file. If they are large, keep them in one folder. If they are huge, use lots of subfolders, but keep them in one overall folder. Makes them easy to backup, and easy to restore in case of problems.
5) STOP USING THE REGISTRY. It's just not practical. INI files worked fantastically. If you HAVE to update other INI files, like when installing programs, then just have a separate INI file that can be built off all the other files like a VIEW, and update THAT. It doesn't corrupt the original files, and if things corrupt, then it's easy to rebuild them.
6) MAKE DLL FILES READ ONLY. Dlls are the biggest reason that programs stop working, as their editability makes them corrupt regularly, and that makes the programs work erratically. You can't even tell what the problem is, because it's erratic. Follow IBM's example. Have read-only modules, and store your values in encrypted config files. Copy Apple's example, and make them rebuild the config files if they aren't there. Then if the config values corrupt, the dlls just rebuild them with default settings, and the program still works, and the developers can just go in and amend them.
7) Stop trying to tell everyone all the solutions. Make your knowledge base forums-based, and include non-Microsoft forums, as well as Microsoft solutions and Microsoft forums, just like open source people do, because the majority of solutions are found in forums, from other users who encountered the same problems.
8) When open source has a better solution, embrace it. Don't ignore it, or you'll find that developers will switch to the products with the better solutions.
9) STOP INTEGRATING YOUR PRODUCTS! It's not fun when SQL Server is integrated with everything else, because it's a nightmare when it fails to install properly in one part. It corrupts everything it's integrated with.
Make each product a stand-alone, that can exist without anything else, just like open-source does. When you HAVE to integrate, follow the example of Apache and PHP, and ODBC. just have a single module that connects them, and have a few lines that can be added to a config file, like PHP does with Apache. It works, and if Apache fails to start because PHP isn't right, you can go in to the config file, rem out those few lines, and Apache starts fine. Then you can reinstall your PHP module correctly in 10 minutes, edit the config files back and, you have working integration.
There is probably a lot more. But what you have to remember, is really only one thing. Cool GUIs look nice, and that appeals to most people when looking at a product. But when it comes down to running a business, or using a product every day, the thing that matters is not how it looks, but if it does the job, and if it stops working, then how easy it is to change it to an earlier version that DOES work. Nothing more. If not, then your customers will buy ONE Microsoft product, but will switch to open source when they need to buy new products.
Looks count for the first date. But to keep a man, you need a nice personality, and a willingness to not make his life too difficult.
The only reason why most people weren't using open source until now, was that the open source geeks were turning up on the first date a dirty t-shirt and sweat pants. But now they're dressing a lot better, and they're getting more dates, and KEEPING them. Before too long, Microsoft won't get a date for the prom, becuase everyone else has been hooked up for years, and is happy staying that way.
On the other hand, most (all) non MS stacks for professional dev are there for the taking, no questions, no restrictions, zero costs. From IDEs, os's, tooling etc. Just the fact that having to apply for membership of something is enough of a barrier to entry.
There is one thing that MS could do: put to bed an questions regarding the viability of the mono stack as a open and safe platform to develop on. Everytime mono comes up on slashdot or what not, there is usually a barage of posts regarding patents etc that may bite adpoters in the ass later. As such, the OSS community seem to not want to touch it.
The silverlight cooperation is a step in the right direction. I would love to see that with the rest of the stack with the Novell guys.
Essentially, be a bit more hands-off where it comes to defining the direction of tools and libraries - allow consumers to run with scissors a mite more. Openness and extensibility; openness so people can contribute opinions and influence the direction a product is going, and extensibility so they can make it go the way they want if openness fails.
2) If you're going to embrace open source standards, like XML, be consistent with your compliance of those standards. If you're going to support XML-based screens like XAML, then support the main things that developers love about XML-based screens, like CSS. If not, then expect developers to switch to xHTML, and ignore XAML completely.
3) If you're going to upgrade code, then put in an update tool that is quick and WORKS! Don't convert lines to labels. Don't convert data and adodb controls to labels. Write decent converters for ALL your existing controls and code.
4) Keep your settings in one place. If they are small, keep them in one file. If they are large, keep them in one folder. If they are huge, use lots of subfolders, but keep them in one overall folder. Makes them easy to backup, and easy to restore in case of problems.
5) STOP USING THE REGISTRY. It's just not practical. INI files worked fantastically. If you HAVE to update other INI files, like when installing programs, then just have a separate INI file that can be built off all the other files like a VIEW, and update THAT. It doesn't corrupt the original files, and if things corrupt, then it's easy to rebuild them.
6) MAKE DLL FILES READ ONLY. Dlls are the biggest reason that programs stop working, as their editability makes them corrupt regularly, and that makes the programs work erratically. You can't even tell what the problem is, because it's erratic. Follow IBM's example. Have read-only modules, and store your values in encrypted config files. Copy Apple's example, and make them rebuild the config files if they aren't there. Then if the config values corrupt, the dlls just rebuild them with default settings, and the program still works, and the developers can just go in and amend them.
7) Stop trying to tell everyone all the solutions. Make your knowledge base forums-based, and include non-Microsoft forums, as well as Microsoft solutions and Microsoft forums, just like open source people do, because the majority of solutions are found in forums, from other users who encountered the same problems.
8) When open source has a better solution, embrace it. Don't ignore it, or you'll find that developers will switch to the products with the better solutions.
9) STOP INTEGRATING YOUR PRODUCTS! It's not fun when SQL Server is integrated with everything else, because it's a nightmare when it fails to install properly in one part. It corrupts everything it's integrated with.
Make each product a stand-alone, that can exist without anything else, just like open-source does. When you HAVE to integrate, follow the example of Apache and PHP, and ODBC. just have a single module that connects them, and have a few lines that can be added to a config file, like PHP does with Apache. It works, and if Apache fails to start because PHP isn't right, you can go in to the config file, rem out those few lines, and Apache starts fine. Then you can reinstall your PHP module correctly in 10 minutes, edit the config files back and, you have working integration.
There is probably a lot more. But what you have to remember, is really only one thing. Cool GUIs look nice, and that appeals to most people when looking at a product. But when it comes down to running a business, or using a product every day, the thing that matters is not how it looks, but if it does the job, and if it stops working, then how easy it is to change it to an earlier version that DOES work. Nothing more. If not, then your customers will buy ONE Microsoft product, but will switch to open source when they need to buy new products.
Looks count for the first date. But to keep a man, you need a nice personality, and a willingness to not make his life too difficult.
The only reason why most people weren't using open source until now, was that the open source geeks were turning up on the first date a dirty t-shirt and sweat pants. But now they're dressing a lot better, and they're getting more dates, and KEEPING them. Before too long, Microsoft won't get a date for the prom, becuase everyone else has been hooked up for years, and is happy staying that way.