Initially, most computer programs were written by people who had direct experience in the real-world activities that their applications sought to emulate and replace. As the personal computer revolution burgeoned, people with such experience became thin on the ground, and more and more coders were just coders, without appropriate analog-world experience. This fundamental lack of clue has led to much of the just plain bad software choices out there.