While we have been making small tweeks to our software during the last 30 years, there really has been no paradigm shifting movements in software engineering. In the beginning when a program was need, both application and systems control features needed to be written by the programmers. In the mid 1970´s however many of these functions were relegated to the hardware. When personal computers first became popular this process slowed a great deal but in recent years the trend has begun again. While this might seem like a blessing when you are learning how to become a software engineer, simply because there is less to learn, there are other directions in coding that make this shift necessary. If it is not made software will become so large and complex that it will become virtually impossible for human beings to write.

The reason for this is simple. In the first place, software companies make the majority of their money from up grades to software. Operating systems for instance never wear out. This means that companies that sell operating-systems, like Microsoft, have to continuously improve their current systems, adding bells and whistles to make the new product seem like a necessity. New applications are designed to work only with the current generation operating systems so that if consumers want to use them they will eventually have to upgrade. But as much as we do not like having to upgrade every five years or so, essentially trashing perfectly good software, the fact is that without this “trick” by software companies, these companies would have serious problems. Programmers and software engineers are very expensive to maintain and without the need to upgrade software, probably 90% of them would not be needed, and thousands would be out of a job. We also need improved operating systems to encourage companies to improve software. This competition has brought us from DOS to Windows 7 and from Space Invaders to World of War Craft.

There are also big changes coming in the software industry, probably within the next ten years, that will completely change with way we interact with our electronics. The development of Artificial Intelligence is essentially a programming problem that researchers are right on the verge of solving. New directions in research that study exactly how the human brain learns from experience, stores the information for later analysis and comparison with other experiences, have shown great promise. AI is an extremely complex programming problem but true Virtual Reality (VR) interactivity is a true monster. Not only will even short, simple programs have millions of lines of code, understanding how to translate images and sensations to the brain in a real enough way as to cause the user to essentially go to another level of their brain, is a monster.