FOSS isn't always the answer

Proprietary software has its place.

There’s been some back and forth between various members of the technical press about whether the open source movement has lost its idealism, and the relative virtues of shunning or accepting proprietary software into your life. The last thing to cross my screen was an essay by Bruce Byfield that includes this gem:

In my mind, to buy and use proprietary products, except in the utmost necessity is something to be ashamed about. And that’s how I’ve felt the few times I’ve bought proprietary myself. It seems an undermining of FOSS’ efforts to provide an alternative.

Over the years, I’ve become less patient with the stridency of the FOSS movement, or at least some of the more pedantic wings of it. It is certainly not my place to tell anyone that they should buy or not buy any kind of software. However, the repeated assertions by members of the FOSS movement that proprietary software is somehow dirty or a corruption of principles has begun to stick in my craw.

There are plenty of places where FOSS makes all the sense in the world, and those are the places that FOSS has succeeded. No one uses a closed source compiler anymore, Eclipse is one of the leading IDEs for many languages, and Linux is a dominant player in embedded operating systems. All these cases succeeded because, largely, the software is secondary to the main business of the companies using it (the major exception being Linux vendors who contribute to the kernel, but they have a fairly unique business model.)

Where FOSS breaks down pretty quickly is when the software is not a widely desired tool used by the developer community. Much as you can quickly get to the Wikipedia philosophy page by repeated clicking on the first link of articles, you can quickly get to the requirement for a utopian society once you start following the line of assumptions needed to make consumer-level FOSS work.

The typical line of thought runs like this: Let’s say we’re talking about some truly boring, intricate, detail-laden piece of software, such as something to transmit dental billing records to insurers (this type of stuff is going to be required under the new health care laws.) Clearly, people don’t write these things for kicks, and your typical open-source developer is unlikely to be either a dentist, or a dental billing specialist.

OSCON 2011 — Join today’s open source innovators, builders, and pioneers July 25-29 as they gather at the Oregon Convention Center in Portland, Ore.

Save 20% on registration with the code OS11RAD

So, if all software should be free and open source, who is going to write this code? One argument is that the dentist, or a group of dentists, should underwrite the production of the code. But dentistry, like most things in western society, tends to be a for-profit competitive enterprise. If everyone gets the benefit of the software (since it’s FOSS), but a smaller group pays for it, the rest of the dentists get a competitive advantage. So there is no incentive for a subset of the group to fund the effort.

Another variant is to propose that the software will be developed and given away, and the developers will make their living by charging for support. Leaving alone the cynical idea that this would be a powerful incentive to write hard-to-use software, it also suffers from a couple of major problems. To begin with, software this complex might take a team of 10 people one or more years to produce. Unless they are independently wealthy, or already have a pipeline of supported projects, there’s no way they will be able to pay for food (and college!) while they create the initial product.

And once they do, the source is free and available to everyone, including people who live in areas of the world with much lower costs (and standards) of living. What is going to stop someone in the developing world from stepping in and undercutting support prices? It strikes me as an almost automatic race to the bottom.

And this assumes that software development is the only cost. Let’s think about a game such as “Portal 2” or one of the “Call of Duty” titles. They have huge up-front costs for actors, motion capture, and so on. And they have very little in the way of potential revenue from support, as well. So do the FOSS proponents believe that modern computer games are all evil, and we should all go back to “NetHack” and “Zork”?

Let me be clear here: I am in no way trying to undermine anyone who wants to develop or use FOSS. But I have spent most of my adult life writing proprietary software — most of it so specialized and complicated that no open source project would ever want to take it on — and I find the implication that the work I do is in some way cheap or degrading to be a direct insult. When it has made sense, I have contributed work to open source projects, sometimes to a significant degree. But when it made sense, and when not, should remain my choice.

In many ways, the web is a perfect example of the marketplace of ideas. No one knows (or in most cases, cares) whether the technology under the covers is FOSS or proprietary. Individuals make the same measured decisions when selecting software for personal or business use. If there is a FOSS package that meets all the requirements, it tends to be selected. If it suffers in comparison to proprietary counterparts, it it may still be selected if the need to modify or extend the package is important, or if the price differential is just too hard to justify. But in many cases, proprietary software fills niches that FOSS software does not. If individual activists want to “wear a hair shirt” and go without functionality in the name of FOSS, that’s their decision. But I like linen, thank you.

