5

I like a technology (including programming language) but its platform is closed sourece and many times I meet people who ask me, "why do you use a closed source platform, why not use an open source alternative? If there is something wrong it should be with the closed source not with the open source, (as they say)". Actually I don't know how to answer their question.

Could anyone tell me a good answer? Why do you use a closed source platform?

5
  • 7
    Wouldn't this depend entirely on the platform in question?
    – Adam Lear
    Aug 2, 2011 at 21:05
  • 3
    The term 'closed source' is a misnomer. You are either free to do what you want with the code or you aren't. Some companies give you access to the source code with strict conditions, which makes the source to that particular program or library 'open' but non-free or proprietary under both the definition of 'free software' and 'open source'. I'm not implying you can do whatever you want with code under restrictive OSI approved licenses, but you can at least share the code.
    – Tim Post
    Aug 2, 2011 at 21:27
  • 1
    They say .net is closed source and I consider it and each technology within it to be more robust than anything php has to offer (these are my example comparisons). If I don't like the way something works i am able to change it. The word closed source sounds worse than it is imo. Aug 2, 2011 at 21:40
  • 1
    Open / Closed source in itself is not a feature, and is rarely of relevance when choosing a platform or product. Instead, other features will sway the decision, such as flexibility, price, features and support available. Some of these factors, however, may be affected by whether the source is open or closed. Aug 3, 2011 at 13:32
  • @TimPost Open source has a specific definition mate.
    – Miles Rout
    Oct 4, 2016 at 5:23

13 Answers 13

48

You've already answered the question: you like the technology you're working with. If that's not a good enough answer to satisfy these people, then they're not interested in being satisfied.

I've been doing this for over 20 years. I've worked on VMS, MPE, MPX, Unix, Linux, Windows, MacOS, etc. I've used open source and proprietary tools on the major desktops. All that really matters to me is, which toolset allows me to accomplish a given task in the least amount of time with the least amount of frustration (assuming I get to make the choice)? Sometimes the OSS solution falls short of the proprietary equivalent (e.g., GIMP vs. Photoshop). Sometimes it's superior. Sometimes it's a wash.

OSS has its advantages, but it's not a panacea. Unfortunately, some people have embraced it with a religious fervor, and like many religious fanatics tend to be jerks about it.

4
  • Good answer. Bottom line sometimes the only thing that matter is personal preference. If you like a platform, its technology, and most importantly productive in using it, then that should be all that matters. Aug 2, 2011 at 22:24
  • 6
    +1 for the last paragraph! Aug 3, 2011 at 9:54
  • I'm not going to challenge the edit, but I do want it to be known I wasn't simply being vulgar for its own sake; that was the term that best conveyed the attitude I've encountered among the more, uh, fervent OSS advocates. "Jerks" doesn't quite get the image across.
    – John Bode
    Aug 3, 2011 at 17:33
  • best line: "If that's not a good enough answer to satisfy these people, then they're not interested in being satisfied. "
    – jhocking
    Aug 4, 2011 at 14:57
21

I work on a proprietary (better term than "closed-source") project at work. We make software for broadcast media. There's a pretty good chance that your favorite TV or radio station is running on it, in the US at least. And the interesting thing is, even though our software costs a whole lot to license and deploy, (and that's an enterprise-scale whole lot, not a personal-scale whole lot,) we've got no competition from the open-source sector. All of our competitors are proprietary products that cost an enterprise-scale whole lot to license and deploy. As far as I know, no one's ever even tried to build an open-source competing product.

Why? Good question. If I had to guess, I'd say:

  • It meets a very specific need, not a general one. Most computer users will never have any reason to want to use these products. According to Eric Raymond, a major part of the incentive to create open source products is to gain recognition as the author. That gets diminished quite a bit if you have a small potential user base.
  • The software is very complex. The client alone weighs in at over 3 MLOC--and most of that is actual functionality, not cruft--and then there's a small cloud of middle-tier servers, the database, and various support programs. And while open-source projects are certainly capable of producing large, complex products, (Linux comes to mind,) they only tend to do so when there is a really large potential user base. (See previous point.)
  • One of the main draws of open-source software is, as the name states, having the source available to tinker with. What's not mentioned so often, though, is that this only really matters to people with the ability to read, write, compile and debug code in the first place. But our clients are TV and radio stations. The end-users are pretty non-technical; they see our software as basic productivity tools, the way many office workers see programs like MS Office. Very few of them would ever even want to poke around in the source code; what they want is for the program to work and the details to stay out of their hair, and they're willing to pay us pretty good money to make that happen.
