Hackers and Painters - Big Ideas from the Computer Age

Chapter 4. Good Bad Att.i.tude.

When you find something you can"t say, what do you do with it? My advice is, don"t say it. Or at least, pick your battles.

Suppose in the future there is a movement to ban the color yellow. Proposals to paint anything yellow are denounced as "yellowist," as is anyone suspected of liking the color. People who like orange are tolerated but viewed with suspicion. Suppose you realize there is nothing wrong with yellow. If you go around saying so, you"ll be denounced as a yellowist too, and you"ll find yourself having a lot of arguments with anti-yellowists. If your aim in life is to rehabilitate the color yellow, that may be what you want. But if you"re mostly interested in other questions, being labelled as a yellowist will just be a distraction. Argue with idiots, and you become an idiot.

The most important thing is to be able to think what you want, not to say what you want. And if you feel you have to say everything you think, it may inhibit you from thinking improper thoughts. I think it"s better to follow the opposite policy. Draw a sharp line between your thoughts and your speech. Inside your head, anything is allowed. Within my head I make a point of encouraging the most outrageous thoughts I can imagine. But, as in a secret society, nothing that happens within the building should be told to outsiders. The first rule of Fight Club is, you do not talk about Fight Club.

When Milton was going to visit Italy in the 1630s, Sir Henry Wootton, who had been amba.s.sador to Venice, told him that his motto should be "i pensieri stretti & il viso sciolto." Closed thoughts and an open face. Smile at everyone, and don"t tell them what you"re thinking. This was wise advice. Milton was an argumentative fellow, and the Inquisition was a bit restive at that time. But the difference between Milton"s situation and ours is only a matter of degree. Every era has its heresies, and if you don"t get imprisoned for them, you will at least get in enough trouble that it becomes a complete distraction.

I admit it seems cowardly to keep quiet. When I read about the hara.s.sment to which the Scientologists subject their critics, or people branded as anti-Semitic for speaking out against Israeli human-rights abuses, or researchers threatened with lawsuits under the DMCA, part of me wants to say, "All right, you b.a.s.t.a.r.ds, bring it on." The problem is, there are so many things you can"t say. If you said them all you"d have no time left for your real work. You"d have to turn into Noam Chomsky.

The trouble with keeping your thoughts secret, though, is that you lose the advantages of discussion. Talking about an idea leads to more ideas. So the optimal plan, if you can manage it, is to have a few trusted friends you can speak openly to. This is not just a way to develop ideas; it"s also a good rule of thumb for choosing friends. The people you can say heretical things to without getting jumped on are also the most interesting to know.

3.9. Viso Sciolto?

Perhaps the best policy is to make it plain that you don"t agree with whatever zealotry is current in your time, but not to be too specific about what you disagree with. Zealots will try to draw you out, but you don"t have to answer them. If they try to force you to treat a question on their terms by asking "are you with us or against us?" you can always just answer "neither."

Better still, answer "I haven"t decided." That"s what Larry Summers did when a group tried to put him in this position. Explaining himself later, he said "I don"t do litmus tests." A lot of the questions people get hot about are actually quite complicated. There is no prize for getting the answer quickly.

If the anti-yellowists seem to be getting out of hand and you want to fight back, there are ways to do it without getting yourself accused of yellowism. Like skirmishers in an ancient army, you want to avoid directly engaging the main body of the enemy"s troops. Better to hara.s.s them with arrows from a distance.

One way to do this is to ratchet the debate up one level of abstraction. If you argue against censorship in general, you can avoid being accused of whatever heresy is contained in the book or film that someone is trying to censor. You can attack labels with meta-labels: labels that refer to the use of labels to prevent discussion. The spread of the term "political correctness" meant the beginning of the end of political correctness, because it enabled one to attack the phenomenon as a whole without being accused of any of the specific heresies it sought to suppress.

Another way to counterattack is with metaphor. Arthur Miller undermined the House Un-American Activities Committee by writing a play, The Crucible, about the Salem witch trials. He never referred directly to the committee and so gave them no way to reply. What could HUAC do, defend the Salem witch trials? And yet Miller"s metaphor stuck so well that to this day the activities of the committee are often described as a "witch-hunt."

