User:Misfit138/The Arch Way v2.0
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
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.