It’s easy to drift away from building beautiful things toward building ugly things that make more suitable subjects for research papers.
You have to wait for the writers influential friends to die, and then for all their followers to die.
A programming language is for thinking for programs, not for expressing programs you’ve already thought of.
Because painters leave a trail of work behind them, you can watch them learn by doing. If you look at the work of a painter in chronological order, you’ll find that each painting builds on things that have been learned in previous ones. When there’s something in a painting that works very well, you can usually find version 1 of it in a smaller form in some earlier paintings.
Relentlessness wins because, in the aggregate, unseen details become visible.
The way to make programs easy to read is not to stuff them with comments. I would take Abelson and Sussman's quote a step further. Programming languages should be designed to express algorithms, and only incidentally to tell computers how to execute them. A good programming language ought to be better for explaining software than English. You should only need comments when there is some kind of kludge you need to warn readers about, just as on a road there are only arrows on parts with unexpectedly sharp curves.
Source code, too, should explain itself. If I could get people to remember just one quote about programming, it would be the one at the beginning of Structure and Interpretation of Computer Programs.
Programs should be written for people to read, and only incidentally for machines to execute.
You need to have empathy not just for your users, but for your readers. It's in your interest, because you'll be one of them. Many a hacker has written a program only to find on returning to it six months later that he has no idea how it works. I know several people who've sworn off Perl after such experiences.