If there are people out there who are willing to engage in a reasoned, non-strident discussion of this issue, I’d love to talk it out. But they need to accept the ground rules that most of us live in a capitalist society, we have the right to raise and provide for a family, and that until we all wake up in a FOSS developer’s paradise, we have to live and work inside of that context. Drop me a note or post a comment. I’d love to hear how a proprietary-free software world could work.

Photo on index and category pages: open by tinou bao, on Flickr


tags: , , , ,
  • I think the better argument for FOSS in your dentist case not the individual dentist hacking something together and throwing it out there for the public; but proprietary developers getting fed up with solving the same dentist-record-transfer problem 10x over.
    At that point; providing a library for dental xray processing or some other small part of the problem becomes a more sensible candidate for open sourcing. If its not your core competency; not where you are making money; does FOSS offer you a model where you can get outside maintenance? Repeat often.

    If you accept that model; after a rich ecosystem of libraries/components/etc evolve; then your average dentist with a bit of programming know how can wire the bits together.

    That I think is the more likely path for open source models in niche software

  • William

    Zealotry is often tiresome. For many applications, there is no practical way to foster a community, and so open source software is not really an option. However, in the case of health care data management, I do think that the legislation should mandate an “open data” approach. This would help prevent vendor lock-in, data loss due to loss of a product and create the possibility that if a community did begin to emerge they could compete on the merits of their software, rather than the constraints of the siloed data in the environment.

    This of course moves the challenge from “how to foster a FOSS community in an environment where it makes little sense or puts the participants at a competitive disadvantage” to “how to get people to agree on a data standard”. Not a trivial problem, but with great problems emerge great business opportunities.

  • Alex Tolley

    Rational argument is always good. It appears that you are saying that the “free” in FOSS inevitably undercuts any pricing structure, as the enforcement to allow copying degrades the price to the cost of a copy, and that this is an economically unsustainable model.

    Which is exactly the argument that the media companies make regarding content copying.

    The arguments made for actors in the content business also apply in software. You make your money on things that are not replicable. Of course this is more problematic for collaborative, expensive projects, but not impossible. Copying of proprietary software means that it suffers the same problem too, except that the copying is illegal.

    One problem of proprietary software could at least be alleviated a little if the source code was automatically released after a period of time by a 3rd party. much like source code escrow is used today.

    However I certainly strongly agree with you that moral positions in the use of FOSS very proprietary should have no place in the discussion.

  • I agree. We can talk about moral in discussing topic like that. But I have used FOSS for long time and I have no problem or complaint about it.

  • Brad Stevens

    blah blah blah, proprietary software developer attacks crazy zealots FOSS hippies. Gee, ya think there is a bit of bias here? If you’re going to tiresomely re-hash a topic that has been thrashed to death, at least bring something fresh and accurate to the discussion, instead of recycling stupid stuff.

    For starters, you propagage the myth that FOSS devs are unpaid. This is so obviously untrue I think O’Reilly should be ashamed for wasting electrons. As for reasoned and non-strident, well you already failed the reasoned part. What you’re really saying is “Say what I want to hear or I’ll brand you as shrill.”

    Oh well, you know what they say about opinions and body parts.

  • Yet we are gradually displacing the lower layers of proprietary code with FOSS, leaving the proprietary layer on top as a thinner and thinner veneer.

    Taking the dental billing system as an example: in 1981 such a thing would have specified a binary encoding of some kind. It would have a file or wire format, to delineate each record within the data.

    Nowadays that dental billing protocol would be XML, possibly specified by an XML schema. I don’t think the balance has quite tipped to where such things are routinely done as JSON, though one can see that day approaching.

    In 1981 proprietary software would have implemented the binary encodings, the wire formats, and everything. It would hand its data to the driver for the underlying x.25 network.

    Nowadays the proprietary software would rely on FOSS for the XML encoding. It would use HTTP as its transport, also using FOSS to implement it. SSL support would also be provided by FOSS.

    The proprietary layer on top becomes thinner and thinner.

    At some point, there will be a huge economic incentive to _not_ specify an extensive dental billing protocol requiring a proprietary implementation, just specify it as a layer on top of what already exists and supports other industries.

  • @Brad Stevens, your sarcastic rant is actually making Turner’s point about extremists. You’re overreacting to what he said and erecting straw men in a weak attempt to undermine the sense in what he correctly says, which is that proprietary software is not evil simply for being proprietary.

    He very calmly asked at the end of the article for examples of “how a proprietary-free software world could work”. Why not try your hand at that instead of trolling?

    On the other hand, @Denton Gentry makes perfect sense. Let’s not let the perfect become the enemy of the good, and accept that sometimes change has to be evolutionary rather than revolutionary.

  • Bruce Byfield

    As most people know, there’s an unwritten law that the first person to mention the Nazis in an argument automatically loses.

    In the same way, there should be an unwritten law that anyone who uses “strident” to describe an opposing view automatically discredits themselves. Using the word indicates that you want to discredit a viewpoint without bothering to answer it.

    As for telling people what to do, doesn’t it occur to you that you’re doing exactly the same thing here? No one can write an opinion piece without implicitly trying to persuade readers to adopt it.

    So, please, no more hypocrisy about wanting to discuss in a “non-strident” way. The only difference between my statement of opinion and yours is that you want to demonize mine and assume that yours is normal and correct.

    Oh, and should you want to stop dealing in stereotypes and talk about what my position actually is:

  • People ended up mixing open formats and open source. I don’t care if a software is closed source or opened source. My interest is the input and output format for data used in the software.

    The problem in the past was that some vendors created solutions where you would be stuck with their softwares until the end of time. Obscure protocol, file format, and so on were lockin you with that provider.

    Now things have changed a bit, or a lot depending of your point of view. Most data can be reused in other softwares, open source or not. The XML adoption did helped a lot in that field.

    But to think that a bunch of dentists would gather to create their own free software is an utopia. Seriously, that would mean that every professionals should learn programing in case they need a specific software or services? To each is own, I don’t want to learn how to perform surgery, to repair electronic devices or to knit a scarf just in case… My speciality is software, a dentist is providing health service and my insurance guy to sell insurance services…

    So if a company wants to provide a solution for a specific domain, they have to adopt a business model to make money. It’s their choice! Only thing I ask is that the data format used is not proprietary…

  • AP

    There is also the issue of FOSS often catching up with existing proprietary software (linux vs unix(es), hadoop vs gfs-mapreduce, gimp vs photoshop, neooffice vs office; of course there are opposite examples like netscape vs xmosaic but I don’t have hard numbers). It seems hard to deny that in many important instances proprietary was the precursor to FOSS. Don’t get me wrong, I am one of those FOSS hippies at heart, but the evidence is pretty strong here.

  • mc

    People who take issue with James’ specific choice of a niche software market (for dentists) seem to be missing the point. While FOSS has indeed met a wide variety of needs – from very broad infrastructure, to some very niche applications – there are also undoubtedly some applications that will never get written unless there is a fairly reliable connection between paying for them to be written and being paid in turn.

    I do find the idea of an expiring copyright interesting – allowing only temporary proprietary advantage – but it seems like it would be exceedingly difficult to develop “fair” rules of how fast they should expire.

    @Bruce Byfield
    I don’t blame you for feeling a little defensive having been singled out in this article, but a first reading of your quote will indeed be interpreted by most people as an assertion that we *all* ought to feel ashamed of using proprietary software. That’s what James was apparently reacting to.

    After reading your quote again, I see that it is also possible to interpret it as applying *just to you*. If that is indeed the case, then it seems pretty clear that if James read it that way he wouldn’t have found it so objectionable.

    It’s great to debate what would make the world a better place; it’s fine to express how things make us feel. It’s almost never a good opening to healthy discussion to tell other people they ought to feel ashamed, and I now believe you didn’t mean it that way.

  • Augustus Fellani

    The 1990’s called they want their confusing free as in beer with free as in freedom arguments against open source software back.

    If your group of dentists decide to create an open source solution there is nothing stopping them from selling that solution to other dentist’s to recoup or even profit from their endeavours. All they need to do is make the source code available to those dentists. There is no requirement that the source code needs to be made available to the general public or given away free of charge. (Not that there is anything stopping one of the dentist receiving the source code from doing so).

  • Understandably from your perspective, as a developer, you are advocating from a developer’s point of view, often called “pragmatic” in these discussions. Your perspective is based on the question “Who’s going to write the software?” That’s a perfectly reasonable and important question.

    However, think of a different point of view and the F in FOSS becomes critically important. Electronic medical records and electronic health records bring up the ethical questions of privacy, ownership and the rights of individuals to know who’s doing what with the data. When you consider that electronic medical records will be required very soon, SOMEBODY sure as hell better write the software, and somebody sure as hell ought to require that it’s done ethically. I believe it is beyond the government’s control to do so, therefore software developers need to make sure that the job is done in an ethical manner. However, typical American interests are only with costs and profits. Ethics is totally out of the question. If you mention ethics you are “an extremist” or “an idealist.” Why?

  • “most of us live in a capitalist society”

    Proprietary software is not capitalist. It is mercantilist. It is grounded in monopolistic practices and relies on protectionism at a global and local level. Free software is actually capitalist as it engages free markets.

    If it weren’t for government granted monopolies and trade secrecy, proprietary software could not sustain itself.

  • imgx64

    I’m going to re-post what I posted on another website regarding this article (slightly modified to suit this audience).

    …whether the open source movement has lost its idealism.

    Absolutely not; it can’t lose what it didn’t have. Free Software is about idealism. Open Source is about open sourcing what makes sense, which is exactly what the writer said.

    What I really want to see is a deep schism between FS and OSS. It’s not like being loosely united as is the case today is doing any good to either. OSS gets labeled as idealists, and the FS people feel cheated when a big corporation uses OSS (Mac OS X, anyone?).

    I want a clear line dividing the two, so that everyone (including me) know where they’re standing, and where other people are. The writer of the article just had the OSS-enlightenment (i.e. idealism is bad). He could’ve reached that conclusion long ago if he knew other people had the same thoughts. Right now the line is kinda fuzzy, and it’s more than just licenses. Where does Linus stand, for example? (he refuses GPLv3, accepts binary blobs, and has stated that he uses GPL because it brings development back to one place, not because of idealism).

    Maybe we should abolish the term “FOSS” as it’s too ambiguous and refers to unrelated ideas (a la Intellectual Property[1])?

    (Realistically though, I don’t think this would ever happen. They have too much in common, more than Catholics and Protestants)


  • What amuses me is, the real mistake here is reading anything by Bruce Byfield never mind responding to it. Every one of your arguments are easily countered, but that is not because you are wrong. It is because you’re responding to an article by someone who writes only to reaffirm a specific set of impractical beliefs held by a large group of people who ultimately don’t matter to the global software community.

    Free software will become the dominant form of software, but that does not necessarily mean that your trade in proprietary software is commercially or technically unviable or bad.

    Again, stop reading Byfield’s disingenuous drivel.

  • I think that’s a good point, while open source has definitely come into age, there are certain specific specialties that companies are willing too small for a community to pick up, but powerful and useful enough to warrant selling it as proprietary software and warranting buying it. Nothing is black and white.

  • Aniket Suryavanshi

    All software should be free to use. No one’s work should ever hinder because of not affording to buying it.

  • Sean May

    As a newcomer to development (but a long-time proponent of open software from a consumer perspective), I personally believe that both aspects are 100% necessary, and that both sides are 100% valid.

    To the “free as in air” people:
    If a product far exceeds the capabilities of what free products are capable of doing — or if said products have large upfront costs associated with them — or if those products are written for very-specific purposes, *ESPECIALLY* for the purpose of enabling someone else’s business, then a person has every right to charge for their work.

    Adobe vastly-overcharges for access to their stuff, but if GIMP did *actually* do everything that Photoshop could, *and* do it faster, *and* do it with a higher-level of precision, *and* offer a UI which was even better laid out and more-responsive to allow for a 100% unencumbered workflow, by professionals who work as digital artists in the marketing/entertainment industries, and actually making their work go faster, rather than slower…

    …if that was the case, then Adobe would be cutting the costs of Photoshop into fractions of its current self,
    It would be doing so, because the market would no longer demand such things, as they would all be supported 100% for free.

    The company I’m working for, currently, uses Adobe’s enterprise-level suite, for collection of web-usage metrics for analytic purposes.
    This is partly because we can’t convince the chiefs to foot the salary of two or three people, for two or three years, to build something which would be better suited — so they pay roughly the same amount of money to use a system which is already available, and already (mostly) in place.

    Same goes with Audacity and Avid’s ProTools.
    The day Audacity replaces the entire feature-set, and improves the workflow of professional recording engineers, with full-support across all operating systems and all hardware configurations, is the day before ProTools gets a gigantic price-cut.

    Remember that if you expect “free as in air” to be the sole-paradigm, that it must apply to all situations.

    To the “free as in beer” people:
    There are many cases where we do NOT want mission-critical components of software to be openly available to everyone.
    WarGames was an exaggeration on all accounts, but the same logic applies.
    If you hand over the full source code for finished games, the week before they’re launched, the multiplayer aspect is ruined.
    There is no shortage of horror which could be wrought at that point.
    There are many perfectly-legitimate uses for that open-source software, and many benefits which could come from it, but they are all vastly overshadowed by people who use it for purposes of cheating/griefing, as modifying a few base values to make everybody miserable is more immediately-gratifying than dedicating months or years to doing something vast and productive (like a render-engine Mod).

    Again, Id Software will release the source to their game engines (/games), when a newer engine is released.
    But in the beginning, that code is very much publicly-unavailable.

    Likewise, I’d prefer it if every unscrupulous person in the world didn’t have intimate knowledge of the full implementation of my bank’s software and hardware configuration.
    While I’d like to imagine that security is important to them, and they’re doing everything correctly, nothing is impervious, unless it’s completely disconnected from the net, at which point, it’s no longer useful.

    A global bank, or the stock market hosting a public GitHub repository would be a public invitation to have their (my) money taken from them.
    Some code/implementations *should* remain secret, as far as unfettered-global-availability is concerned.

    Nobody is 100% must-be-paid-for, 100% proprietary
    It would be nearly-impossible to do so, whether they believe it to be the case or not.
    Perhaps it’s easier to have a system where 100% of the code on your machine is closed-source, rather than having 100% of the software be paid for, but even that is highly-unlikely.

    Moreover, I believe that the entire argument over whether a *program* should be proprietary or not is completely moot!
    If I have a particular problem which I want to solve in a particular way, I should be allowed to do so.
    Moreover, if I want to be rewarded for doing something — whether it’s because it’s ingenious, or novel, or because it was a custom solution for someone who needed it to make money, or if it was a project that I put $10,000,000 into getting off the ground…

    …any of those reasons, and a slew of others, are perfectly valid for me expecting to be paid for either my creativity or my problem-solving skills, or my investment, or my labour.
    In all other sectors, each of these contributions is a valid reason to be paid.

    And if my solution to a particular problem was so specific that it wouldn’t even benefit other people in the same industry, let alone others (skirting the topic of having the time or budget to write a modular, intent-driven, component-based program) in general…
    …then why would I be morally/ethically compelled to share that hacked-together program with the world?
    All I would accomplish by sharing such a thing would be to propagate and perpetuate bad code, into the universe.

    Maybe I’d prefer to share a different project – one which *was* generalized and useful for more than one, singular, proprietary task.
    But again, that should be my prerogative.

    While the collaboration of minds is *VERY* beneficial to the progression of practically all aspects of our society at large, all propagating bad code is going to do is dilute the progress we make.
    Bad code and bad ideas can be studied and learned from, but if every bad idea must be shared, then all we’re doing is making it harder to find the *GOOD* ideas.

    For a very basic example of that at work, you need look no further than the iPhone marketplace.
    And these are even closed-source, for-profit “ideas”.
    Find the gems, amongst the hundreds of thousands of weeds.

    Or look at websites cobbled together with cut’n’paste JavaScript / CSS from multiple different sources.
    Mash-ups and web apps are wonderful things.
    But having 6 poorly-written JS libraries slapped on a page, to do 4 different things (with 1 dependency, and 1 was included just because the author didn’t know any better), isn’t a great example of progression…

    JavaScript development is a great place to see the best and the worst of OpenSource, as your project is going to be open by default.

    And ultimately, what JavaScript on the web has shown is that the core of something doesn’t need to be open…
    …what it does need to be is modular and extensible.
    …what it does need to open is an API with solid documentation.
    …what it does need to do is work with standardized data-formats.

    In fact, more than I’ve ever wanted the open-source movement to succeed, I want open-standards for files and data.
    Ultimately, software manipulates data.
    If it didn’t, we probably didn’t need the software to begin with.

    I don’t care how proprietary your software is.
    If it adheres 100% to a standardized, open file-format, and provides a 100% standardized data-set within that file, that is *ALL* I care about, because it means that I can take that file from your proprietary system, feed it into another proprietary system, and then write a plug-in for another proprietary program, pop the file in, and then write a completely Free Open-Source program (“as in air-beer”), and plug the same file in, and it will all just work.

    Going back to the dentists — I don’t care if Microsoft does the implementation of every single dental office in North America, or if they do 50%, and the rest are handled through independent contracts — what I care about is that the files being passed back and forth, at all points, are 100% open, so that regardless of the actual implementation, the data will be predictable 100% of the time.