Wrapping a Program Around the Core Data Structure

[ Thanks to Jay Fink
for this link. ]

“In Eric Raymond’s “The Art of Unix Programming”,
within the section called “The Basics of Unix Philosophy” there is
a rule quoted by Rob Pike: “Rule 5. Data dominates. If you’ve
chosen the right data structures and organized things well, the
algorithms will almost always be self-evident. Data structures, not
algorithms, are central to programming ”

“At face value Rob’s rule number 5 makes sense. But what is Rob
actually saying? In complex software systems it might be difficult
to track down and identify how the rule of evolving functions to
deal with data worked. So why not use a small microscopic example
instead. Taking a small program, a passive network scanner, from
data structures to operations on the data structures illustrates
Rob’s rule number 5 perfectly. This is an interesting experience
from my perspective as most of the programs and scripts I have
written deal with transitionary data. What I mean by transitionary
is simply find it, operate on it and/or print it then move on. Not
an unusual trait in system administration centric programs. While
working on a passive scanner that could also verify a port I
witnessed rule number 5 occur right before by fingertips.”