But I think that misfits and iconoclasts are also more likely to become hackers. The computer world is like an intellectual Wild West, where you can think anything you want, if you're willing to risk the consequences.
When you tread water, you lift yourself up by pushing water down. Likewise, in any social hierarchy, people unsure of their own position will try to emphasize it by maltreating those they think rank below. I've read that this is why poor whites in the United States are the group most hostile to blacks.
We need a language that lets us scribble and smudge and smear, not a language where you have to sit with a teacup of types balanced on your knee and make polite conversation with a strict old aunt of a compiler.
I tended to just spew out code that was hopelessly broken, and gradually beat it into shape. Debugging, I was taught, was a kind of final pass where you caught typos and oversights. The way I worked, it seemed like programming consisted of debugging.
But when you damp oscillations, you lose the high points as well as the low. This is not a problem for big companies, because they don't win by making great products. Big companies win by sucking less than other big companies.
If you want to make money, you tend to be forced to work on problems that are too nasty for anyone to solve for free.引自第1页
Smilence...
Nearly all makers have day jobs early in their careers. Painters and writers notoriously do. If you're lucky you can get a day job closely related to your real work. Musicians often seem to work in record stores. A hacker working on some programming language or operating system might likewise be able to get a day job using it.
Johnson wrote in the preface to his Shakespeare: "He has long outlived his century, the term commonly fixed as the test of literary merit. Whatever advantages he might once derive from personal allusions, local customs, or temporary opinions, have for many years been lost; and every topick of merriment or motive of sorrow, which the modes of artificial life afforded him, now only obscure the scenes which they once illuminated. The effects of favour and competition are at an end; the tradition of his friendships and his enmities has perished; his works support no opinion with arguments, nor supply any faction with invectives; they can neither indulge vanity nor gratify malignity, but are read without any other reason than the desire of pleasure, and are therefore praised only as pleasure is obtained...."
Everyone by now presumably knows about the danger of premature optimization. I think we should be just as worried about premature design—deciding too early what a program should do. The right tools can help us avoid this danger. A good programming language should, like oil paint, make it easy to change your mind. Dynamic typing is a win here because you don't have to commit to specific data representations up front. But the key to flexibility, I think, is to make the language very abstract. The easiest program to change is one that's short.引自第1页