Chapter 2. Setting Up the Axioms

2.0 Introduction

Here’s a common definition of software:

The instructions executed by a computer, as opposed to the physical device on which they run (the “hardware”).

Software is defined by its opposite; everything that is not hardware. This is not exactly a good definition of what software actually is. Here’s another popular definition:

Software, instructions that tell a computer what to do. Software comprises the entire set of programs, procedures, and routines associated with the operation of a computer system. The term was coined to differentiate these instructions from hardware—i.e., the physical components of a computer system. A set of instructions that directs a computer’s hardware to perform a task is called a program, or software program.

Many decades ago, software developers realized that software is much more than instructions. Throughout this book, you will think about system behavior and come to realize that the primary purpose of software is:

To mimic something that happens in a possible reality.

This idea returns to the origins of modern programming languages ​​like Simula.

Simula

Simula was the first object-oriented programming language to incorporate classification. Its name clearly indicated that the purpose of software construction was to create a simulator. This is still the case with most computer software applications today.

In science, you build simulators to understand the past and forecast the future. Since Plato’s ...

Get Clean Code Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.