All software sucks

“And folks, let’s be honest. Sturgeon was an optimist. Way more than 90% of code is crap.” – Al viro

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.” – C.A.R. Hoare, The 1980 ACM Turing Award Lecture

“One of my most productive days was throwing away 1000 lines of code.” – Ken Thompson

“..At first I hoped that such a technically unsound project would collapse but I soon realized it was doomed to success. Almost anything in software can be implemented, sold, and even used given enough determination. There is nothing a mere scientist can say that will stand against the flood of a hundred million dollars. But there is one quality that cannot be purchased in this way -and that is reliability. The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay.” – C.A.R. Hoare

“It’s a curious thing about our industry: not only do we not learn from our mistakes, we also don’t learn from our successes.” – Keith Braithwaite

Harmful stuff

This is a work in progress, much is missing.

Harmful things that are so superfluous and useless that require no alternative:

Unicode BoM in UTF-8.

IDN.

Dynamic linking, in particular in Unix systems.

PoSix locales.

Adobe Flash.

GNOME and KDE.

Boost.

UML.

Note: At the moment a detailed rationale is not provided for most of this, so figuring out why some things are considered more or less harmful than others is left as an exercise for the reader. Here is a hint: complexity is the bane of all software, simplicity is the most important quality. See also: Worse is Better by Richard Gabriel.

Features

JWZ’s Law of Software Envelopment: “Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.”

Most so called ‘features’ are either useless or worse than useless.

Not Implementing Features Is Hard - By Robert O'Callahan.

Frameworks