Science, Computers, etc.
My impression was and is that many programming languages and tools represent
solutions looking for problems, and I was determined that my work should not
fall into that category. Thus, I follow the literature on programming
languages and the debates about programming languages primarily looking for
ideas for solutions to problems my colleagues and I have encountered in real
applications. Other programming languages constitute a mountain of ideas and
inspiration—but it has to be mined carefully to avoid featurism and
Bjarne Stroustrup, The Design and Evolution of C++
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.
Ward Cunningham, interviewed by Bill Venners
Master plans have two additional unhealthy characteristics. To begin with, the
existence of a master plan alienates the users… After all, the very
existence of a master plan means, by defnition, that the members of the
community can have little impact on the future shape of their community,
because most of the important decisions have already been made. In a sense,
under a master plan people are living with a frozen future, able to affect only
relatively trivial details. When people lose the sense of responsibility for
the environment they live in, and realize that they are merely cogs in someone
else's machine, how can they feel any sense of identifcation with the
community, or any sense of purpose there?
Christopher Alexander, The Oregon Experiment
If the map and the terrain disagree, trust the terrain.
Swiss Army Aphorism
There are two ways of constructing a software design. One way is to make
it so simple that there are obviously no deficiencies and the other is to
make it so complicated that there are no obvious deficiencies.
The first step toward the management of disease was replacement of demon
theories and humours theories by the germ theory. That very step, the
beginning of hope, in itself dashed all hopes of magical solutions. It
told workers that progress would be made stepwise, at great effort, and
that a persistent, unremitting care would have to be paid to a
discipline of cleanliness. So it is with software engineering today.
Frederick P. Brooks Jr., No Silver Bullet: Essence and Accidents of Software Engineering
The sciences do not try to explain, they hardly even try to interpret,
they mainly make models. By a model is meant a mathematical construct which,
with the addition of certain verbal interpretations, describes observed
phenomena. The justifaction of such a mathematical construct is solely
and precisely that it is expected to work.
John Von Neumann
It's an experience like no other experience I can describe,
the best thing that can happen to a scientist, realizing that something
that has happened in his or her mind exactly corresponds to something that
happens in nature. One is surprised that a construct of one's own mind
can actually be realised in the honest-to-goodness world out there. A great
shock, and a great, great joy.
Why is programming Fun?
The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Yet the program construct, unlike the poet's words, is real in the sense that in moves and works, producing visible outputs seperate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on the keyboard, and a display screen comes to life, showing things that never were nor could be.
Frederic P. Brooks, The Mythical Man-Month
As he designs his first work, frill after frill, embellishment
after embillishment occur to him. These get stored away to be used "next
time." Sooner or later the first system is finished, with firm confidence
and a demonstrated mastery of that class of systems, is ready to build
a second system. This second is the most dangerous system a man ever designs.
Frederic P. Brooks, The Mythical Man-Month
Perfection [in design] is achieved not when there is nothing more to
add, but rather when there is nothing more to take away.
Antoine de Saint-Exupéry
Never let your sense of morals prevent you from doing what is right.
Isaac Asimov, Foundation