1
  • 1
    Most contributions to Open Source projects are by users fixing issues or adding functionality that they need to a project. i.e most open source projects must be successful projects before they begin to attract contributors. In your example, no one company would have the resources to develop a semi-working version of the software, which would be required before it could really become established as an open source project. think of most major open source projects, most of them started off as closed source projects which where then opened.. Firefox/Netscape, OpenOffice(?) etc... Aug 3, 2011 at 13:28
20

"Because thats what I get paid to work on."

7
  • 11
    Is there anything you can add to this? As a high rep user, you should know better than to give one-line answers with no justification or rationale: that isn't what we're trying to shoot for here.
    – user8
    Aug 2, 2011 at 22:03
  • 7
    It may well be the correct answer for a lot of people though. Many coders I know just go where the money is.
    – Rory Alsop
    Aug 2, 2011 at 22:13
  • 6
    @Rory being technically correct isn't the bar we're trying to reach here. Check out the link in my previous comment for more background.
    – user8
    Aug 2, 2011 at 22:14
  • 10
    If there was ever an acceptable one line answer, this is it. Jeff and Joel have discussed the downfall of taking rules on this site to literal extremes.
    – JeffO
    Aug 3, 2011 at 12:16
  • 1
    @Jeff Do you happen to have a link to that handy by any chance? Thanks!
    – Adam Lear
    Aug 4, 2011 at 3:10
14

I use commercial, closed-source software because it costs less.

This may shock a lot of folks who have embraced FOSS as a way of life, but as a professional developer, software is my bread and butter, which means that I need to develop in a cost-effective way.

It doesn't matter what sector you work in, as long as you get paid for your work:

  • As a consultant/freelancer, your time has a direct cost, and you need to have equal or better productivity than other practitioners if you want to stay competitive.
  • In the corporate sector, you're expected to keep overhead low.
  • In the commercial software sector, you need to meet tight deadlines and control support costs from your own customers.
  • In the entertainment sector, you only get one kick at the can, which means you can't afford any major screwups.

And so on. I won't belabor the point with an exhaustive list of software models.

Open source confers two major advantages:

  1. I can dig into the internals and add new features or fix bugs if I need to.
  2. The product is (usually) free.

