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

From ArchWiki
Jump to: navigation, search
(Added a note about the text that I'm pretty sure was the inspiration for this article)
(22 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
+
[[Category:About Arch]]
 
+
[[cs:The Arch Way v2.0]]
 +
[[es:The Arch Way v2.0]]
 +
[[it:The Arch Way v2.0]]
 +
[[ja:The Arch Way v2.0]]
 +
[[ko:The Arch Way v2.0]]
 +
[[lt:The Arch Way v2.0]]
 +
[[pt:The Arch Way v2.0]]
 +
[[ru:The Arch Way v2.0]]
 +
[[sr:The Arch Way v2.0]]
 +
[[zh-CN:The Arch Way v2.0]]
 +
Inspired by ''[http://dreamsongs.com/RiseOfWorseIsBetter.html The Rise of "Worse is Better"]'' by Richard P. Gabriel.
 
==Simple==
 
==Simple==
 
'''''without unnecessary additions, modifications, or complications'''''
 
'''''without unnecessary additions, modifications, or complications'''''
 +
 +
"The central enemy of reliability is complexity." — [http://cryptome.org/cyberinsecurity.htm 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.
 
Simplicity is the primary principle. All other principles must be sacrificed in favor of design simplicity. Implementation simplicity is more important than interface simplicity.
Line 8: Line 20:
 
==Elegant==  
 
==Elegant==  
  
'''''Combining simplicity, power, effectiveness, a quality of neatness and an ingenious grace of design'''''
+
'''''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.”
+
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.
 
It is slightly more important to be simple than elegant.
 +
 +
==User-Centric==
 +
 +
'''''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.
  
 
==Versatile==  
 
==Versatile==  
Line 18: Line 38:
 
'''''capable of doing many things competently; having varied uses or many functions'''''
 
'''''capable of doing many things competently; having varied uses or many functions'''''
  
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 elegance, but more important than expedience.  
+
"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.
  
 
==Expedient==  
 
==Expedient==  
 
'''''easy, or quick; convenient'''''
 
'''''easy, or quick; convenient'''''
  
The simple, elegant and versatile system must offer expedience where practical, but  expedience can be sacrificed in favor of any of the above. It must be sacrificed whenever implementation simplicity is jeopardized
+
"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.

Revision as of 14:21, 14 November 2012

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

Simple

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.

Elegant

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.

User-Centric

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.

Versatile

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.

Expedient

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.