HackersAndPainters
a programming language should, above all, be malleable. A programming language is for thinking of programs, not for expressing programs you’ve already thought of.
hackers start original, and get good, and scientists start good, and get original.
- It’s unrealistic to expect that the specifications for a program will be perfect. You’re better off if you admit this up front, and write programs in a way that allows specifications to change on the fly.
- Empathy is probably the single most important difference between a good hacker and a great one. Some hackers are quite smart, but practically solipsists when it comes to empathy. It’s hard for such people to design great software, because they can’t see things from the user’s point of view
- One way to tell how good people are at empathy is to watch them explain a technical matter to someone without a technical background. We probably all know people who, though otherwise smart, are just comically bad at this. If someone asks them at a dinner party what a programming language is, they’ll say something like “Oh, a high-level language is what the compiler uses as input to generate object code.” High-level language? Compiler? Object code? Someone who doesn't know what a programming language is obviously doesn't know what these things are, either.
- Programs should be written for people to read, and only incidentally for machines to execute.
- In most fields the great work is done early on. The paintings made between 1430 and 1500 are still unsurpassed. Shakespeare appeared just as professional theater was being born, and pushed the medium so far that every playwright since has had to live in his shadow. Albrecht Dürer did the same thing with engraving, and Jane Austen with the novel.
- do you have any opinions that you would be reluctant to express in front of a group of your peers?
If the answer is no, you might want to stop and think about that. If everything you believe is something you’re supposed to believe, could that possibly be a coincidence? Odds are it isn’t. Odds are you just think whatever you’re told. Back in the era of terms like “well-adjusted,” the idea seemed to be that there was something wrong with you if you thought things you didn’t dare say out loud. This seems backward. Almost certainly, there is something wrong with you if you don’t think things you don’t dare say out loud.
- . We think it’s cute for little kids to believe in Santa Claus. I myself think it’s cute for little kids to believe in Santa Claus. But one wonders, do we tell them this stuff for their sake, or for ours?
- Why look for dangerous wrong ideas? To do good work you need a brain that can go anywhere. And you especially need a brain that’s in the habit of going where it’s not supposed to. Great work tends to grow out of ideas that others have overlooked, and no idea is so overlooked as one that’s unthinkable. Natural selection, for example. It’s so simple. Why didn’t anyone think of it before? Well, that is all too obvious.
- 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.
- The thing about ideas, though, is that they lead to more ideas. Have you ever noticed that when you sit down to write something, half the ideas that end up in it are ones you thought of while writing? The same thing happens in software.
- The truthful answer would have been, we didn’t have any plans. Plans are just another word for ideas on the shelf. When we thought of good ideas, we implemented them.
- The best intranet is the Internet.
- A large part of what big companies pay extra for is the cost of selling expensive things to them. (If the Defense Department pays a thousand dollars for toilet seats, it’s partly because it costs a lot to sell toilet seats for a thousand dollars.)
- many electrified fences don’t have any current running through them. The cows apparently learn to stay away from them, and after that you don’t need the current.
- Microsoft also happens to have been the beneficiary of one of the most spectacular blunders in the history of business: the licensing deal for DOS. If IBM had required an exclusive license, as they should have, Microsoft would still have signed the deal. It would still have meant a lot of money for them, and IBM could easily have gotten an operating system elsewhere.
- If you’re in a job that feels safe, you are not going to get rich, because if there is no danger there is almost certainly no leverage.
- To say that a certain kind of work is underpaid is thus identical with saying that people want the wrong things.
- Materially and socially, technology seems to be decreasing the gap between the rich and the poor, not increasing it. If Lenin walked around the offices of a company like Yahoo or Intel or Cisco, he’d think communism had won. Everyone would be wear- ing the same clothes, have the same kind of office (or rather, cubi- cle) with the same furnishings, and address one another by their first names instead of by honorifics. Everything would seem ex- actly as he’d predicted, until he looked at their bank accounts.
- You need rich people in your society not so much because in spending their money they create jobs, but because of what they have to do to get rich. I’m not saying that if you let Henry Ford get rich, he’ll hire you as a waiter at his next party. I’m saying that he’ll make you a tractor to replace your horse.
- If there is an overlap, in different concepts of beauty, can we use one field’s discoveries about beauty to help us in another
- if you can imagine someone surpassing you, you should do it yourself.
- Aiming at timelessness is also a way to evade the grip of fashion.
- IF anything you should cultivate dissatisfaction.
- The only style worth having is the one you cant help
- The more you have to say to get something done, the harder it is to see bugs.
- IF you use a language for long enough, you start to think it in.
- The fundamental operators are the most important factor in a languages long term survival. The rest you can change. Its like the rule of buying a house, you should consider location first of all. The rest you can fix later.
- The main branches of the evolutionary tree of languages passes through those that have the smallest, cleanest cores. The more of a language you can write in itself, the better.
- As technologies improve, each generation can do things that the previous generation would have considered wasteful.
- SUVs are gross b/c they're the solution to a gross problem. How to make minivans look more masculine.
- Object-orientated programming offers a sustainable way to write spaghetti code.
- Lisp is so great no because of some magic quality visible only to devotees, but because it is simply the most powerful language available.
- The idea that one language can be more powerful than another is rarely followed to its conclusion. After a certain age programmers rarely switch languages voluntarily. Whatever language people happen to be used to, they tend to consider just good enough.
- The only programmers in a position to see all the differences in power between the various languages are those who understand the most powerful one.
- Many languages have something called a macro. But Lisp macros are unique. Marcos in Lisp are programs that write programs
- If you understand how compilers work, what really going on is not so much that Lisp has a strange syntax as that Lisp has no syntax. You express programs directly in the parse trees that get built behind the scenes when other languages are parsed, and these trees are made of lists which are Lisp data structures.
- Programming languages are not just technology, but what programmers think in. They're half technology and half religion.
- Lisp, a 1950s language is not obsolete because it was not technology but math, and math doesn't get stale.
- When it was first developed, Lisp embodied nine new ideas. Two are still unique to Lisp.
- Let yourself be second guessed.
- Many "temporary" buildings built at so many universities during WWII often were made permanent.
- A friend of mine rarely does anything the first time someone asks him. He knows that people sometimes ask for things they turn out not to want. To avoid wasting his time, he waits till the third or fourth time hes asked to do something. Most people have learned to do a similar sort of filtering on new things they hear about. They dont even start paying attention until they've heard about something ten times. They're perfectly justified: the majority of hot new whatevers do turn out to be a waste of time, and eventually go away. By delaying learning VRML, I avoided having to learn it at all.
- Its not when people notice you're there that they pay attention; its when they notice you're still there.
- The best writing is rewriting. Committees yield had design. The worst danger of committees is that they interfere with redesign.
- Worse is better. Was discovered in drawing during the Renaissance. Now almost every drawing teacher will tell you that the right way to get an accurate drawing is not to work your way slowly around the contour of an object, bc errors will accumulate and you'll find at the end that the lines dont meet. Instead you should draw a few quick lines in roughly the right place, and then gradually refine this initial sketch.
- What made oil painting so exciting when it first came out in the 15C was that you could make the finished work from the prototype. You could make a preliminary drawing if you wanted to, but you weren't held to it.
- Morale is key in design. I'm surprised people dont talk about it more. One of my first drawing teachers told me: if you're bored when you're drawing something, the drawing will look boring. Eg: suppose you have to draw a building, and you decide to draw each brick individually. You can do this if you want, but if you get bored halfway through and start making the bricks mechanically instead of observing each one, the drawing will look worse than if you had merely suggested the bricks.