Hackers & Painters: Big Ideas from the Computer Age
Rate it:
Open Preview
Kindle Notes & Highlights
Read between February 28 - March 6, 2021
78%
Flag icon
The kind of language designers who like to think about how to design type systems may shudder at this. It’s almost like writing applications! Well, too bad. Languages are for programmers, and libraries are what programmers need.
79%
Flag icon
And Parkinson’s Law has proven as powerful as Moore’s. Software has bloated to consume the resources available.
79%
Flag icon
Inventors of wonderful new things are often surprised to discover this, but you need time to get any message through to people. 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.
80%
Flag icon
Organic growth seems to yield better technology and richer founders than the big bang method. If you look at the dominant technologies today, you’ll find that most of them grew organically.
80%
Flag icon
“The best writing is rewriting,” wrote E. B. White. Every good writer knows this, and it’s true for software too.
80%
Flag icon
The most important part of design is redesign. Programming languages, especially, don’t get redesigned enough.
80%
Flag icon
People who do good work often think that whatever they’re working on is no good. Others see what they’ve done and think it’s wonderful, but the creator sees nothing but flaws.
80%
Flag icon
It’s tricky to keep the two forces balanced. In young hackers, optimism predominates. They produce something, are convinced it’s great, and never improve it. In old hackers, skepticism predominates, and they won’t even dare to take on ambitious projects.
80%
Flag icon
Anything you can do to keep the redesign cycle going is good.
80%
Flag icon
Prose can be rewritten over and over until you’re happy with it. But software, as a rule, doe...
This highlight has been truncated due to consecutive passage length restrictions.
81%
Flag icon
By way of summary, let’s try describing the hacker’s dream language. The dream language is clean and terse. It has an interactive top level that starts up fast. You can write programs to solve common problems with very little code.
81%
Flag icon
The dream language is not only open source, but open design.
82%
Flag icon
I don’t think you can even talk about good or bad design except with reference to some intended user.
82%
Flag icon
You’re most likely to get good design if the intended users include the designer himself. When you design something for a group that doesn’t include you, it tends to be for people you consider less sophisticated than you, not more sophisticated.
82%
Flag icon
If you think you’re designing something for idiots, odds are you’re not designing something good, even for idiots.
82%
Flag icon
You may dispute either of the premises, but if a language has to have a toplevel to be convenient, and mandatory type declarations are incompatible with a toplevel, then no language that makes type declarations mandatory could be convenient to program in.
82%
Flag icon
To get good design you have to get close, and stay close, to your users.
83%
Flag icon
You can do this in software too. A prototype doesn’t have to be just a model; you can refine it into the finished product. I think you should always do this when you can. It lets you take advantage of new insights you have along the way. But perhaps even more important, it’s good for morale.
83%
Flag icon
Morale is key in design. I’m surprised people don’t talk more about it. One of my first drawing teachers told me: if you’re bored when you’re drawing something, the drawing will look boring.
83%
Flag icon
Building something by gradually refining a prototype is good for morale because it keeps you engaged. In software, my rule is: always have working code. If you’re writing something you’ll be able to test in an hour, you have the prospect of an immediate reward to motivate you.
83%
Flag icon
“A painting is never finished. You just stop working on it.” This idea will be familiar to anyone who has worked on software.
83%
Flag icon
Morale is another reason that it’s hard to design something for an unsophisticated user. It’s hard to stay interested in something you don’t like yourself. To make something good, you have to be thinking, “wow, this is really great,” not “what a piece of shit; those fools will love it.”
83%
Flag icon
Design means making things for humans. But it’s not just the user who’s human. Th...
This highlight has been truncated due to consecutive passage length restrictions.
1 2 4 Next »