Difference between revisions of "User:Misfit138/The Arch Way v2.0"

From ArchWiki
Jump to: navigation, search
m (Changed protection level for "The Arch Way v2.0": Excessive vandalism: practically this wasn't protected, as protection was set to "autoconfirmed users" (‎[edit=sysop] (expires 13:39, 27 July 2013 (UTC)) ‎[move=sysop] (expires 13:39, 27 July 2013 )
m (Kynikos moved page The Arch Way v2.0 to User:Misfit138/The Arch Way v2.0: sorry, but having two articles on the Arch Way is indeed confusing and not really simple ^^)
(No difference)

Revision as of 07:12, 28 July 2013

Inspired by The Rise of "Worse is Better" by Richard P. Gabriel.


without unnecessary additions, modifications, or complications

"The central enemy of reliability is complexity." — Geer et al.

Simplicity is the primary principle. All other principles must be sacrificed in favor of design simplicity. Implementation simplicity is more important than interface simplicity.


combining simplicity, power, effectiveness, a quality of neatness and an ingenious grace of design

The French aviator, adventurer, and author Antoine de Saint-Exupéry gave us perhaps the best definition of engineering elegance when he said, “a designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away.”

It is slightly more important to be simple than elegant.


accommodating competent users by giving them complete choice, control and responsibility over the system

"One of my most productive days was throwing away 1000 lines of code."— Ken Thompson

Arch is founded upon sensible design and excellent documentation, necessarily implying a "do-it-yourself" approach. User-centric design is more important than versatility and expedience, yet less important than elegance and simplicity.


capable of doing many things competently; having varied uses or many functions

"When I am working on a problem I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." — R. Buckminster Fuller

A simple and elegant system often becomes versatile by nature, but must be designed as simple first and foremost. Versatility must be sacrificed in favor of simplicity. Also less important than user-centricity and elegance, but more important than expedience.


easy, or quick; convenient

"I remarked to Dennis [Ritchie] that easily half the code I was writing in Multics was error recovery code. He said, "We left all that stuff out [of Unix]. If there's an error, we have this routine called panic, and when it is called, the machine crashes, and you holler down the hall, 'Hey, reboot it.'" — Tom Van Vleck

The simple, elegant and versatile system must offer expedience where practical, but expedience can and will be sacrificed in favor of any of the above. It must be sacrificed whenever implementation simplicity is jeopardized. When expedience is compromised by a resulting complexity of user interface, it must present its complexity without unnecessary complication.