Best of all, probably, is humor. Zealots, whatever their cause, invariably lack a sense of humor. They can"t reply in kind to jokes. They"re as unhappy on the territory of humor as a mounted knight on a skating rink. Victorian prudishness, for example, seems to have been defeated mainly by treating it as a joke. Likewise its reincarnation as political correctness. "I am glad that I managed to write The Crucible," Arthur Miller wrote, "but looking back I have often wished I"d had the temperament to do an absurd comedy, which is what the situation deserved."

3.10. Always Be Questioning

A Dutch friend says I should use Holland as an example of a tolerant society. It"s true they have a long tradition of comparative open-mindedness. For centuries the low countries were the place to go to say things you couldn"t say anywhere else, and this helped make the region a center of scholarship and industry (which have been closely tied for longer than most people realize). Descartes, though claimed by the French, did much of his thinking in Holland.

And yet, I wonder. The Dutch seem to live their lives up to their necks in rules and regulations. There"s so much you can"t do there; is there really nothing you can"t say?

Certainly the fact that they value open-mindedness is no guarantee. Who thinks they"re not open-minded? Our hypothetical prim miss from the suburbs thinks she"s open-minded. Hasn"t she been taught to be? Ask anyone, and they"ll say the same thing: they"re pretty open-minded, though they draw the line at things that are really wrong. In other words, everything is ok except things that aren"t.

When people are bad at math, they know it, because they get the wrong answers on tests. But when people are bad at open mindedness, they don"t know it. In fact they tend to think the opposite. Remember, it"s the nature of fashion to be invisible. It wouldn"t work otherwise. Fashion doesn"t seem like fashion to someone in the grip of it. It just seems like the right thing to do. It"s only by looking from a distance that we see oscillations in people"s idea of the right thing to do, and can identify them as fashions.

Time gives us such distance for free. Indeed, the arrival of new fashions makes old fashions easy to see, because they seem so ridiculous by contrast. From one end of a pendulum"s swing, the other end seems especially far away.

To see fashion in your own time, though, requires a conscious effort. Without time to give you distance, you have to create distance yourself. Instead of being part of the mob, stand as far away from it as you can and watch what it"s doing. And pay especially close attention whenever an idea is being suppressed. Web filters for children and employees often ban sites containing p.o.r.nography, violence, and hate speech. What counts as p.o.r.nography and violence? And what, exactly, is "hate speech?" This sounds like a phrase out of 1984.

Labels like that are probably the biggest external clue. If a statement is false, that"s the worst thing you can say about it. You don"t need to say that it"s heretical. And if it isn"t false, it shouldn"t be suppressed. So when you see statements being attacked as x-ist or y-ic (subst.i.tute your current values of x and y), whether in 1630 or 2030, that"s a sure sign that something is wrong. When you hear such labels being used, ask why.

Especially if you hear yourself using them. It"s not just the mob you need to learn to watch from a distance. You need to be able to watch your own thoughts from a distance. That"s not a radical idea, by the way; it"s the main difference between children and adults. When a child gets angry because he"s tired, he doesn"t know what"s happening. An adult can distance himself enough from the situation to say "never mind, I"m just tired." I don"t see why one couldn"t, by a similar process, learn to recognize and discount the effects of moral fashions.

You have to take that extra step if you want to think clearly. But it"s harder, because now you"re working against social customs instead of with them. Everyone encourages you to grow up to the point where you can discount your own bad moods. Few encourage you to continue to the point where you can discount society"s bad moods.

How can you see the wave, when you"re the water? Always be questioning. That"s the only defence. What can"t you say? And why?

Chapter 4. Good Bad Att.i.tude.

To the popular press, "hacker" means someone who breaks into computers. Among programmers it means a good programmer. But the two meanings are connected. To programmers, "hacker" connotes mastery in the most literal sense: someone who can make a computer do what he wants-whether the computer wants to or not.

To add to the confusion, the noun "hack" also has two senses. It can be either a compliment or an insult. It"s called a hack when you do something in an ugly way. But when you do something so clever that you somehow beat the system, that"s also called a hack. The word is used more often in the former than the latter sense, probably because ugly solutions are more common than brilliant ones.

