Whither Software?

Back in the year dot, we all knew what software was and how it worked. Computers just sat on the coffee table and did nothing unless you bought some software for them, or you wrote it yourself. Most people did write software, even if it was just a trivial program to balance their cheque-book or make farting noises. My second computer was an Acorn Atom. I built it myself from a kit and wrote my dissertation on it using a word-processor I wrote myself. The screen was an old black-and-white TV (a Thorn 1500 for TV geeks). From time to time the picture went and I had to open the back, carefully swing out the circuit board and wiggle a valve. Anyone who knows the Thorn 1500 will know exactly which valve that was. Later on I fitted a couple of switches to it that reversed the screen left-to-right and top-to-bottom, so you could watch it in mirror-image or upside-down. It kept me amused for an hour or two. This week I bought a new telly, and the manual has instructions for upgrading the software. If I wanted to, I could even program it myself, but I wont. It does its job well enough without me adding bugs to it. It may be a computer, but I only need a television.

The Appliance of Science

That's all most people need — an appliance; an appliance to watch TV, an appliance to wash clothes, to make toast, to make phone calls, and to write letters, read email, play games and browse the Internet. All these things may have computers in them but they are all just appliances. Even computers are just appliances. The one I've got in front of me now is an appliance. I program it from time to time, but mostly it's just browsing the net or being a word-processor. There are many, many more computers around now than there were in 1980 when I built the Atom, but probably only the same number of them get programmed by their owners.

It is said that once you learn to weld, you never look at metal in the same way again. What was once a solid, immutable lump becomes alive with possibilities; it doesn't have to be like it is; it can be changed. That broken garden fork doesn't have to be thrown away; it can be mended, and while you're doing that, you might as well fix the hinge on the gate. Why buy an expensive wrought-iron gate when bar iron is cheap and making one would be fun? On the other hand, when Arthur Dent learned to understand the language of birds he found that instead of the trees being full of glorious song, they were full of inane gossip. Software is the same. Once you understand how to write a program, software becomes malleable; it doesn't have to be like it is; it can be changed. If it's too expensive to buy it can be made. And that difficult feature you've been putting up with would be so much easier if it was implemented this way.

No User-Serviceable Parts Inside

Back in the 1960's I had a cassette tape recorder. Inside the battery compartment there was a piece of paper with the complete circuit diagram on it. If it went wrong, that was enough to work out what was at fault and where to find it, or if I wanted to add some neat new feature, the circuit diagram would tell me where to put it and what constraints I had. Of course, being rather young at the time I couldn't do that, but the possibility was there; I had permission. If I had tried to do so of course, I would have probably voided the warranty, which is fair enough, but I would not have been, say, sued for millions of pounds.

Most devices don't come with a circuit diagram. Most manufacturers want to discourage their customers from opening the box and fiddling but if you do, nothing dreadful happens — at least not once the warranty has run out. Software is different; the companies that make software like us to buy appliances. That way they can keep selling us software in pretty shrink-wrapped boxes. One might wish that if you fiddle with it, you void the warranty, but that is not what happens. If you fiddle with it you (potentially) get sued for millions of pounds.

Two amateur gardeners are taking a break from digging and are shooting the breeze. Joe shows off his new WizzoTM fork, but Sid doesn't seem that impressed. Joe asks him why.
"WhizzoTM make decent enough forks, but they use an additive in the steel. It doesn't make it stronger or anything; it's just to stop you mending it."
Joe wonders why that might make a difference, after all he got this fork because his last one got bent. He didn't consider mending it; a new one was cheaper.
"You should have brought it to me," replies Sid. "A couple of minutes with the old oxy-acetylene and it would have been as good as new."
"You know," Joe reflects, "one thing about this fork is my foot keeps slipping off it more than it did with the old one."
"I had that problem," says Sid. "So I stuck a piece on to make the cross bar a bit thicker and sloped it up at the ends; it makes a huge difference; it's just a shame yours is a WhizzoTM."

Shrink-wrapped commercial software is like Joe's fork; if it's an appliance you're looking for then it is fine. But if you want to fix it when it breaks, or you want to change it to suit you better, then hard luck. The only thing you can do is to complain to the manufacturers. If you have paid them tens of thousands of pounds then they might take an interest.

Open Source

There is a small paragraph in the user manual for my new television.

This television contains open source software. Philips hereby offers to deliver or make available on request, for a charge no more than the cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code on a medium customarily used for software interchange. This offer is valid for a period of 3 years after the date of purchase of this product.

That is not quite as good as my old cassette recorder — they don't ship the television with a CD containing the source code, and they don't supply the circuit diagram either, but it is good enough. If I wanted to I could change the software. Maybe I could fix a bug or add a small feature that was missing.

There are many thousands of open source programs. Many of them are so good that they rank among the best in their field. Here are a few.

  • Open-Office — An office suite that gives Microsoft Office a run for it's money.
  • The Gimp — A picture manipulation program just a little less powerful than Adobe Photoshop.
  • jEdit — A text editor several times more powerful than Notepad.
  • Wireshark — A network protocol analyser that leads its field.
  • Apache — The leading web server.
  • Firefox — The most popular web browser.
  • MySQL — A database as good as you'll ever need unless you are a huge company.
  • Linux — An operating system that rivals Windows and MacOS.

They are all free. Free as in free beer, and free as in freedom. And that is not the only advantage over commercial applications.

  • No cost
  • No piracy
  • No dodgy hacks
  • No risk of installing a virus along with the program
  • No guilt
  • No broken demo or missing features until you pay
  • No anti-copying features getting in your way
  • Just solid, proven software that does the job and does it well, with
  • better support than for commercial software, and
  • more chance of getting bugs fixed and changes made

The really counter-intuitive thing about Open Source, is that it is supported better than commercial programs. That is because they invariably attract a large crowd of knowledgeable and helpful people around them, who are eager to help others in their spare time. Whereas the commercial companies have to pay their support workers, and discipline them for not closing issues fast (whether the customer thinks they are solved or not.) They too might attract a helpful crowd of customers, but unlike Open-Source, the crowd around commercial software are guessing. With commercial software, the company is the source of all truth. If the company isn't telling then everyone is in the dark. But with Open-Source the truth is out there for anyone to find. So Open-Source software has more people working in customer support, and they are more knowledgeable, more friendly, and they are doing a job they love for the joy of doing it.

You don't have to learn to program to use these programs; they are fine if all you want is a cheap appliance. But if you wanted to, you could fix them or change them or, like Joe, you could find someone willing to do it for you. And then maybe in the longer term, unlike learning to weld, all the kit you need to get to learn to program is free too. Even the text books are free. It's fun and empowering too. Just like welding, or dressmaking, or carpentry, or …

Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License