A Moore’s Law for Software?

Can we have the software development equivalent to the power of integrated circuit chips?

Dick Dowdell
Nerd For Tech
5 min readAug 5, 2023

--

Moore’s Law

Moore’s Law describes a principle that the speed and capability of computers can be expected to double every two years, as a result of increases in the number of transistors an integrated circuit chip can contain. So, why don’t we have an equivalent to Moore’s Law for software?

The Integrated Circuit Chip

The integrated circuit, or IC chip, also known as a microchip, is a small electronic device made of semiconductor materials such as silicon. It contains a large number of electronic components, such as transistors, resistors, capacitors, and diodes, all integrated into a single small chip of silicon.

ICs work together to perform specific functions or tasks, such as processing data, amplifying signals, storing information, or controlling the operation of electronic systems. ICs are the crucial components that have transformed the world of electronics, enabling the development of the smaller, faster, and more reliable electronic devices that have become an integral part of modern life.

Modern CPU Integrated Circuit Chip

The Intel 486DX CPU (released in 1989) contained approximately 1.2 million transistors. The Intel Core i7-1185G7 (released in 2021) features approximately 1.4 billion transistors.

Adjusted for inflation, the price of the Intel 486DX (a 32-bit single threaded processor with a clock speed ranging from 20 MHz to 50 MHz) was around $1,758 — while the price of the Intel Core i7-1185G7 (64-bit 8-threaded processor with a clock speed ranging from 3.0 to 4.8 GHz) is around $1,500.

The increasing manufacturing economies and power of ICs — and their role as the reusable components from which computers are built — are major drivers of Moore’s Law.

Why Are There No Software ICs?

Back in 1986, I wrote an article for Computerworld magazine on the possibility of creating reusable and pluggable software components with some of the attributes of hardware ICs. At the time, I was responsible for software architecture and development technologies at Software International, then the 3rd-largest independent software vendor in the United States (after Computer Associates and Management Sciences America).

A confluence of events had inspired me to evaluate the possibility of software ICs: 1) at Software International, we had just completed (on time and on budget) the successful rewrite of six enterprise financial applications — converting them from batch COBOL applications to interactive IBM CICS applications, 2) our parent, General Electric had recently sent me to evaluate the software factories then in vogue among the Japanese computer hardware vendors, and 3) I had recently read Alan Kay’s brilliant Scientific American article, Computer Software.

There are no software ICs because much — but not quite all — of Moore’s Law depends upon the nature of the electronics design, development, and manufacturing processes — which are, of necessity, fundamentally different from that of software development.

The science, engineering, and prototyping of new ICs, such as CPUs, are frightfully expensive. The same is true of engineering and creating the manufacturing facilities to produce them. However, the enormous IC market makes that expense more than justifiable. For example, in 2020, Intel reported revenues of $77.9 billion.

When compared to software, most hardware ICs, such as CPUs, are very general purpose and have an enormous market to justify their development and manufacturing.

On the other hand, software development has more in common with the expensive design and prototyping phase of IC development — and software is trivially inexpensive to manufacture (duplicate) once it has been developed and tested.

The problem is that — to provide real value to their users — software systems usually need to be customizable and economical to change as application requirements evolve. With current software development practices, that has almost the same cost profile as new development.

So, Can We Create IC Equivalents for Software?

Though we saw possibilities for doing this back in 1986, we really didn’t know enough about the architectural models we needed — nor did we have the development tools and computing power that we have today.

In 1985-86, when we reimplemented our entire mainframe product line at Software International — from batch-only to interactive— we had to build our own runtime framework and development tools, including things as commonplace today as a source code management system. In those days, we didn’t have a CVS or a Subversion — much less a GIT.

If you are curious about how we rewrote six large mainframe applications from start to release in 12 months, take a look at What MIS professionals need…, ComputerWorld, September 29,1986. You might find that the same principles still apply — even though the the technologies have dramatically changed.

So, can we change the software development equation to anything approximating a Moore’s Law for software?

The answer is NO … and … PARTLY.

With current technology (even including large language model-based AI), there is no way that the speed and capabilities of software development can be expected to double every two years as Moore’s Law predicts for hardware.

However, all is not lost. There is still enormous opportunity to improve the quality, reusability, and adaptability of the software we develop and the speed with which we can develop it.

So Just How Can We Do That?

We can start by taking a page from the hardware IC’s book. ICs are self-contained reusable hardware components that perform specified functions in response to well-defined electronic inputs and output well-defined electronic signals.

The composable services pattern is based upon composing applications from self-contained, reusable components — each component focused on a specific functional or business capability so that it can be developed, deployed, and scaled independently.

These components communicate with each other through well-defined request or event messages, enabling them to work together seamlessly within or across processes — and configure themselves just like plug and play hardware components.

Properly used, composable services can offer software developers many of the benefits that ICs provide when building computers. Give it a try!

Hotel Puente Romano

Who knows where it might lead? In 1986, using function point analysis, GE Corporate Information Systems calculated a 400% improvement in Software International’s development productivity — and it won my wife and I a trip to Software International’s 1986 President’s Club held at the Hotel Puente Romano in Marbella, Spain. A solid component and communications model was the key.

Thank you for reading.

--

--

Dick Dowdell
Nerd For Tech

A former US Army officer with a wonderful wife and family, I’m a software architect and engineer who has been building software systems for 50 years.