Believe it or not, the two senses of "hack" are also connected. Ugly and imaginative solutions have something in common: they both break the rules. And there is a gradual continuum between rule breaking that"s merely ugly (using duct tape to attach something to your bike) and rule breaking that is brilliantly imaginative (discarding Euclidean s.p.a.ce).

Hacking predates computers. When he was working on the Manhattan Project, Richard Feynman used to amuse himself by breaking into safes containing secret doc.u.ments. This tradition continues today. When we were in grad school, a hacker friend of mine who spent too much time around MIT had his own lock picking kit. (He now runs a hedge fund, a not unrelated enterprise.) It is sometimes hard to explain to authorities why one would want to do such things. Another friend of mine once got in trouble with the government for breaking into computers. This had only recently been declared a crime, and the FBI found that their usual investigative technique didn"t work. Police investigation apparently begins with a motive. The usual motives are few: drugs, money, s.e.x, revenge. Intellectual curiosity was not one of the motives on the FBI"s list. Indeed, the whole concept seemed foreign to them.

Those in authority tend to be annoyed by hackers" general att.i.tude of disobedience. But that disobedience is a byproduct of the qualities that make them good programmers. They may laugh at the CEO when he talks in generic corporate new speech, but they also laugh at someone who tells them a certain problem can"t be solved. Suppress one, and you suppress the other.

This att.i.tude is sometimes affected. Sometimes young programmers notice the eccentricities of eminent hackers and decide to adopt some of their own in order to seem smarter. The fake version is not merely annoying; the p.r.i.c.kly att.i.tude of these posers can actually slow the process of innovation.

But even factoring in their annoying eccentricities, the disobedient att.i.tude of hackers is a net win. I wish its advantages were better understood.

For example, I suspect people in Hollywood are simply mystified by hackers" att.i.tudes toward copyrights. They are a perennial topic of heated discussion on Slashdot. But why should people who program computers be so concerned about copyrights, of all things?

Partly because some companies use mechanisms to prevent copying. Show any hacker a lock and his first thought is how to pick it. But there is a deeper reason that hackers are alarmed by measures like copyrights and patents. They see increasingly aggressive measures to protect "intellectual property" as a threat to the intellectual freedom they need to do their job. And they are right.

It is by poking about inside current technology that hackers get ideas for the next generation. No thanks, intellectual homeowners may say, we don"t need any outside help. But they"re wrong. The next generation of computer technology has often-perhaps more often than not-been developed by outsiders. In 1977 there was no doubt some group within IBM developing what they expected to be the next generation of business computer. They were mistaken. The next generation of business computer was being developed on entirely different lines by two long-haired guys called Steve in a garage in Los Altos. At about the same time, the powers that be were cooperating to develop the official next generation operating system, Multics. But two guys who thought Multics excessively complex went off and wrote their own. They gave it a name that was a joking reference to Multics: Unix.

Figure 4-1. Jobs and Wozniak with a circ.u.mvention device, 1975.

The latest intellectual property laws impose unprecedented restrictions on the sort of poking around that leads to new ideas. In the past, a compet.i.tor might use patents to prevent you from selling a copy of something they made, but they couldn"t prevent you from taking one apart to see how it worked. The latest laws make this a crime. How are we to develop new technology if we can"t study current technology to figure out how to improve it?

Ironically, hackers have brought this on themselves. Computers are responsible for the problem. The control systems inside machines used to be physical: gears and levers and cams. Increasingly, the brains (and thus the value) of products is in software. And by this I mean software in the general sense: i.e. data. A song on an LP is physically stamped into the plastic. A song on an iPod"s disk is merely stored on it.

Data is by definition easy to copy. And the Internet makes copies easy to distribute. So it is no wonder companies are afraid. But, as so often happens, fear has clouded their judgement. The government has responded with draconian laws to protect intellectual property. They probably mean well. But they may not realize that such laws will do more harm than good.

