views:

339

answers:

5

I recently have a client comes asking me as a C#/.NET dev for reasons about why I have not picked any of the "wave of the future" frameworks out there like Rails/Django and instead choose "proprietary software" from M$ to build his website.

Frankly, I love all the open source stuff. But seeing non-technical people bugging me for reasons why I choose the tools I always choose just because it's "proprietary" and "locked in" is just putting unnecessary stress on me.

I have since stated my rationales to the client but end up w/ Python/Django anyway for the sake of the company. Lucky me that I can do some Python coding so it's a quick run of the mill for me. Nothing spectacular.

The tools and documentation is the biggest plus to me when using "proprietary software". For me, there's nothing like doing C# on Visual Studio especially with now C# becoming more functional. It's been so much fun since LINQ support was out.

But I have to wonder...

What are some arguments against using OSS frameworks?

From the your own perspective, from the company/business/startup perspective, from whatever angles...

+6  A: 

For me, the topmost reason would be

I am not as familiar with those frameworks as I am with the .NET stack

I too have had such a request for a single project, where the person that originally came to me asking me to build his website for him, then later wondered why I had picked Microsoft ASP (which was what I used at the time) instead of php and apache.

Basically my response was that if you ask me to build the website the best way I can, then the tools I know are the ones that are going to be used.

Lasse V. Karlsen
I think that's a fair reason, but you should always tell your customer what you intend BEFORE you use it, not after the fact. Sometimes customers forget to tell you all their requirements, but doesn't mean they don't have any.
joemoe
@joemoe +1... and it gets worse when your customer doesn't know any tech but just hearing FUDs from his/her friends..
chakrit
That is a good enough reason for me (to not use .NET stuff), and it is honest. Coming up with technical reasons to avoid something after you've decided to avoid it seems a little dishonest to me ...
Rasmus Kaj
+3  A: 

Often times, licensing can be more of an issue with open-source software than with closed source, since proprietary software usually follows a simple licensing model.

For example: Some open source licenses require all derivative works to be entirely open source as well. This has become an issue for the LAME encoder, for example. You cannot link your copy of the LAME encoder into your executable, but must instead have your users download their own copy, separate from the product itself.

You'll often hear Jeff Atwood refer to programmers as 'Magpies' because we like to collect and use shiny things. (New frameworks and etc.)

For a real-world application, using a new or open source framework may actually be a detriment because you are less familiar with it, or it is not a mature.

Being pragmatic should be your guiding force.

John Gietzen
Care to expand on the licensing issues with open vs closed?
Andy Gaskell
That is not the issue with LAME. The issue with LAME is that the algorithm for encoding MP3s is patented, and it is illegal to distribute any object code that implements it unless you pay $$$ for a license from the MP3 consortium. But it is fine to distribute the source code, and it is fine to infringe upon software patents for your own personal use.(Why yes, software patents *are* dumb.)
jrockway
+7  A: 

First off, let me say that there are a lot of great OSS frameworks out there, and I don't want to come across as spreading FUD or anything. But from a business perspective, there are a lot of questions that need to be answered when using an OSS framework. Frankly, I believe that these are much the same questions that need to be asked of any software, but with some OSS software (maybe 80% of what's on SourceForge?) the answers to these questions aren't good:

  • Who is going to support this software? Will we be left sifting through the source code to nail down a bug? If we do fix a bug, is the author willing to accept it or fix it in the next release?

  • Will this software be kept current and secure 5 years from now? With a major vendor, they make contractual pledges for predictable support. Will this be available with this product?

  • What licensing burdens are being placed upon us by using this software? If we go with a GPL version of a framework, will we have to make our product open source as well?

  • Does this software have a large enough user base to be considered to be mature?

  • Does the author have a rigorous testing and QA process?

  • Will we have to build this product from source? If so, can we trust that the posted source has not been tampered with? If we're getting the binaries, can we trust who actually built the thing and posted it?

  • Will I have someone to call on the phone if it all goes south? Will I have someone to blame who I can point a finger at who is not me?

This level of questioning typically does not get asked with major vendors -- the answers are pretty much taken for granted (rightly or wrongly). That means that OSS evaluation does require a bit of legwork in order to really understand what you're getting.

EDIT: A commenter pointed out that the second question I asked is very relevant to companies that go out of business. Very true. And in my personal opinion in a contest between OSS vs and a product from a small or unstable vendor, the OSS product wins every time, everything else being equal...

Dave Markle
Just wanted to add that "a bit" might actually be "a gigabit" especially with regards to some complicated OSS technologies... like server hardware drivers... you can't expect your sysadmins to switch over to linux and be able to support those kind of issues... not even inside a month or two.
chakrit
Contractual obligations means nothing if the company you dealing with went bankrupt, which is not unheard of.
joemoe
+1 Excellent. And I'm saying this as an open source fan. Also, it's not like this is all bad---the most prominent example (Red Hat) has been making good money so far from providing answers to those questions [if not in the domain of programming frameworks].
balpha
Here he's talking about rails and django, I'd say these two frameworks have proven theirselves good! Rails has been there for almost 5 years now.
marcgg
@marcgg It's just my own personal issue... but the question was more about the general schemes of *not* using OSS frameworks/softwares.
chakrit
@joemoe: VERY true. Especially of po-dunk small software ISVs. If it's a battle between these guys and OSS, OSS wins because at least you have the code if they go under!
Dave Markle
Most commercial software comes with the same "THIS SOFTWARE HAS NO WARRANTY" disclaimer that the OSS software does. At least you can personally fix the OSS when it breaks.
jrockway
A: 

The main reason I've heard for going with a vendor (with most vendors being closed) would be support. If something breaks in your widget you can get support and maintenance from the vendor.

Andy Gaskell
Well, at least you can put blame on a vendor. Actual support can often be better from an open source community than from a vendor ...
Rasmus Kaj
I agree with you, I'm just saying that's the main reason I hear from clients.
Andy Gaskell
@Rasmus Kaj that depends on the project. Some projects are left stagnated for years with no body responding. Take the WMD editor used on SO for example. It's not simply a black and white thing.
chakrit
@chakrit: Absolutley! I said "often". Both open-source and commercial software can be abandoned right after you decide to depend on them.
Rasmus Kaj
+1  A: 

All software is broken and buggy. With Free software, you can fix the bugs yourself. With closed-source software, you can't do anything but wait for someone that already has your money to fix it for you.

I would never consider a closed-source application framework unless it had a proven track record of being amazingly good. (Qt from many years ago would have met this requirement.)

jrockway