Tuesday, February 28, 2012

Why Is This Program So Damn Slow

There have been many articles decrying the size and quality of software today. You use programs, called applications at work or at home to conduct business, keep records and manage information. These are often large, slow and cumbersome to use. Even worse, they are very difficult for the programmers who have to maintain and enhance them.

Why is this? In my view, there are a couple of contributing factors.

First, the demands put on programmers are to produce a lot of code in a short amount of time. Popular tools like code generators or visual programming aids speed the process by turning out massive amounts of code very quickly. However, this code is never reviewed and optimized because there is no time. When quantity is the metric, quality is always going to suffer. Programs will certainly be tested and bugs (errors) removed, however, it is unlikely anyone is going to rewrite portions to make them run faster or take less space.

Today's computer processors are so fast and memory is so cheap and plentiful there is no incentive for developers to be judicious. Therefore, programs will tend to be larger and consume more resources. When you run them on your older, slower personal computers, way less powerful than the massive workstations the developers have, they perform badly.

In fact, the people writing code today would be stifled by limiting the available computing resources unlike the programmer of yesteryear who had to cram an entire application into what by today's standards would be a minuscule amount of space.  As a consequence, few ever learn the skills necessary to write concise, efficient code.

Sadly, the people who seem to have really have mastered this are the malware coders. They can cram an entire virus into a tiny little package so it can sneak into your computer undetected. Too bad we can't harness their expertise and put it to good use.

Another part of the problem is how advanced consumer devices and user interfaces have become. In a sense we have all become spoiled by the iPod and Xbox. These devices have no instruction manual. They are completely intuitive. Compare that to the accounting systems you find in corporations.

There is an art to making business applications as easy to use as the games and entertainment systems you have at home. So called "gamification" is a relatively new concept but one which will help if it catches on. Until then, I'm afraid we're stuck with the inch thick user guide, error messages and frustration of watching the hourglass spin.

Captain Joe

Follow me on Twitter @JPuglisiLLC