Why are programmers so violently opposed to these laws? If I were a legislator, I"d be interested in this mystery-for the same reason that, if I were a farmer and suddenly heard a lot of squawking coming from my hen house one night, I"d want to go out and investigate. Hackers are not stupid, and unanimity is very rare in this world. So if they"re all squawking, perhaps there is something amiss.

Could it be that such laws, though intended to protect America, will actually harm it? Think about it. There is something very American about Feynman breaking into safes during the Manhattan Project. It"s hard to imagine the authorities having a sense of humor about such things over in Germany at that time. Maybe it"s not a coincidence.

Hackers are unruly. That is the essence of hacking. And it is also the essence of American-ness. It is no accident that Silicon Valley is in America, and not France, or Germany, or England, or j.a.pan. In those countries, people color inside the lines.

I lived for a while in Florence. But after I"d been there a few months I realized that what I"d been unconsciously hoping to find there was back in the place I"d just left. The reason Florence is famous is that in 1450, it was New York. In 1450 it was filled with the kind of turbulent and ambitious people you find now in America. (So I went back to America.) It is greatly to America"s advantage that it is a congenial atmosphere for the right sort of unruliness-that it is a home not just for the smart, but for smartalecks. And hackers are invariably smart-alecks. If we had a national holiday, it would be April 1st. It says a great deal about our work that we use the same word for a brilliant or a horribly cheesy solution. When we cook one up we"re not always 100% sure which kind it is. But as long as it has the right sort of wrongness, that"s a promising sign. It"s odd that people think of programming as precise and methodical. Computers are precise and methodical. Hacking is something you do with a gleeful laugh.

In our world some of the most characteristic solutions are not far removed from practical jokes. IBM was no doubt rather surprised by the consequences of the licensing deal for DOS, just as the hypothetical "adversary" must be when Michael Rabin solves a problem by redefining it as one that"s easier to solve.

Smart-alecks have to develop a keen sense of how much they can get away with. And lately hackers have sensed a change in the atmosphere. Lately hackerliness seems rather frowned upon.

To hackers the recent contraction in civil liberties seems especially ominous. That must also mystify outsiders. Why should we care especially about civil liberties? Why programmers, more than dentists or salesmen or landscapers?

Let me put the case in terms a government official would appreciate. Civil liberties are not just an ornament, or a quaint American tradition. Civil liberties make countries rich. If you made a graph of GNP per capita vs. civil liberties, you"d notice a definite trend. Could civil liberties really be a cause, rather than just an effect? I think so. I think a society in which people can do and say what they want will also tend to be one in which the most efficient solutions win, rather than those sponsored by the most influential people. Authoritarian countries become corrupt; corrupt countries become poor; and poor countries are weak. It seems to me there is a Laffer curve for government power, just as for tax revenues. At least, it seems likely enough that it would be stupid to try the experiment and find out. Unlike high tax rates, you can"t repeal totalitarianism if it turns out to be a mistake.

This is why hackers worry. The government spying on people doesn"t literally make programmers write worse code. It just leads eventually to a world in which bad ideas will win. And because this is so important to hackers, they"re especially sensitive to it. They can sense totalitarianism approaching from a distance, as animals can sense an approaching thunderstorm.

It would be ironic if, as hackers fear, recent measures intended to protect national security and intellectual property turned out to be a missile aimed right at what makes America successful. But it would not be the first time that measures taken in an atmosphere of panic had the opposite of the intended effect.

There is such a thing as American-ness. There"s nothing like living abroad to teach you that. And if you want to know whether something will nurture or squash this quality, it would be hard to find a better focus group than hackers, because they come closest of any group I know to embodying it. Closer, probably, than the men running our government, who for all their talk of patriotism remind me more of Richelieu or Mazarin than Thomas Jefferson or George Washington.

When you read what the founding fathers had to say for themselves, they sound more like hackers. "The spirit of resistance to government," Jefferson wrote, "is so valuable on certain occasions, that I wish it always to be kept alive."

Imagine an American president saying that today. Like the remarks of an outspoken old grandmother, the sayings of the the founding fathers have embarra.s.sed generations of their less confident successors. They remind us where we come from. They remind us that it is the people who break rules that are the source of America"s wealth and power.

