How Capitalism Kills Good Software
There's a popular belief that capitalism succeeds because it enables the best product in any industry to survive, while the poorer products lose out. There's also a popular belief that the market leads to "lock-in": an inferior concept will come to dominate a product space, and improvement becomes impossible because all subsequent developments are forced to conform with it.
Both beliefs are true. At a high level, capitalism certainly outdid socialism in product innovation. Janos Kornai gave the most sophisticated explanation, that socialist economies were "resource constrained" while capitalist ones were "demand constrained".
To paraphrase Kornai's argument, the relentless pressure on centrally-planned Soviet factories to increase the volume of output each year meant that innovation was ignored—just produce last year's model in more volume. Capitalist firms, however, compete against each other for a limited number of customers, and often the firm that innovated the most would win the battle, and prosper—to the benefit of consumers.
But within capitalism, an inferior technology—like the QWERTY keyboard I'm typing this post on—can dominate because, once it developed as a standard layout for typewriters, all typists learnt on it, and it became impossible to introduce an alternative.
The QWERTY keyboard became the standard when mechanical keyboards didn't move fast enough for typists' fingers, and keyboards designed for speed of typing would jam. QWERTY put some frequently typed characters—like "a" and "e"— where the weakest fingers would have to type them, thus slowing typists down and avoiding keys jamming.
With computer keyboards today, jamming is no longer an issue, but we're stuck with QWERTY. No capitalist firm will produce a keyboard with a more intuitive layout, because a computer without the familiar QWERTY layout would be ignored by consumers. The real-world fact that a capitalist has to satisfy the market to succeed puts a break on how much a piece of technology can change.
There's another real-world fact that has frustrated me over the years—and it's striking me again now, as I have been forced to abandon my favorite program for doing mathematics, Mathcad.
This is that, because a product is proprietary under capitalism, it's possible for great software to be bought by a company whose management doesn't understand it. Seeing just the dollar signs from a product's customers, an ambitious company can buy the rights to software, and then ruin it. Ultimately, that ambitious company may well die, which is no great loss. But the great software they bought out and then accidentally killed dies with them.
I saw a lot of this in the 80s and 90s, because I was Software Editor at two Australian computing magazines, firstly Australian Computing, and then Your Computer.
The first great microcomputer database program, dBASE, was designed by the aerospace engineer Wayne Ratliff as a side gig to help him make money on the American football pools. It was bought by a company called Ashton-Tate—which is now defunct. The Wikipedia page https://en.wikipedia.org/wiki/Ashton-Tate tells a very colourful tale of its rise and demise, but one detail it leaves out is that Ratliff wanted to move dBase from its clunky foundations to an advanced approach to databases known as the Entity-Relationship (E-R) model.
Ashton-Tate's management wouldn't let him, and instead insisted that he increase the number of files the program could handle from two at a time to ten. Ratliff refused, and left the company. Ashton-Tate went ahead, and dBASE ultimately failed, because what it needed was a better way of organizing data—which is what the Entity-Relationship model Ratliff wanted to introduce would have provided.
That failing, along with Microsoft's strategy of bundling a database (Access) along with its word processor Word and spreadsheet Excel, ultimately killed the whole end-user database model. Now enterprises use some variety of SQL for large-scale transactions data, while end users … use columns and rows in Excel, which is a downright primitive way of storing data.
The list of programs which befell this fate of death by bad management is huge. And because, when I was a Software Editor, I could get any program I wanted for free, I felt these deaths severely, because these were the programs that I chose to use myself.
A leading Australian hacker once visited my office, and stood transfixed in awe at the shelves of computer software that I had. I humble-bragged "What's the matter, haven't you seen that much software before?". He floored me with the riposte of "No, but I've never seen that much legal software before."
Ventura Publisher (desktop publishing) … Framework (outline processor/integrated software) … TK/Solver (flexible data analysis) … Advanced Revelation (advanced database) … The Magician (graphics) … AskSam (free-form database) … PC Express (multi-dimensional analytic database) Ultimately, I've been forced to abandon them all, because management stuffed them up. I now use inferior programs, which outlived these great programs because they had something else going for them—market size in the case of Microsoft's offerings, an unbreakable market share in the case of other more niche programs.
This week, reluctantly, I'm adding Mathcad to that list. Mathcad is a mathematics program which emulated the blank sheet of paper on which mathematicians work. You entered equations exactly as a mathematician would, and Mathcad calculated, analysed, and graphed them for you.
Then in 2006, Mathcad was bought about by a company called Parametric Technology (PTC). It decided to redesign the program from the ground up, and offer a new program called Prime.
But PTC didn't bother with maintaining backwards compatibility: Prime couldn't load Mathcad files natively, and for coming on two decades now, it has failed to offer features in Prime that existed in Mathcad. Two key features for me were an easy data-importing system called the Data Wizard, and the capacity to have 2 vertical axes on a graph. The former made it easy to load data into Mathcad, the latter made it a cinch to produce graphs like the one below, with two different data series plotted on two axes so that, despite their very different values, it's easy to see the relationship between the two series.
Figure 1: A two-axes graph in Mathcad. 15 years after PTC started developing Prime, it still doesn't offer double-axis graphs
Over a decade later, PTC still haven't added these features to Prime. Mathcad power-users like myself got around this problem by continuing to use Mathcad, even though the last release (version 15) came out over a decade ago. But at the end of last year, PTC announced that they were no longer going to support Mathcad: if you needed to move your copy-protected version from an old to a new machine, tough: after December 2021, it can't be done.
PTC might have thought it was forcing diehards like me to finally adopt Prime, but there's one more thing they've done as well: Prime is now subscription based, and unless I pay a fee every year, it won't run (a cut-down free version still works, but the comprehensive tool I'd prefer to use is now defunct). So, I have to pay a fee to a company that, in my opinion, ruined a great piece of software, and now wants to charge me an annual fee for not providing features that I regard as essential.
Well bugger that. Instead, I'm adding Mathcad to my collection of great ideas killed by bad management, and I'm going to have to find alternatives to do less well what Mathcad did well all by itself.
There's a freeware program called SMath Studio that enables the free-form mathematics work I used to do in Mathcad; I'm going to have to learn how to drive Mathematica for symbolic logic—it's more powerful than Mathcad, but also far harder to learn; and sometime soon I'll be releasing my own program—called Ravel—to handle the analysis and graphing of economic and financial data that I used to do with Mathcad.
Figure 2: A sneak peek at Ravel
I'm therefore going to have to devote brain cells and time to learning SMath Studio and Mathematica, which for a while is going to reduce my productivity on the economic and environmental issues that I'd prefer to think about. So please bear with me as I learn how to drive these not-so-great programs, as bad management forces me to throw another great program onto the scrapheap of software that capitalism has killed.