More on this book
Community
Kindle Notes & Highlights
Because kids are unable to create wealth, whatever they have has to be given to them. And when wealth is something you’re given, then of course it seems that it should be distributed equally.
Once it became possible to get rich by creating wealth, society as a whole started to get richer very rapidly.
But it was not till the Industrial Revolution that wealth creation definitively replaced corruption as the best way to get rich.
Jobs and Wozniak didn’t have to make us poor to make themselves rich. Quite the opposite: they created things that made our lives materially richer. They had to, or we wouldn’t have paid for them.
But since for most of the world’s history the main route to wealth was to steal it, we tend to be suspicious of rich people.
Is it a problem if technology increases that gap? It doesn’t seem to be so far. As it increases the gap in income, it seems to decrease most other gaps.
I’d like to propose an alternative idea: that in a modern society, increasing variation in income is a sign of health. Technology seems to increase the variation in productivity at faster than linear rates. If we don’t see corresponding variation in income, there are three possible explanations: (a) that technical innovation has stopped, (b) that the people who would create the most wealth aren’t doing it, or (c) that they aren’t getting paid for it.
Will people create wealth if they can’t get paid for it? Only if it’s fun. People will write operating systems for free. But they won’t install them, or take support calls, or train customers to use them. And at least 90% of the work that even the highest tech companies do is of this second, unedifying kind.
All the un fun kinds of wealth creation slow dramatically in a society that confiscates private fortunes.
If you suppress variations in income, whether by stealing private fortunes, as feudal rulers used to do, or by taxing them away, as some modern governments have done, the result always seems to be the same. Society as a whole ends up poorer.
It’s absolute poverty you want to avoid, not relative poverty.
If there is such a thing as beauty, we need to be able to recognize it. We need good taste to make good things. Instead of treating beauty as an airy abstraction, to be either blathered about or avoided depending on how one feels about airy abstractions, let’s try considering it as a practical question: how do you make good stuff?
Saying that taste is just personal preference is a good way to prevent disputes. The trouble is, it’s not true. You feel this when you start to design things.
In math, every proof is timeless unless it contains a mistake.
Aiming at timelessness is a way to make yourself find the best answer: if you can imagine someone surpassing you, you should do it yourself.
Gödel’s incompleteness theorem seems like a practical joke.
To have a sense of humor is to be strong: to keep one’s sense of humor is to shrug off misfortunes, and to lose one’s sense of humor is to be wounded by them. And so the mark — or at least the prerogative — of strength is not to take oneself too seriously.
If you’re not working hard, you’re probably wasting your time.
Not every kind of hard is good. There is good pain and bad pain. You want the kind of pain you get from going running, not the kind you get from stepping on a nail.
Wild animals are beautiful because they have hard lives.
It’s not cheating to copy.
It’s rare to get things right the first time. Experts expect to throw away some early work. They plan for plans to change.
Mistakes are natural. Instead of treating them as disasters, make them easy to acknowledge and easy to fix.
Open source software has fewer bugs because it admits the possibility of bugs.
I think the greatest masters go on to achieve a kind of selflessness. They just want to get the right answer, and if part of the right answer has already been discovered by someone else, that’s no reason not to use it. They’re confident enough to take from anyone without feeling that their own vision will be lost in the process.
A thousand Leonardos and a thousand Michel Angelos walk among us. If DNA ruled, we should be greeted daily by artistic marvels. We aren’t, and the reason is that to make Leonardo you need more than his innate ability. You also need Florence in 1450.
Nothing is more powerful than a community of talented people working on related problems.
Today’s experimental error is tomorrow’s new theory. If you want to discover great new things, then instead of turning a blind eye to the places where conventional wisdom and truth don’t quite meet, you should pay particular attention to them.
In practice I think it’s easier to see ugliness than to imagine beauty. Most of the people who’ve made beautiful things seem to have done it by fixing something they thought ugly. Great work usually seems to happen because someone sees something and thinks, I could do better than that.
Open source gives you a lot more control.
I prefer dynamic typing. I hate a language that tells me what to do. But some smart people seem to like static typing, so the question must still be an open one.
It’s important not just that the axioms be well chosen, but that there be few of them. Mathematicians have always felt this way about axioms — the fewer, the better — and I think they’re onto something.
A program is a formal description of the problem you want a computer to solve for you.
Current implementations of some popular new languages are shockingly wasteful by the standards of previous decades.
I can already tell you what’s going to happen to all those extra cycles that faster hardware is going to give us in the next hundred years. They’re nearly all going to be wasted.
Inefficient software isn’t gross. What’s gross is a language that makes programmers do needless work. Wasting programmer time is the true inefficiency, not wasting machine time. This will become ever more clear as computers get faster.
Software is a very competitive business, prone to natural monopolies. A company that gets software written faster and better will, all other things being equal, put its competitors out of business.
In a big company, you can do what all the other big companies are doing. But a startup can’t do what all the other startups do. I don’t think a lot of people realize this, even in startups.
The survival rate for startups is way less than fifty percent. So if you’re running a startup, you had better be doing something odd. If not, you’re in trouble.
In business, as in war, surprise is worth as much as force.
I’ll begin with a shockingly controversial statement: programming languages vary in power.
Ordinarily technology changes fast. But programming languages are different: programming languages are not just technology, but what programmers think in. They’re half technology and half religion.
The pointy-haired boss miraculously combines two qualities that are common by themselves, but rarely seen together: (a) he knows nothing whatsoever about technology, and (b) he has very strong opinions about it.
Some languages are better, for certain problems, than others.
I can think of three problems that could arise from using less common languages. Your programs might not work well with programs written in other languages. You might have fewer libraries at your disposal. And you might have trouble hiring programmers.
Within large organizations, the phrase used to describe this approach is “industry best practice.” Its purpose is to shield the pointy-haired boss from responsibility: if he chooses something that is “industry best practice,” and the company loses, he can’t be blamed. He didn’t choose, the industry did.
In programming languages, as Erann Gat has pointed out, what “industry best practice” actually gets you is not the best, but merely the average.
If you want to win in a software business, just take on the hardest problem you can find, use the most powerful language you can get, and wait for your competitors’ pointy-haired bosses to revert to the mean.
Of all tyrannies, a tyranny exercised for the good of its victims may be the most oppressive. — C.S.LEWIS
A programming language does need a good implementation, of course, and this must be free. Companies will pay for software, but individual hackers won’t, and it’s the hackers you need to attract.