A friend directed me to a comment thread over at the Volokh Conspiracy, a blog I occasionally read and considerably respect. The response I ended up writing is substantial enough that I think it’s worth posting here.
I grew up on Internet RFCs, so technical standards issued under licenses that forbid free redistribution offend me. Every such document, whether intentionally or not, is a device for hindering open-source software projects and privileging closed-source developers with big budgets and lawyers to hand.
They offend me even more when (as, for example, when the GPS reporting standard NMEA 0183) the proprietary “standard” is so badly designed that a mob of crack-addled rhesus monkeys could have done a better job – and for this they want me to pay? They offend me the absolute most when the “standard” is distribution-restricted, expensive, badly written, and its topic is a safety-critical technology – so that people could actually die because some jerk wants to collect a trivial amount of secrecy rent on a standard that was crappy to begin with.
Fortunately, there is a way to monkeywrench the organizations that perpetrate this sort of thing – and I’ve spent a substantial part of the last couple of weeks doing exactly that. I’m writing about it here to encourage others to do likewise.
In email to a third party, copied to me, Linux activist and long-time friend Rick Moen comments on the acronym FLOSS (usually explanded “Free, Libré, and Open Source”.
I continue to find it difficult to take seriously anyone who adopts an excruciatingly bad, haplessly obscure acronym associated with dental hygiene aids. We learned in the late 1990s a number of lessons about how not to market free / open source, and the idiots who keep coming up with bad ideas like “FLOSS” and “FOSS” are determined to rush, like urban-legend lemmings, off the very cliff of PR incompetence that we so painfully learned to finally avoid, a decade ago. I’m sorry, but those people need to be cluebombed and routed around until they stop shooting at everyone’s feet.
I couldn’t have put it better myself, so I’m not going to try.
Near as I can figure, the only appeal this term has is a sort of lily-livered political correctness, as though people think they’d be making an ideological commitment that will cause petulant screaming from a million basements if they pick “open source” or “free software”.
Well, speaking as the guy who promulgated “open source” to abolish the colossal marketing blunders that were associated with the term “free software”, I think “free software” is less bad than “FLOSS”. Somebody, please, shoot this pitiful acronym through the head and put it out of our misery.
The problem with [FOSS and FLOSS] isn’t merely that that they sound like goofy nutjob organisation investigated by Emma Peel and John Steed. Worse, it is that neither term can be understood without first understanding both free software and open source, as prerequisite study.
That isn’t merely gross marketing failure; it’s a semantic black hole that sucks marketing into it, never to be seen again. It’s a finely executed study in nomenclature incompetence – and I can’t help noticing it’s promoted by, among others, the same crowd who were doing such a masterful job of keeping free software an obscure ideology prior to 1998.
Er. Yes. Quite…
I’ve been doing some research on the issues in Microsoft’s lawsuit against Tom-Tom. Here’s what I’ve found about the patents are at issue in the case:
I’m the lead of the GPSD project, a service daemon that monitors GPS receivers on serial or USB ports and provides TPV (time-position-velocity) reports in a simple format on on a well-known Internet port. GPSD makes this job looks easy. But it’s not — oh, it’s decidedly not — and thereby hangs an entertaining tale of hacker ingenuity versus multiple layers of suck.
From “200 Laptops Break a Business Model” in the pages of the New York Times:
So whoâ€™s up, whoâ€™s down and whoâ€™s out this time around? Microsoftâ€™s valuable Windows franchise appears vulnerable after two decades of dominance. Revenue for the companyâ€™s Windows operating system fell for the first time in history in the last quarter of 2008. The popularity of Linux, a free operating system installed on many netbooks instead of Windows, forced Microsoft to lower the prices on its operating system to compete.
Mene, mene, tekel, upharsin!
There was a novice who learned much at the Master’s feet, but felt something to be missing. After meditating on his doubts for some time, he found the courage to approach Master Foo about his problem.
â€œMaster Foo,â€ he asked â€œwhy do Unix users not employ antivirus programs? And defragmentors? And malware cleaners?â€
Master Foo smiled, and said â€œWhen your house is well constructed, there is no need to add pillars to keep the roof in place.â€
The novice replied â€œWould it not be better to use these things anyway, just to be certain?â€
Master Foo reached for a nearby ball of string, and began wrapping it around the novice’s feet.
â€œWhat are you doing?â€ the novice asked in surprise.
Master Foo replied simply: â€œTying your shoes.â€
Upon hearing this, the novice was enlightened.
(Other koans here.)
In Open Source: The Model Is Broken, Stuart Cohen complains that the business model based on selling support and services around open-source software is “not meeting the expectations of investors”. In related news, the sky is failing to meet my expectations by not raining tasty soup.
I predicted years ago that what would eventually do Microsoft in was white-box PC makers defecting because they needed to claw back profit margin as the Windows license became the largest single item in their bills of material.
And here’s the confirmation I’ve been awaiting: Microsoft Missing Netbook Growth as Linux Wins Sales. The boring biz-journalism headline is guarding some startling facts.
One of the advantages of having helped found the open-source movement that I cherish most is that nobody can criticize me when I criticize it. I’m a gadfly by nature, disgusted by cant even (actually, especially!) when it’s my own insights being reflected back at me as dogma. Anyone who actually does that is likely to flip me into full Discordian rascal-guru mode.
So I was actually pleased to learn of the existence of Linux-Hater’s Blog. I rather looked forward to winnowing through it for nuggets with which I could shock the more fanboyish members of my community by agreeing. Alas: when I finally went there with intent to read, I discovered that the never-actually-identified author of the blog had ended the project. I read the entire archives anway.
Every once in a while I hear it alleged that “open source” is just a marketing device for a practice that would be just as well off without it. This is seriously wrong, but it’s a confusion I’m partly to blame for because I have emphasized the marketing utility of the term in the past.
There’s an argument commonly heard these days that open-source software is all very well for infrastructure or commodity software where the requirements are well-established, but that it can’t really innovate. I laugh when I hear this, because I remember when the common wisdom was exactly the opposite — that we hackers were great for exploratory, cutting-edge stuff but couldn’t deliver reliable product.
How quickly people forget. We built the World Wide Web, fer cripessakes! The original browser and the original webservers were built by a hacker at CERN, not in some closed-door corporate shop. Before that, years before we got Linux and our own T-shirts, people who would later identify their own behavior correctly as open-source hacking built the Internet. (I was part of the tail end of that process myself; sometime I’ll blog about how and why the domain-name gold-rush is arguably my fault.)
I’ve spent a lot of time writing arguments for why open-source software is a good idea and everyone should do it. On the evidence, I’m pretty good at this. I achieved that goodness through a strategy of making rational, technical, utility-maximization arguments in which I explicitly disclaimed having any normative or moralizing agenda.
While I’m happy with the results I’ve gotten from that strategy, it means there are people in the world who think they can persuade me to give proprietary software a second look by making rational, utility-maximizing arguments of their own. One of my regular commenters wrote this recently: “Eric, you may want to give MSDN, Windows, and their developer tools a second, unprejudiced look; they really are better than what Linux has to offer.”
It’s not going to happen. Ever. And the fact that anyone could say that to me, and believe for a nanosecond they might get any other answer, means that I need to explain something in public: why I hate proprietary software.
A commenter on my post pre-announcing Why C++ Is Not Our Favorite Programming Language asked “esr, from the perspective of a graybeard, which chapters did you consider good and which chapters did you consider bad?”
(Technical note: I do not in fact have a beard, and if I did it would not be gray.)
Good question, and worthy of a blog entry. I was the first technical reviewer for the manuscript of this book back when it was in preparation — IDG published it, but I think it was passed to me through MIT Press. As I noted in the same comment thread, I worked hard at trying to persuade the authors to tone down the spleen level in favor of making a stronger technical case, but didn’t have much success. They wanted to rant, and by Ghod they were gonna rant, and no mere reviewer was gonna stop â€˜em.
I’ve thought this was a shame ever since. I am, of course, a long-time Unix fan; I’d hardly have written The Art of Unix Programming otherwise. I thought a book that soberly administered some salutary and well-directed shocks to the Unix community would be a good thing; instead, many of their good points were obscured by surrounding drifts of misdirected snark.
You can browse the Handbook itself here. What follows is my appraisal of how it reads 14 years later, written in real-time as I reread it. After the chapter-by-chapter re-review I’ll sum up and make some general remarks.
My blogging will be sporadic to nonexistent for a while, as my friend Rob Landley and I are concentrating heavily on writing a paper together. The working (and probably final) title is “Why C++ is Not Our Favorite Programming Language”. It begins:
C++ is an overcomplexity generator. It was designed to solve what
turned out to be the wrong problems; as a result, it lives in an
unhappy valley between two utility peaks in language-design space,
with neither the austere elegance of C nor the expressiveness and
capability of modern interpreted languages. The layers, patches, and
added features designed to lift it out of that valley have failed to
do so, resulting in a language that is bloated, obfuscated, unwieldy,
rigid, and brittle. Programs written in C++ tend to inherit all
In the remainder of this paper we will develop this charge into
a detailed critique of C++ and the style it encourages. While we
do not intend to insult the designers of C++, we will not make
excuses for them either. They repeatedly made design choices that
were well-intentioned, understandable in context, and wrong. We
think it is long past time for the rest of us to stop suffering
for those mistakes.
Yes, we are attempting to harpoon the Great White Whale of modern programming languages. I’m announcing this here to give my commenters the opportunity to contribute. If you know of a particularly good critical analysis of C++, or technically detailed horror story around it, please cite. Superb apologetics for the language would also be interesting.
The paper is developing primarily from a software-engineering perspective rather than out of formal language theory. I’m particularly looking for empirical studies on the importance of manual memory management as a defect attractor (I have the Prechelt paper from the year 2000). I’m also interested in any empirical studies comparing the productivity impact of nominative vs. structural vs. duck typing.
After about 3 days of work our draft is over 600 lines of clean narrative text in asciidoc. It’s going well.
A mailing list I frequent has been discussing the current financial meltdown, specifically a news story claiming that Wall Street foooled its own computers by feeding them risk assumptions the users knew were over-optimistic.
This is also a very strong case for F/OSS software. Had such software been in use, I strongly feel that the inherent biases programmed in would have been found.
But then, that’s also true for voting machine software.
As the original begetter of the kind of argument you’re making, I’d certainly like to think so…but no, not in either case.
In my last essay, The Vanishing Consumption Gap, I presented several lines of evidence leading to the conclusion that the consumption disparity between rich and poor in the U.S. is drastically less than the income disparity, and seems to be decreasing even as income disparity rises. This continues a historical trend, and there are causal reasons (ephemeralization and the efficiency-seeking effects of markets) to believe it’s happening everywhere on earth.
I concluded the essay by observing that the vanishing consumption gap has political consequences. Among other things (as I hinted in a comment on Oh, those bitter clingers!) it explains what’s the matter with Kansas.
What, if anything, is the essential and unique talent of good programmers?
In the beautiful-irony department, I have just learned that my name
and copyright now appears in the EULA (End-User License Agreement) of
a Microsoft product. A vector-graphics editor called “Microsoft
Expressions”, apparently — thanks to Martin Dawson for the
The history behind this is that GIFLIB is open-source software for
hacking GIF images — the direct ancestor of libungif, which is
the name under which the codebase is more widely known these days.
The original software was by Gershon Elber for DOS; around 1987 I
ported it to Unix, cleaned up the architecture, added numerous new
features, and wrote documentation. When Unisys started to jump salty
about the GIF patents in the mid-1990s, I handed the project off to a
maintainer outside U.S. jurisdiction, Toshio Kuratomi.
I have no idea why the copyright on this EULA is dated 1997, I
think that is a couple of years after I passed the baton to Toshio
Subsequently I did a lot of work on libpng, implementing 6 of the
14 chunk types in the PNG standard and designing a new more
object-oriented interface for that library. So if you use open-source
software that handles either of the two most popular raster-image
formats, it is rather likely that you rely on my code every day. Yes,
that includes all you Firefox and Netscape and Konq and Safari users
And now, my code is in a Microsoft product. This may not be the
first time; in fact, thinking about all the other places it would
have been silly for Microsoft to pass up using libpng and giflib,
it probably isn’t even the dozenth time.
I’m OK with this, actually. I write my code for anyone to use, and
‘anyone’ includes evil megacorporate monopolists pretty much by
definition. I wouldn’t change those terms retroactively if I could,
because I think empowering everyone is a far more powerful
statement than empowering only those I agree with. By doing so, I
express my confidence that my ideas will win even when my opponents
get the benefit of my code.
Besides…now, when Microsoft claims open source is inferior or not
innovative enough or dangerous to incorporate in your products or
whatever the FUD is this week, I get to laugh and point. Hypocrites.
Losers. You have refuted yourselves.