However, both of these advantages come with significant costs:

  1. Modifying open-source code costs me time.

    • I have to learn the project's physical structure and logical architecture.
    • I have to learn the naming and coding conventions.
    • I have to understand where the extensibility points are, both external and internal. In other words, which parts are meant to be modified, and which parts depend on invariants that I'm not supposed to mess with?
    • I might have to learn about additional open-source libraries in the process (for example, how many .NET open-source projects depend on log4net or Castle?).
    • I have to understand the build process and tests, if they exist.
    • I have to actually write the code.
    • All this for a feature that may already exist in an equivalent commercial/closed-source product. And if it doesn't, I could submit a feature request.
  2. Modifying open-source code adds risk to the project.

    • Touching any part of the internals is an instant rev-lock. Now every time there's a major project release, I have to do a source merge and additional regression testing to make sure it hasn't broken my changes. Very often, when you see people or businesses running ridiculously outdated versions of software, it's for precisely this reason.
  3. Using open-source code adds risk to the project.

    • I have no idea if or to what extent an open-source product is internationalized, secured, stress-tested, tested in different browsers/operating systems, or regulatory-compliant. This is less of an issue with large projects like Apache but a major issue with smaller ones.
    • I don't know how long the project will continue to be maintained, or what parts of it will be maintained. Assuming that I don't have time to become a regular contributor (hint: I don't), all or part of it might simply die. Commercial projects generally stay alive as long as they're making money, and the vendor can raise the price if it's not. There's still some risk, but not nearly as much.
    • I don't even know if the project is legal in my country, or all of the other countries I might be distributing to. Some open source projects aren't. Even if the project is legal, it may not be legal for me to use it in my project, or the licensing terms may be incompatible.
  4. Using open-source code costs me time and sometimes money.

    • Documentation is practically nonexistent for most open-source projects. Where it does exist, it is typically nowhere near as complete or helpful as that for an equivalent commercial product. This is totally understandable, and in no way a criticism; documentation is terminally boring, and technical writers are far less likely than developers to release their work for free (and most open-source projects don't have budgets).
    • Open-source projects with budgets generally get that budget from support and training. This means that it isn't actually free, it just has no capital cost. Support is often significantly more expensive than the commercial equivalent because commercial entities can subsidize or even absorb the cost through normal product sales.

The bottom line is I love open-source and use open-source products all the time, but only when I know that I can afford the additional costs and risks that they incur.

One more thing: Most developers who use open-source libraries don't actually modify them or even know how to modify them, so if you throw advantage #1 out the window, it basically boils down to a simple equation: Is the cost of the commercial/closed-source product worth the additional features that don't exist in the best free/open-source product? If the answer is yes, we go commercial; if not, we stick with the open source.

All told, I'd much rather use a weathered, mature commercial product with an Open API than a bleeding-edge product with a totally open code base. I don't actually really care that I can modify the internals; I'm more interested in something that just works but provides lots of ways to customize the behaviour.

15
  • 9
    All those reasons also apply to proprietry software - the main difference being there is nothing you can do about it! Aug 3, 2011 at 15:04
  • 5
    Most of #3 applies to proprietary products. On point one, I've had bad surprises from proprietary products. On point two, you don't necessarily know where the market is going, although proprietary is somewhat safer. On point three, you generally don't know that about proprietary products either, especially if you're not in the country of origin, and proprietary licenses are a lot more varied, and usually longer and harder to figure out. I remember one horror story of a place that relied on what a salesperson said about runtime licensing. Aug 3, 2011 at 16:09
  • 3
    Actually, #4 has some issues. Documentation is easier to get from a proprietary product (with exceptions), but the source code is also documentation of a sort. It's unlikely to help you with anything halfway general, unless you put a lot of work into it, but plenty of times I've found the low-level documentation of a proprietary product lacking, and wished I could take a quick look at the source. Source and good documentation would be ideal, but if you can't have both it isn't a no-brainer which to choose. Aug 3, 2011 at 17:53
  • 2
    Your points 1,2 and 3 against OSS can apply equally well to proprietary software. A huge example of Number 2 is Microsoft's LINQ2SQL project, which technically died after the first .Net version that released it (they integrated it into Entity Framework, but most of the LINQ2SQL early adopters will tell you the two are quite different). The legal issue is a matter of reading the license that comes with it. Buying proprietary software doesn't actually allow you to use in any way you want and still be legal (just ask the professionals that used Office student and teacher edition).
    – Shauna
    Aug 4, 2011 at 14:40
  • 3
    @Aaronaught - You do know that the GPL isn't the only open source license, right? For any software, determining what use is allowed requires reading the license. Most proprietary software licenses only allow for install on one machine, but there are others that are per-user or come as "multipacks" where you can install on X number of machines. Open Source licenses are similar in that they vary from license to license, but you have to read the license.
    – Shauna
    Aug 4, 2011 at 15:37
11

We use it because...

  • there is no acceptable, equivalent open-source alternative in terms of features.

    Our graphics designer can't use Gimp as an acceptable substitute for Adobe CS4, it simply doesn't have the features necessary. Dia is good but is not a great alternative to Visio. I don't consider OpenOffice a good alternative to Word for what I do at work (though it's fine for simple word-processing at home).

  • the software is niche and there simply is no Open-source alternative.

    Our Business Users like a particular industry-niche software which has no equivalent open-source competitor. It and its entire platform are closed-source, but that is what we must use for business reasons.

  • there is no acceptable, equivalent open-source alternative that we can get a support contract for.

    Sure, we could use WebSphere Community Edition with Eclipse instead of RAD, but we've had IBM help us with critical issues and bugfixes, which is not something we had the time or resources to fix ourselves. The support contracts aren't used often (as far as I'm aware), but they are very useful when they are.

...I am sure there are even more.

5
  • 3
    Is there anything you can add to this? As a high rep user, you should know better than to give one-line answers with no justification or rationale: that isn't what we're trying to shoot for here.
    – user8
    Aug 2, 2011 at 22:03
  • 2
    I couldn't disagree more on the integration point. Integration - powered by standard interfaces, a foreign concept to tons of closed source software, including MS flagship products - is a core open source tendency, if not downright property. An elegant, powerful, high-performance example is bash/grep/awk/cut/tail/sed/... I have yet to see apps so simply and well integrated. Aug 4, 2011 at 10:21
  • @Tomislav Nakic-Alfirevic: What I wrote was about integration as a feature in a suite of products, so I think that should have been lumped under the first point, but I will remove it. The point I wanted to write was about bridge/middle-ware software that sometimes does not have an open-source alternative, but it's been a while and I couldn't think of the name of the specific product so I didn't write that. Aug 4, 2011 at 14:16
  • 2
    @Tomislav Nakic-Alfirevic Please, point me to the standard describing the interface to grep.
    – quant_dev
    Aug 4, 2011 at 15:04
  • 1
    @quant_dev: POSIX defines many parts of grep interface, though many implementations adds their own fluffs.
    – Lie Ryan
    Jul 23, 2014 at 21:58
4

Non-technical decision makers avoiding risk. There was once a saying, "No one ever got fired for buying IBM." Plenty of names you could put in there that are not Open Source. Almost anyone starting a business that is not technically oriented is going to go out and buy a bunch of PC's running Windows or some Mac's (Running Windows virtually). Throw in Windows Server and you have a Microsoft shop that will want custom development on this platform with no desire to share their custom code. They won't make any effort to have it work anywhere else. This code would not be useful to other companies. I'm guessing your friends don't fall in this category.

Vendor Lock In. This has been going on for many years with operating systems, databases and applications. It's tough enough to upgrade, but switching vendors is difficult and expensive. Licensing fees would be the last thing on a profitable company's mind trying to switch from Oracle or SQL Server to MySQL. Non-technical decision makers fear the risk and their employees have too much technical equity deposited with certain vendors.

There's a lot of developers that think Visual Studio is pretty good at making them effective at their jobs.

3

For some people, it boils down to a cost-benefit analysis. For details, see the link, but in summary:

It is an analysis of the cost effectiveness of different alternatives in order to see whether the benefits outweigh the costs..., and by how much... The aim is to gauge the efficiency of the [alternatives] relative to each other and the status quo.

It uses the following to judge the available alternatives:

  • Valuation
  • Time
  • Risk/Uncertainty

People naturally do this kind of analysis on the fly, ad hoc without realizing it all the time.

But what that leaves us is basically a case-by-case decision making process. Hence choosing open source or closed source product for every solution is foolish.

If you're working with a particular solution at the day job, someone probably did it, and decided for you.

2

why do you use a closed source platform, why not use an open source alternative? [..] I don't know how to answer their question.

To make this slightly less hypothetical, let's say the platform was a game development engine for mobile devices. What characteristics might we care about?

How many platforms does it support? How performant is it? Is it well written, or buggy? Is the API coherent, easy to use, flexible? Does it support all the features you require? Do you have developers and/or users who already know the platform? Do you have an existing time/money invested in the technology? Does it have good documentation? Are there lots of examples to work from? Does it have active user communities? How active is it's development? Do the primary developers respond quickly to bug reports or feature requests? What's the release cycle like? (We could go on like this for a while...)

Oh, and is open source?

That's just one characteristic among many. Does trump every other consideration? Not by a long shot.

If you really don't know how to answer the question -- if you know of an open source alternative to your platform and honestly can't think of any reason why you shouldn't switch -- then the people who are second-guessing you may have a point.

2

I couldn't help but add a few government driven ones:

  • The closed source version is certified for compliance (pick your cert); the open source is not. Not always true, but a general trend - when a body of people are working on open source, it's not always so clear who will fund and maintain the typically expensive certification. When I say certification, I mean - FIPS, EAL, and probably many others for other industries

  • Sweet tech support package - more and more big open source offers quite competitive tech support options. But in places where there is no value add to your company's developers becoming good enough at the problem domain that the code solves, then it really is a better trade-off most of the time to be able to get features and bugs managed by the producer of the software. Not true for every situation, but especially in niche areas - there may be open source, but it's less likely it'll have good support

  • Security paranoia and the desire for un-public code. I know a company is unlikely to share its code with the outside world... open source is by it's very nature... open. Yeah, I agree "security through obscurity" is a very bad plan, but I can at least understand the paranoia and when this is driven by external customer requirements and those requirements pay your bills - sometimes it isn't worth the battle.

  • Import/export rules - it's not unusual in government work to have rules about code being made by the country or it's allies. With open source, it's hard to say who made it. With a proprietary code base, you know exactly who - they are the guys who sent you the invoice.

1

Open source has some advantages: it is cheap and readable and fixable. But IMHO, open source suffers from two disadvanteges: bad testing and bad documenation.

And those two problems arise from the same cause: volunteer programmers want to program. If an organiztion is going to sell something, they hire people to code and they hire people to test and they hire people to documen. In Open source, too often the tester is YOU and the documentor is a blogger from five years ago. Companies don't sell software, they sell PACKAGES, but Open Source people love to code and hate to package.

So if you just want a tool that WORKS, and don't care about the price, closed source can be very good for you.

1

The simple answer for using OSS or proprietary software is - whatever works best for your purposes/needs and whether you can justify the (monetary and non-monetary) costs.

Niche Software

Some software just isn't available as OSS, or what is available isn't nearly as good as the proprietary. For advanced macro usage and the crazy stuff some people make Word and Excel do, OpenOffice/LibreOffice just can't compete.

It's Familiar

Let's face it, most people grew up with Microsoft and Microsoft-based products. It's what they know, and the known is always going to win out over the unknown, even if the unknown is superior. This doesn't just go for proprietary vs open source. Many people use Microsoft over Oracle for the same reasons. It would still hold true if your question was reversed and the circumstances were reversed (they were advocating close source and you wanted to use open, and the world ran on open source).

Industry Standards/Compatibility

Photoshop and the design industry is a great example of this. Photoshop is the design industry standard. As good as Gimp is/can be for personal use, it still has glaring compatibility issues with Photoshop (layer grouping, anyone?).

It Fits the Workflow

Sometimes, it's just that the proprietary software is better suited to one's needs. For example, if I had to chose between Eclipse and Coda, I'd take Coda any day, because it suits my needs and workflow better.

It Supports A Good Company

Assuming the tool your using is getting put out by a company that meshes with your views on business ethics or whathaveyou, the best way to support a company is to use their product. A lot of the OSS fanatics use only OSS because "software companies looking to make money from their product are evil," despite the fact that if they're a developer by trade, they're doing the exact same thing. Companies can be good and still sell their software.

All in all, I'd say if you haven't tried the title they're offering as an alternative to your chosen piece, go ahead and try it in your spare time, if only to humor them. You can then determine whether it fits your workflow and can better tell them "I just don't like the tool you like."

2
  • You seem to have downvoted before I submitted my edit. I noticed that it turned into a rant (I blame the other responses, which I admittedly don't particularly agree with), and have since rewrote it.
    – Shauna
    Aug 4, 2011 at 16:05
  • Indeed, it seems to have been totally rewritten - downvote removed.
    – Aaronaught
    Aug 4, 2011 at 16:08
1

Explain that choosing free/libre open source software (FLOSS) is a largely a matter of principle, and that the principle of sharing changes is not important to you; or at least is not the deciding factor. This is a value judgement that everyone is entitled to make for themselves. You would be perfectly valid in choosing sofware which has the most features, which comes from a certain company, is written in a certain programming language, or whatever other metric you wish. The key point is that it is a free choice among things that have different values to you.

0

I don't think there is anything wrong with working on a closed source platform. If it's what you like to heck with their ideas on it. They probably don't understand the underlying issue between open and closed source and are just spouting the buzz terms. Can you say what fascinates you about this technology/language? That would be the answer I would give them.

Not the answer you're looking for? Browse other questions tagged or ask your own question.