Technical skill is mastery of complexity, while creativity is mastery of simplicity
Simplicity and elegance are unpopular because they require hard work and discipline to achieve and education to be appreciated.
... the purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise.
Besides the noble art of getting things done, there is the noble art of leaving things undone. The wisdom of life consists in the elimination of nonessentials.
Fools ignore complexity; pragmatists suffer it; experts avoid it; geniuses remove it.
The investor who finds a way to make soap from peanuts has more genuine imagination than the revolutionary with a bayonet, because he has cultivated the faculty of imagining the hidden potentiality of the real. This is much harder than imagining the unreal, which may be why there are so many more utopians than inventors.
... The war is lost as soon as it starts - there is no winning move. I feel like I'm being held to an absurdly high standard, being judged as though I were trying to be the sort of person that people accuse me of thinking I am
...
I have looked, and I have seen under the Sun, that to those who try to defend themselves, more and more attacks will be given. Like, if you try to defend yourself, people sense that as a vulnerability, and they know they can demand even more concessions from you.
I refuse to fake modesty on problems that are easy unto me. Even though I know some people find uncertainty reassuring, I will not pretend to be uncertain on straightforward problems; the truly wise would not be impressed. You should realize that being uncertain about a problem yourself, does not mean that uncertainty is the inherently correct attitude.
Strategy is a matter of priorities not capabilities.
To design something really well, you have to get it. You have to really grok what it’s all about. It takes a passionate commitment to really thoroughly understand something, chew it up, not just quickly swallow it. Most people don’t take the time to do that.
Creativity is just connecting things. When you ask creative people how they did something, they feel a little guilty because they didn’t really do it, they just saw something. It seemed obvious to them after a while. That’s because they were able to connect experiences they’ve had and synthesize new things. And the reason they were able to do that was that they’ve had more experiences or they have thought more about their experiences than other people.
Unfortunately, that’s too rare a commodity. A lot of people in our industry haven’t had very diverse experiences. So they don’t have enough dots to connect, and they end up with very linear solutions without a broad perspective on the problem. The broader one’s understanding of the human experience, the better design we will have.
Poets say science takes away from the beauty of the stars - mere globs of gas atoms. Nothing is 'mere'. I too can see stars on a desert night, and feel them. But do I see less or more? The vastness of the heavens stretches my imagination - stuck on this carousel, my little eye can catch one-million-year-old light.
Every science begins as philosophy and ends as art
It's easier to act your way into a new way of thinking than to think your way into a new way of acting.
Because, believe me, friend, a great many of those apparently “nice guys” swarming around the web “helping people” these days are ass-fucking their audience for nickels and calling it a complimentary colonoscopy. And, while I absolutely think that in itself is empirically wrong, I also think it’s just as important to say that it’s wrong. Sometimes, True Things need to be said.
Abstractions are not right or wrong. They are useful or not useful.
If you are not paying for it, you're not the customer; you're the product being sold.
It seems as if each computing culture fails to establish a measure for it's own goals which leaves it with no means of critically analyzing it's assumptions resulting in the technical equivalent of religious dogma. From this perspective, new technical cultures are more like religious reform movements than new scientific theories which are measured by agreement with experiment.
Programming is an embarrassment compared to other fields of engineering and design. Our mainstream culture is one of adolescent self-indulgence. It is like something from Gulliver’s Travels, with the curly-bracketeers vs. the indentationites vs. the parenthesesophiles. The only thing that everyone seems to agree upon is how stupid all the other programmers are. Try googling “stupid programmers”. We have met the enemy, and he is us.
Perhaps the most pernicious proposition of the “everything must be open” crusade is the notion that curation is bad and anti-freedom. Soldiers of this crusade confuse freedom with competition. Our museums are not football-field sized warehouses where art objects are indiscriminately dumped and our magazines and blogs are not amorphous containers of randomly selected articles. Our classrooms, restaurants, hospitals and indeed all our civilized institutions are firmly reliant on curation of one kind or another. The goal should be for curators to compete, not for curation to be declared illegal and unholy by the “open” zealots.
There exists on the web a collective memory problem. It’s a famous fault in software engineers to instinctively favour reinvention over reuse, not just because they are unfamiliar with what came before, but because they misunderstand why it came before. This is a rule that is important to understand, so that it can be broken. It is not well understood, yet it is regularly broken.
I increasingly believe that organizations structured around job function inevitably lead to corporate paralysis.
Nothing is more permanent than something temporary
A reasonable man adapts himself to suit his environment. An unreasonable man persists in attempting to adapt his environment to suit himself. Therefore, all progress depends on the unreasonable man.
The argument that you can make iPhone web apps that are “good enough” misses the entire point of iPhone apps — the entire point of the iPhone itself, even — all of the things that drive Twitter users to pay $3, $4, or $5 for apps that do the same things that can be done for free by loading Twitter’s web site in MobileSafari. “Good enough” is not good enough on the iPhone.
In architecture, what’s quite clear is that a living structure cannot be produced in any other way. It has to be generated indirectly because there’s so much complexity. You cannot create a mouse by messing around with micro-tweezers and a blueprint. You can only create a mouse by having a fertilized egg turn into a mouse over a period of weeks, by splitting cells and differentiation, which will always produce a unique result.
The morphology of what is produced cannot be produced in other ways; it can only be produced by generative processes. This is quite true of buildings. If you don’t generate the building indirectly, you will not get a living result.
... I must confess that over the past few years I have been gravely disappointed with the white moderate. I have almost reached the regrettable conclusion that the Negro’s great stumbling block in his stride toward freedom is not the White Citizen’s Counciler or the Ku Klux Klanner, but the white moderate, who is more devoted to “order” than to justice; who prefers a negative peace which is the absence of tension to a positive peace which is the presence of justice; who constantly says: “I agree with you in the goal you seek, but I cannot agree with your methods of direct action”; who paternalistically believes he can set the timetable for another man’s freedom; who lives by a mythical concept of time and who constantly advises the Negro to wait for a “more convenient season.” Shallow understanding from people of good will is more frustrating than absolute misunderstanding from people of ill will. Lukewarm acceptance is much more bewildering than outright rejection.
Not all code needs to be a factory, some of it can just be origami.
Every mistake we’ve made as a company has been because we tried to do too much, not because we didn’t do enough.
So when I asked, "What's the simplest thing that could possibly work," I wasn't even sure. I wasn't asking, "What do you know would work?" I was asking, "What's possible? What is the simplest thing we could say in code, so that we'll be talking about something that's on the screen, instead of something that's ill-formed in our mind." I was saying, "Once we get something on the screen, we can look at it. If it needs to be more we can make it more. Our problem is we've got nothing."
I think that that's a breakthrough, because you are always taught to do as much as you can. Always put checks in. Always look for exceptions. Always handle the most general case. Always give the user the best advice. Always print a meaningful error message. Always this. Always that. You have so many things in the background that you're supposed to do, there's no room left to think. I say, forget all that and ask yourself, "What's the simplest thing that could possibly work?"
A friend of mine once said that there are problems and there are difficulties. A problem is something you savor. You say, "Well that's an interesting problem. Let me think about that problem a while." You enjoy thinking about it, because when you find the solution to the problem, it's enlightening.
And then there are difficulties. Computers are famous for difficulties. A difficulty is just a blockage from progress. You have to try a lot of things. When you finally find what works, it doesn't tell you a thing. It won't be the same tomorrow. Getting the computer to work is so often dealing with difficulties.
Most writers—poets in especial—prefer having it understood that they compose by a species of fine frenzy—an ecstatic intuition—and would positively shudder at letting the public take a peep behind the scenes, at the elaborate and vacillating crudities of thought—at the true purposes seized only at the last moment—at the innumerable glimpses of idea that arrived not at the maturity of full view—at the fully matured fancies discarded in despair as unmanageable—at the cautious selections and rejections—at the painful erasures and interpolations—in a word, at the wheels and pinions—the tackle for scene-shifting—the step-ladders and demon-traps—the cock’s feathers, the red paint and the black patches, which, in ninety-nine cases out of the hundred, constitute the properties of the literary histrio.
You eventually learn that true priorities are like arms; if you think you have more than a couple, you're either lying or crazy.
Happiness is not to be achieved at the command of emotional whims. Happiness is not the satisfaction of whatever irrational wishes you might blindly attempt to indulge. Happiness is a state of non-contradictory joy—a joy without penalty or guilt, a joy that does not clash with any of your values and does not work for your own destruction, not the joy of escaping from your mind, but of using your mind’s fullest power, not the joy of faking reality, but of achieving values that are real, not the joy of a drunkard, but of a producer. Happiness is possible only to a rational man, the man who desires nothing but rational goals, seeks nothing but rational values and finds his joy in nothing but rational actions.
We’re used to the future turning out differently than we expected; it happens all the time. When the past turns out differently, though, it can get really upsetting, and because people don’t like that kind of upset, we’re at risk of finding new reasons to believe false things, rather than revising our sense of what actually happened.
Tradition is the illusion of permanence.
"Most people make the mistake of thinking design is what it looks like," says Steve Jobs, Apple's C.E.O. "People think it's this veneer -- that the designers are handed this box and told, 'Make it look good!' That's not what we think design is. It's not just what it looks like and feels like. Design is how it works."
It’s not about pop culture, and it’s not about fooling people, and it’s not about convincing people that they want something they don’t. We figure out what we want. And I think we’re pretty good at having the right discipline to think through whether a lot of other people are going to want it, too. That’s what we get paid to do.
Convenient though it would be if it were true, Mozilla is not big because it’s full of useless crap. Mozilla is big because your needs are big. Your needs are big because the Internet is big. There are lots of small, lean web browsers out there that, incidentally, do almost nothing useful. If that’s what you need, you’ve got options…
Honor among thieves is the ancestor of all honor.
... All of which are very valid things to do, and all of which my world-view supports very well indeed. And all of which your pitiful “files matter” world-view totally doesn’t get at all.
In other words, I’m right. I’m always right, but sometimes I’m more right than other times. And dammit, when I say “files don’t matter”, I’m really really Right™.
Here’s the problem with copying: Copying skips understanding. Understanding is how you grow. You have to understand why something works or why something is how it is. When you copy it, you miss that. You just repurpose the last layer instead of understanding all the layers underneath.
In this world there are certain people who have appointed themselves the Ego Police and who go around denouncing anyone they think has too big of an ego. From time to time, one of them denounces me.
This fruit is tiny, shiny and can be spit-polished in a single weekend.
Almost all programming can be viewed as an exercise in caching