Worse Is Better Considered Harmful

so-cal-schemer1 pts1 comments

Main Page - Worse Is Better

Main Page

From Worse Is Better

Jump to: navigation,<br>search

Worse is Better Considered Harmful

Abstract

In 1991, Richard Gabriel published an influential article "The Rise of Worse is Better". This article argued for a design philosophy he dubbed worse-is-better in which implementation simplicity is afforded greater import than interface simplicity. Gabriel's article was widely read in the software engineering community and has since influenced a generation of programmers.

The original article focused on the success of Unix and the C programming language, which Gabriel describes in what is probably the most famous quote from his paper: The worse-is-better philosophy means that implementation simplicity has highest priority, which means Unix and C are easy to port on such machines. Therefore, one expects that if the 50% functionality Unix and C support is satisfactory, they will start to appear everywhere. And they have, haven't they? Unix and C are the ultimate computer viruses.

Worse-is-better in this sense holds simplicity of implementation to be the highest priority because it allows new designs to spread virally.

We contend that the worse is better design philosophy, while highly successful, is inherently misguided. In particular, we argue that worse is better succeeds by imposing a disproportionate cost on users. Since the first design which solves a useful subset of a problem tends to win even in the face of better, but later, competition (the so-called first-mover advantage), successful but suboptimal designs often become entrenched. To avoid this problem and encourage the most useful designs, we propose a more nuanced development philosophy, growable-is-better, which offers many of the benefits of worse-is-better but helps contain the cost to the community.

If the growable-is-better philosophy were to replace the worse-is-better philosophy, users of software libraries, technical standards, and extensible applications and platforms would have much more powerful tools with only a small additional investment by the original designers. We discuss the differences between these philosophies, which share many of the same strengths. Finally, we discuss techniques for implementing growable-is-better in new software systems.

Contents

An Overview of Worse-is-Better

Externalities in Worse-is-Better

Our Alternative: Growable-is-Better

A Comparison between Worse-is-Better and Growable-is-Better

Implementation Techniques for Growable-is-Better

Retrieved from "http://hiesey.com/worseisbetter/index.php/Main_Page"

Personal tools

Log in

Namespaces

Page

Discussion

Variants

Views

Read

View source

View history

Actions

Search

Navigation

Main page

Community portal

Current events

Recent changes

Random page

Help

Toolbox

What links here

Related changes

Special pages

Printable version

Permanent link

This page was last modified on 3 June 2011, at 05:11.

This page has been accessed 80 times.

Privacy policy

About Worse Is Better

Disclaimers

better worse page philosophy growable article

Related Articles