Those in a position to impose rules naturally want them to be obeyed. But be careful what you ask for. You might get it.

Chapter 5. The Other Road Ahead.

In the summer of 1995, my friend Robert Morris and I decided to start a startup. The PR campaign leading up to Netscape"s IPO was running full blast then, and there was a lot of talk in the press about online commerce. At the time there might have been thirty actual stores on the Web, all made by hand. If there were going to be a lot of online stores, there would need to be software for making them, so we decided to write some.

For the first week or so we intended to make this an ordinary desktop application. Then one day we had the idea of making the software run on our web server, using the browser as an interface. We tried rewriting the software to work over the Web, and it was clear that this was the way to go. If we wrote our software to run on the server, it would be a lot easier for the users and for us as well.

This turned out to be a good plan. Now, as Yahoo Store, this software is the most popular online store builder, with over 20,000 users.

When we started Viaweb, hardly anyone understood what we meant when we said that the software ran on the server. It was not until Hotmail was launched a year later that people started to get it. Now everyone knows that this is a valid approach. There is a name now for what we were: an Application Service Provider, or ASP.

I think a lot of the next generation of software will be written on this model. Even Microsoft, who have the most to lose, seem to see the inevitability of moving some things off the desktop. If software moves off the desktop and onto servers, it will mean a very different world for developers. This essay describes the surprising things we saw, as some of the first visitors to this new world. To the extent software does move onto servers, what I"m describing here is the future.

5.1. The Next Thing?

When we look back on the desktop software era, I think we"ll marvel at the inconveniences people put up with, just as we marvel now at what early car owners put up with. For the first twenty or thirty years, you had to be a car expert to own a car. But cars were such a big win that lots of people who weren"t car experts wanted to have them as well.

Computers are in this phase now. When you own a desktop computer, you end up learning a lot more than you wanted to know about what"s happening inside it. But more than half the households in the US own one. My mother has a computer that she uses for email and for keeping accounts. A couple years ago she was alarmed to receive a letter from Apple, offering her a discount on a new version of the operating system. There"s something wrong when a sixty-fiveyear-old woman who wants to use a computer for email and accounts has to think about installing new operating systems. Ordinary users shouldn"t even know the words "operating system," much less "device driver" or "patch."

There is now another way to deliver software that will save users from becoming system administrators. Web-based applications are programs that run on web servers and use web pages as the user interface. For the average user this new kind of software will be easier, cheaper, more mobile, more reliable, and often more powerful than desktop software.

With web-based software, most users won"t have to think about anything except the applications they use. All the messy, changing stuff will be sitting on a server somewhere, maintained by the kind of people who are good at that kind of thing. And so you won"t ordinarily need a computer, per se, to use software. All you"ll need will be something with a keyboard, a screen, and a web browser. Maybe it will have wireless Internet access. Maybe it will also be your cell phone. Whatever it is, it will be consumer electronics: something that costs about $200, and that people choose mostly based on how the case looks. You"ll pay more for Internet services than you do for the hardware, just as you do now with telephones.

It will take about a tenth of a second for a click to get to the server and back, so users of heavily interactive software, like Photoshop, will still want to have the computations happening on the desktop. But if you look at the kind of things most people use computers for, a tenth of a second latency would not be a problem. My mother doesn"t really need a desktop computer, and there are a lot of people like her.

5.2. The Win for Users

Near my house there is a car with a b.u.mper sticker that reads "death before inconvenience." Most people, most of the time, will take whatever choice requires least work. If web-based software wins, it will be because it"s more convenient. And it looks as if it will be, for users and developers both.

To use a purely web-based application, all you need is a browser connected to the Internet. So you can use a web-based application anywhere. When you install software on your desktop computer, you can only use it on that computer. Worse still, your files are trapped on that computer. The inconvenience of this model becomes more and more evident as people get used to networks.

The thin end of the wedge here was web-based email. Millions of people now realize that you should have access to email messages no matter where you are. And if you can see your email, why not your calendar? If you can discuss a doc.u.ment with your colleagues, why can"t you edit it? Why should any of your data be trapped on some computer sitting on a faraway desk?

