Wednesday, February 6, 2008

Ever relevant

It is good to re-read Alan Perlis' epigrams in programming from time to time.

Some which stand out to me today:

32. Programmers are not to be measured by their ingenuity and their logic but by the completeness of their case analysis.
41. Some programming languages manage to absorb change, but withstand progress.
64. Often it is the means that justify the ends: Goals advance technique and technique survives even when goal structures crumble.
94. Interfaces keep things tidy, but don't accelerate growth: Functions do.

One which I don't think has ever stood out to me before:

20. Wherever there is modularity there is the potential for misunderstanding: Hiding information implies a need to check communication.

And of course, there are the old favorites:

11. If you have a procedure with ten parameters, you probably missed some.
95. Don't have good ideas if you aren't willing to be responsible for them.
101. Dealing with failure is easy: Work hard to improve. Success is also easy to handle: You've solved the wrong problem. Work hard to improve.
117. It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical?

1 comment:

  1. 101. Dealing with failure is easy: Work hard to improve. Success is also easy to handle: You've solved the wrong problem. Work hard to improve.

    That's a little harsh, esp if dealing with human beings. Dealing with failure is, in fact, easy. Work hard to improve. However, diminishing success by equating it with ...failure...(solving the wrong problem, solving something too easy...whatever) is headed down the wrong road. Without a feeling of success, without taking some credit for yourself (if only to yourself) for a good outcome, most of us can't muster the drive to go on...since apparently every success is really something of a failure....humans are more complex than 101 acknowledges (hmm, therefore he has "solved" the wrong problem and....failed...

    ReplyDelete