Jim's Pond - Exploring the Universe of Ideas
"Beware when the great God lets loose a thinker on this planet. Then all things are at risk. It is as when a conflagration has broken out in a great city, and no man knows what is safe, or where it will end." --Ralph Waldo Emerson
Tuesday, March 25, 2003

Occam's Razor and Entropy

It's appropriate to consider the ideas of entropy and Occam's Razor. These ideas have been weighing on me for the past few months. Ever since reading David Isenberg's SMART letter #72. I've heard the term Occam's Razor and generally knew what it meant. But the reference by Isenberg prompted me to do some further study.

Occam's Razor can also be stated as "the rule of simplicity." In science the practical application is most common when there is a necessity to choose between two competing theories. Using Occam's Razor would lead one to compare the two theories and choose the option that is simplest. That is why Einstein's theory of relativity was chosen over one with similar math, conclusions, etc. The competing theory included speculation about "ether", something that could not be observed or proven.

Of course, this only applies until a theory is disproved. Something that almost always happens in science.

Entropy is an idea that has captivated my imagination every since I first heard it. On a general note, entropy is the idea of chaos. Chaos is a simple definition for entropy, as well as a synonym.

More specifically I've heard the term "software entropy." This is the idea that software will be the least complex, most simple when first created. An application will never be more simple than its first version. Never. Whatever an engineer does will always make the software more complex.

For this reason it is essential to make long-lived applications as simple as possible in the beginning and then make each successive revision simple, also. Easier said than done. Entropy is the best justification for spending more time planning software development, more time planning revisions and more time thinking through elegantly simple code, rather than first attempts that do not take advantage of these tools. I believe the common term for what is produced by ill conceived methods is "spaghetti code."

And just by the way, I don't know what a "long-lived" application might be. Certainly there is nothing so permanent as a temporary solution. So planning is essential to the maintenance prospects of any development project.

Is there such a thing as network entropy? I don't know for sure. I suspect that this is the case, however. I had an interesting discussion with Dan a couple of weeks ago. He insisted that we are simplifying our network with the installation Ethernet circuits. It's a well know, easily understood technology, right? Well, only to a point. Perhaps Ethernet circuits are less complicated than T-1 circuits, or multiple T-1 circuits.

But what about rate limiting issues raised by placing, for the first time, capacity at the edge that can easily overrun the core? What about the management problems that will be introduced the network? And what about the reliability issues introduced by TCP, IP and the like?

And what about Occam's Razor? How might this idea fit with entropy to make a network perform better and meet user needs quickly and precisely?

Tomorrow: Simplicity, Chaos & thoughts on the Ephemeral
10:13:13 PM    comment []






© 2005 Jim Stewart
Last Update: 2/16/05; 2:42:16 PM

Click here to visit the Radio UserLand website.

 











March 2003
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
Feb   Apr

Subscribe to "Jim's Pond - Exploring the Universe of Ideas" in Radio UserLand.
Click to see the XML version of this web page.
Click here to send an email to the editor of this weblog.

Jim's Links


Look Here



Current Reading Shelf