Today on Radio New Zealand National I talked about standards for computers and networking and why we need them.
The capsule summary here is:
- Having no standards allows companies to charge what they like and kills innovation.
- Having two or more standards is much the same as having none.
- Having one officially-blessed standard means that companies have to compete on the excellence of their products rather than being able to lock their customers in. And it allows magic like the Internet to emerge.
Read on for my speaking notes, and as usual there are some links at the bottom.
Q: You want to talk about standards – are you worried that standards are falling?
A: No, not particularly. I’m more concerned to make sure standards exist – particularly in computers and networking.
Q: I understand why you’d want standards in safety-critical areas like food and clothing, but why is it important for computers and networks?
A: Because it leads to customer choice, which leads to competition, which leads to innovation and value for money. It also leads to connectivity so that, today, most computers in the world can talk to most other computers in one way or another.
Q: OK, those are all good things. But what’s the connection with standards?
A: You can’t get interoperability without them. And interoperability sounds like a ghastly geek buzzword – it is a ghastly geek buzzword – but the concept is important. The word just means working together. Let’s take the Internet – it’s pretty much the classic example of interoperability, or working together. The Internet is not a collection of wires, a bunch of computers – or rather it is those things, but that’s almost irrelevant because they can be replaced, and they are being added to and changed all the time. What the Internet really is, is a collection of recipes for moving information from machine to machine in different ways. Those recipes are standards. And the standards that run the Internet are the Internet, in a very real way.
The Internet was developed as a set of standards. They were new standards – no one had figured out how to make computers talk to each other in such a general way before. And they are still the Internet standards.
Q: Are you saying computers couldn’t talk to each other before the Internet came along?
A: No – some computers could talk to each other. Mostly in corporate environments, using expensive equipment, and in very prescribed ways. But generally only computers from the same manufacturer, and often only computers from within the same range. It’s as though when you got your driving licence, it had the make of car on it – you had only passed to drive Fords, say, or even worse, you had only passed to drive Ford Falcons.
The reason driving licences don’t work that way are simple. The first reason is that we all use the same road rules regardless of the type of vehicle we drive. A bus has to stop at the same red light as a Smart Car, and same give way rules and speed limits apply and so forth. The other reason is that they way you drive each kind of car is the same. Anyone who is used to driving a car can jump into pretty much any other car and the pedals are in the same place, you turn the steering wheel the same way, and you get much the effect you are used to. You could even jump into the driving seat of a bus and you know it’s not going to be completely different. There’s a difference between automatics and manuals, but it’s not fundamental to how you drive. You still press on the right to go faster, turn the wheel clockwise to turn right, and the same road rules apply regardless.
And all this is because there are standards in you drive on the road – they’re called the road rules – and there are standards in how a car driving position is laid out.
Q: OK, but what’s the analogy with computers?
A: The main point here is the road rules. They specify how lots of us use the same resource, the roads, and mostly don’t collide with each other. That’s a safety matter for roads of course, but it’s also necessary for traffic flow. If everybody just ignored road rules not only would there be crashes, no one would get anywhere. Computer networking is like that. You have a lot of computers all trying to send information across a network. Does each one just shout as loud as it can? Of course not, there are some subtle and clever rules describing traffic flow that all computers have to obey, and those rules make it possible for traffic to flow through the network.
Now different computer manufacturers always made their machines so they would talk to each other, although it was usually at an extra cost, but each manufacturer made up its own road rules. So computers from, say, IBM, wouldn’t talk to ones from Unisys. Even worse, IBM mainframes wouldn’t talk to other lines of IBM computers – and I don’t mean to single out IBM, they were all at it. And if you talked to these manufacturers they would all say things like: our computers all use standards to talk to each other, we have very good engineers and they have made us some very good standards. How can you argue with that?
Q: But computers from different companies wouldn’t talk to each other?
A: No. And that mattered so much to the companies that bought computers, because they wanted all their machines to talk – they wanted their accounting system to talk to their payroll and so forth. And computer companies knew that. Typically they would almost give away the computer into a big corporate client, so they could try to hook that client into buying all their machines from the same computer company.
Another non-computer example of this kind of thing is the Australian railway network. Australia was originally a set of British colonies on the coast of a continent they couldn’t cross. All trade and traffic was done by ship. As each colony grew richer and larger, it built a railway. Now railways have to be built to specific standards for the trains to run on them – the most obvious is what is called the gauge, which is the distance between the rails. Locomotives, carriages and wagons all have to be built to run on a specific gauge. And each colony chose the gauge it though would suit it best and you can guess what happened, as the rail networks grew and met each other at state borders, they had different gauges and you couldn’t move trains from one to another. Everything and everybody had to be offloaded from, say, a Victorian train and loaded onto a South Australian one. And this happened despite each colony receiving advice from Mother England to choose the same gauge, each colony thought is knew best and went ahead and did it anyway. England had of course been through the same pain itself as different railway companies built networks on different gauges in the previous century.
Q: So we don’t learn!
A: Quite. Or rather: we let individual interests override the obvious benefits of standardization even when we know it’s a stupid thing to do. And the railway example is a gross over-simplification for the computer networking context which is more like a complex set of road rules. And in the 70s and 80s each company was doing its road rules differently, but the result was that most computers couldn’t talk to each other. And of course, there wasn’t an Internet because there couldn’t be one.
Q: How did we get to where we are today?
A: Computer customers – who were themselves big companies – started pressing for common standards. Each computer company said: we do have standards, they are very good ones – but their customers said, we need you to have the same standard. And we’d like it to be an open standard – that’s one we can all look at and understand. There was massive resistance from computer companies, and there was all kinds of bad behaviour, but eventually customers voted with their feet and only bought machines which obeyed published standards, and of course manufacturers sprang up to make this equipment, and eventually the big manufacturers rather grumpily started to follow suit. And customers began to be able to buy machines that would work with other computers regardless of the manufacturer.
And the Internet has come out of that. The Internet simply would not have been possible without a recognition that a common, open standard pays dividends for everyone, and customers being prepared to show some solidarity and only buy standards-compliant gear. So, when a couple of very clever engineers came up with the original Internet standards and they were shown to work, the culture of buying standardised machines meant that manufacturers were effectively forced to build machines that worked on the Internet.
Q: Do software manufacturers benefit from hardware standards?
A: Yes, very much, because it gives their software a much bigger range of machines to run on and so it gives them a bigger market. Software manufacturers have generally always argued for hardware standards. Of course, commercial software manufacturers don’t necessarily want software standards, though – they’d rather get people to buy all their software from the same place. So they are sometimes in a position of arguing for hardware standards and against software standards – or rather, arguing that there should be several standards instead of just one which is just as bad, as the Australian railway examples shows.
Q: Having lots of standards is bad?
A: When they are for the same thing, yes that’s very bad. What if you wanted to observe the ‘drive on the right’ standard while I use the ‘drive on the left’ one? In computer networking it’s not as obvious as this driving example, but it’s still very harmful because having multiple standards lets computer or software manufacturers trap customers into one product and so reduces competition. It also stops the next wonderful idea like the Internet from getting started. Manufacturers will try every trick in the book on this, often painting the issue as one of choice. I’m sure that’s how it was pushed to the Australian colonies’ railway services and their country was still paying the price generations later!
Q: How do you know what is a real standard?
A: In computer terms – anything with an ISO number is a proper standard, so is anything from the W3C – that’s the world wide web consortium – and so is anything with an Internet RFC number attached to it. So is anything with an IEEE number – they are mostly hardware networking standards. The important point is that just because a computer manufacturer or a software company tells you something is a standard – that doesn’t make it one. There are international standards bodies that bless standards. New Zealand’s link to the global standards bodies is called Standards New Zealand – I’ve linked its web page today. And this Sunday is World Standards Day – again, in the links, there’s a pointer to that as well.
Anyway, the take home message – standards can seem arcane, dull and irrelevant. But they are crucial to our modern world. Don’t ignore them and don’t be talked into ignoring them.
As always, you can discuss this broadcast at it.gen.nz.
A history of Australian railways on Wikipedia.
The W3C – the World Wide Web consortium.
The Internet standards.
The IEEE standards page.