Friday, August 22, 2008

Software Bloat

Bloated PCI am not sure where it all went wrong, but somewhere, in our big rush to produce a software product and get it to market, elegantly composed, short simple algorithms managed to fall off the wagon. The only criteria that matters came to be whether it worked or not, and not if it was efficient.

Programs that will run on multiple platforms have become the order of the day. High-level computer languages solve the multi-platform problem with their ability to be cross-compiled. Everything seems to work but the cost for running these bloated wasteful programs means you almost need a super computer to use them.

Disassembly of some of my favorite applications yielded some surprises. Outcome determination of a code sequence depends as much on what it is not as what it is. It is like trying to convey a value by describing what the value is not instead of getting quickly to the value. For instance, the software has to struggle through every possible description of an item before it can determine exactly what the item is. This convoluted way of making determinations sends the code execution cycles through the roof. This happens because of the construction of programming languages rather than a conscience effort by the programmer.

There was a time, before the advent of processors with gigabytes/second speed that programmers crafted their code carefully to write the most efficient code possible. This usually meant poring over the clock cycles per instruction to find the best speed possible to run the code. Code optimization was a craft highly prized by the different software providers. Every software producer knew the buying public sought after fast and efficient programs. A really fast cpu was only 8 - 20 megahertz in those days.

The advent of cheap fast processors changed all of that. Attention to code execution waned after processors were fast enough to process the most inefficient code fast enough to suit most people. But in these days of bandwidth crowding, those bloated code processes just take up room unnecessarily over the internet. We choke the internet with those funny cartoon and joke emails. A closer look at their underlying HTML and scripted code would astound you. Although in scripted format, your browser still has to interpret and execute in order for you to get the benefits of your email. Most emails today are of the combination HTML and scripted forms. So today's browsers have to accommodate plug-ins for the different scripting languages, i.e. Java and others.

I would be the last to tell you that those great interactive emails should be abandoned, but I will say that I am in favor of cleaning up the code bloat that has to interpret and the bloat that forms those missives.

There can be little doubt that inefficient software coding is driving the hardware industry. We continue to need faster and faster computers to run that bloated mess. Bloated software is also the reason that your computer goes obsolete about every 5 years. Just wait, 3-d is just around the corner and the hardware to accommodate it and all of its bloat will require more processing power than what is available today.

Cheers,

-Robert-

No comments:

Post a Comment

Please Include First Name and Town. -Thanks-