
The Problem With Software: Why Smart Engineers Write Bad Code (The MIT Press)

The Gang of Four stated two principles of good object-oriented design that were present in all the patterns: “favor object composition over class inheritance” and “program to an interface, not an implementation.”8
Adam Barr • The Problem With Software: Why Smart Engineers Write Bad Code (The MIT Press)
Smullyan’s point was that a reasonably modest person is behaving inconsistently, which he happily admits to; when it comes to programmers, however, the conceited approach usually wins out.
Adam Barr • The Problem With Software: Why Smart Engineers Write Bad Code (The MIT Press)
In the Beginning … Was the Command
Adam Barr • The Problem With Software: Why Smart Engineers Write Bad Code (The MIT Press)
The Science of Computing: Shaping a Discipline,
Adam Barr • The Problem With Software: Why Smart Engineers Write Bad Code (The MIT Press)
Unfortunately, as Parnas put it, “[Programmers] have been fed so many ‘silver bullets’ that they don’t believe anything anymore.”12
Adam Barr • The Problem With Software: Why Smart Engineers Write Bad Code (The MIT Press)
This institutionalized acceptance of shoddiness is one of the most shameful aspects of software engineering. Software bugs are not inevitable, but trying to write software that never crashes is a nongoal, as they say, for the current crop of programmers.
Adam Barr • The Problem With Software: Why Smart Engineers Write Bad Code (The MIT Press)
Nobody is going to assume that the same bridge design, with just a few modifications, will handle twice as much distance or weight,
Adam Barr • The Problem With Software: Why Smart Engineers Write Bad Code (The MIT Press)
Fisher’s fundamental theorem states—in terms appropriate to the present context—that the better adapted a system is to a particular environment, the less adaptable it is to new environments. By stretching our imagination a bit, we can see how this might apply to computer programs as well as to snails, fruit flies, and tortoises.”21 In other words,
... See moreAdam Barr • The Problem With Software: Why Smart Engineers Write Bad Code (The MIT Press)
it, the book taught me the dictionary. The rest of it, the bulk of what I learned about software engineering—how to split a big problem into smaller ones, how to connect the pieces together, how to figure out why it didn’t work, and how to decide when it was finished—I figured out on my own by trial and error, and everybody else in the class figure
... See more