On 2020-02-15 16:16, to...@tuxteam.de wrote:
On Sat, Feb 15, 2020 at 02:03:02PM -0700, ghe wrote:
...
FYI, fogies, in the Jul-Aug, 1978 Bellsystem Technical Journal,
announcing Unix, in the Style section of the Foreward is a list of
"maxims...gained currency among the builders and users..." The first
sentence of the first maxim in the list is, "Make each program do one
thing well."

The second sentence is "To do a new job, build afresh rather than
complicate old programs by adding new 'features.'"

Until recently, the *nix communities have stuck pretty well to these
recommendations -- they're just descriptions of competent programming,
after all. There may be some discussion over the definitions of "one
thing" and "well" but there is software in our Linux that, I think,
doesn't conform to anybody's understanding of these maxims.

While I tend to those maxims, two points:

  - I usually subsume them under "complexity is your enemy"

and then

  - all generalizations suck.

So, to each her own, YMMV, etc.

Just so. At what point does a small and natural generalization of "one thing" 
become more complex than a new thing? Simplicity is the friend, complexity the enemy; 
order the friend, entropy the enemy. It takes a lifetime of design to see where to draw 
those lines, and we never stop learning.

[But it was nice to be reminded of a time when programming was often seen as a 
generalization of list processing.]

Reply via email to