[Off topic] Software epigrams

Chris Angelico rosuav at gmail.com
Thu May 16 10:37:31 EDT 2013


On Fri, May 17, 2013 at 12:23 AM, Neil Cerutti <neilc at norwich.edu> wrote:
> On 2013-05-16, F?bio Santos <fabiosantosart at gmail.com> wrote:
>> And in Java we have factories, builders and builderfactories.
>> What's so relevant about them? Java is high level, no?
>
> When I tried to pin down what an irrelevant detail in a computer
> program could be, I couldn't do it. I guess comment decorations,
> maybe? But those would have no bearing on the level of problem
> for which a programming language is most appropriate.

Let me give you a real example.

One of the programs I wrote at work is a simple daemon that runs on
every node in a network. It periodically sends out a heartbeat signal
that the other nodes hear, and if any node hasn't been heard from in X
seconds, it is deemed "down". (It might technically not be down, if
there's a network problem, but the point is that we don't care about
the difference. It's down.) There's also some incidental statussy data
included, for convenience. This is implemented using UDP.

Do I care about how a UDP packet is structured? No.

Do I care about the mechanics of IP routing? No.

Do I care about MAC addresses? No. They might feature in our IPv6
addresses, but I still don't care - the IP addresses (v4 or v6) of the
nodes are treated as opaque tokens.

All I care about is that I call a function with a string of data and a
corresponding function gets called in the other program with that same
string. All the details of how that happens in between aren't
important to my program. They're somewhat of note in the design phase,
but not to the program itself. They are, in fact, irrelevant.

ChrisA



More information about the Python-list mailing list