

More shell, less egg (2011, on McIlroy and Knuth) - ableal
http://www.leancrew.com/all-this/2011/12/more-shell-less-egg/

======
wglb
This is an old and interesting debate.

There is a difference in purpose that perhaps Knuth is seeking to tutorially
expose a different way of thinking about the activity of programming. McIlroy
is looking for a compact result. I am myself all for short programs, and
reusing components, but there is something that is lost in doing so.

I am more aware of this in a security context. For example, consider qmail. It
moves mail (some interesting fraction of all internet mail), which sounds like
it could benefit from reuse of other components, like the standard library.
However, DJB elected not to use the standard library, but to write secure
substitutes for necessary functions. The record is clear.

The record is clear also on one of Knuth's major achievements, which is TeX,
which has had very few bugs in its lifetime.

So tutorially, McIlroy's counterexample doesn't teach how to programmatically
split lines into words without TR, and so on.

One thing that I work with programmers that want to be security folks is to be
able to puncture through abstractions. If you understand the details of such
abstractions by reading Knuth's approach, you will be further along the road.

So basically I disagree with _Knuth has shown us here how to program
intelligibly, but not wisely._

~~~
SixSigma
McIlroy tried to show us that the best programming is none at all.

------
SixSigma
The Unix way and the pipe was definitely McIlroy's genius.

But let's not forget that he also indirectly spawned ActiveX ;)

Here's he is in 1968 presenting his ideas on component based software at NATO

[http://www.knowledgerush.com/wiki_image/9/95/Software_compon...](http://www.knowledgerush.com/wiki_image/9/95/Software_components_lecture_large.jpg)

My favourite McIlroy quote : "The real hero of programming is the one who
writes negative code"