The whole idea of "your computer" is going away, and being replaced with "your data." You should be able to get at your data from any computer. Or rather, any client, and a client doesn"t have to be a computer.

Clients shouldn"t store data; they should be like telephones. In fact they may become telephones, or vice versa. And as clients get smaller, you have another reason not to keep your data on them: something you carry around with you can be lost or stolen. Leaving your PDA in a taxi is like a disk crash, except your data is handed to someone else instead of being vaporized.

With purely web-based software, neither your data nor the applications are kept on the client. So you don"t have to install anything to use it. And when there"s no installation, you don"t have to worry about installation going wrong. There can"t be incompatibilities between the application and your operating system, because the software doesn"t run on your operating system.

Because it needs no installation, it will be easy, and common, to try web-based software before you "buy" it. You should expect to be able to test-drive any web-based application for free, just by going to the site where it"s offered. At Viaweb our whole site was like a big arrow pointing users to the test drive.

After trying the demo, signing up for the service should require nothing more than filling out a brief form. And that should be the last work the user has to do. With web-based software, you should get new releases without paying extra, or doing any work, or possibly even knowing about it.

Upgrades won"t be the big shocks they are now. Over time applications will quietly grow more powerful. This will take some effort on the part of the developers. They will have to design software so it can be updated without confusing the users. That"s a new problem, but there are ways to solve it.

With web-based applications, everyone uses the same version, and bugs can be fixed as soon as they"re discovered. So web-based software should have far fewer bugs than desktop software. At Viaweb, I doubt we ever had ten known bugs at any one time. That"s orders of magnitude better than desktop software.

Web-based applications can be used by several people at the same time. This is an obvious win for collaborative applications, but I bet users will start to want this in most applications once they realize it"s possible. It will often be useful to let two people edit the same doc.u.ment, for example. Viaweb let multiple users edit a site simultaneously, more because that was the right way to write the software than because we expected users to want to, but it turned out many did.

When you use a web-based application, your data will be safer. Disk crashes won"t be a thing of the past, but users won"t hear about them anymore. They"ll happen within server farms. And companies offering web-based applications will actually do backups not only because they"ll have real system administrators worrying about such things, but because an ASP that does lose people"s data will be in big, big trouble. When people lose their own data in a disk crash, they can"t get that mad, because they only have themselves to be mad at. When a company loses their data for them, they"ll get a lot madder.

Finally, web-based software should be less vulnerable to viruses. If the client doesn"t run anything except a browser, there"s less chance of running viruses, and no data locally to damage. And a program that attacked the servers themselves should find them well defended.

For users, web-based software will be less stressful . I think if you looked inside the average Windows user you"d find a huge and pretty much untapped desire for software meeting that description. Unleashed, it could be a powerful force.

5.3. City of Code

To developers, the most conspicuous difference between web based and desktop software is that a web-based application is not a single piece of code. It will be a collection of programs of different types rather than a single big binary. And so designing web-based software is like designing a city rather than a building: as well as buildings you need roads, street signs, utilities, police and fire departments, and plans for both growth and various kinds of disasters.

At Viaweb, software included fairly big applications that users talked to directly, programs those programs used, programs that ran constantly in the background looking for problems, programs that tried to restart things if they broke, programs that ran occasionally to compile statistics or build indexes for searches, programs we ran explicitly to garbage-collect resources or to move or restore data, programs that pretended to be users (to measure performance or expose bugs), programs for diagnosing network troubles, programs for doing backups, interfaces to outside services, software that drove an impressive collection of dials displaying real-time server statistics (a hit with visitors, but indispensable for us too), modifications (including bug fixes) to open source software, and a great many configuration files and settings. Trevor Blackwell wrote a spectacular program for moving stores to new servers across the country, without shutting them down, after we were bought by Yahoo. Programs paged us, sent faxes and email to users, conducted transactions with credit card processors, and talked to one another through sockets, pipes, HTTP requests, SSH, UDP packets, shared memory, and files. Some of Viaweb even consisted of the absence of programs, since one of the keys to Unix security is not to run unnecessary utilities that people might use to break into your servers.