Software is everywhere, but you can’t see it. You know it’s in your phone, your computer, your home appliances and your electric meter, but do you know why? This article explores the reasons for the explosion of software.
Computers have taken over many functions that used to be performed by other equipment and by people. While computers were originally developed to compute, they now control, communicate and manage things that require much more than just “computing.”
Moore’s Law is the term used to describe the geometric increase over the past 50 years of the number of electronic digital circuits that can be placed on a fixed-size piece of silicon. A corresponding decrease in the cost of those circuits has driven the digital revolution – replacing nearly everything that used electrical or electronic circuits with their digital equivalent.
A “digital equivalent” of course is not really equivalent, because it consists of a computer. Each computer, no matter how small or large, includes a processor, memory, and ways of moving data in and out. All of the activity in a processor happens as a result of executing a program – a series of instructions that are stored in the memory. And programs are software.
Managing the activities of a computer requires – a computer. The operating system of a computer is the set of programs that are concerned with managing resources and activities inside the computer. This is not trivial, because programs are constructed of very simple instructions, and there are a lot of resources and lots of activities inside each computer. For example, what happens when data is moved in or out of the computer? Where does it get stored? How does it get checked and how does it get moved to a more permanent location, such as a disk? These are all activities an operating system is concerned with.
Keeping track of stored data usually is done by a file system, which is another part of most operating systems. Turning power on and off for parts of the system that are not used all of the time is another function of system software on, for example, a mobile phone. This extends the battery life.
Furthermore, thousands of conditions can occur while the computer is operating, such as errors in moving data or interruptions due to user interaction (like typing on a keyboard or touching a screen icon). Each condition has to be dealt with in a way that won’t stop the computer.
As computers have become widely used, specialized programs have come to be part of the standard repertoire. Programs dealing with databases (such as a customer list with all of their purchases), audio and video data (such as YouTube videos and podcasts), and photos (such as your smartphone pictures) have become standard requirements for computers that we use in business and at home.
Communications systems – including the Internet – have incorporated computers to manage delivery of data globally; and services such as Google have developed enormous dictionaries of everything on the Internet (and also things like videos and books) that can be searched. The hardware of each of these, while massive and widespread, is dwarfed by the effort put into creating software that keeps them running and delivering the latest services.
Competition between the latest start-ups today is mostly in the domain of software. Delivering new services in the Internet age requires deep understanding of software and how to leverage what was developed by others last week to make something new this week.
Software and the tools for developing it are the context in which the best and brightest of the current generation are expressing their creativity and becoming part of the global economy. You can expect more software from more software designers to result in a lot of unexpected new products and services.