Simplicity

From CasGroup

Jump to: navigation, search
(New page: '''Simplicity''' is the opposite of complexity and means something is simple, uniform, uncompounded or un-combined. Things of high simplicity are often easy to understand a...)
Line 2: Line 2:
uncompounded or un-combined. Things of high simplicity are often easy to understand
uncompounded or un-combined. Things of high simplicity are often easy to understand
and to explain. Simplicity is one of the highest goals in architecture and engineering, esp. in software engineering.
and to explain. Simplicity is one of the highest goals in architecture and engineering, esp. in software engineering.
 +
 +
== Simple rules and complex behavior ==
 +
 +
Scientists love it when they discover that
 +
 +
* Order emerges from chaos
 +
* Simple equations produce strange attractors
 +
* Simple rules generate complex behavior
 +
 +
Why do they love it? Because it is rare. And because
 +
it is the difference in complexity between the rule and
 +
the phenomena which makes scientific theories big:
 +
simple rules with complex behavior are what every
 +
scientist is looking for. Unfortunately useful rules
 +
of this kind are very rare.
 +
 +
Simple programs can generate all sorts of complex behavior.
 +
Well, yes, they can, but only against heavy odds. Most programs
 +
don't generate complex or rich behavior, at least not
 +
the desired one. Otherwise programmers would produce
 +
masterworks all the time, a gem at every keystroke.
 +
Simple programs that produce complex outcome are
 +
the exception, and often the result of hard work
 +
or long search.
 +
 +
More important than the insight that simple programs
 +
can generate all sorts of complex behavior is the
 +
insight that they are the exception.
 +
 +
For one equation that produces a complex strange
 +
attractor there are a thousand equations which produce
 +
only simple behavior. For one Cellular Automata rule
 +
that shows complex behavior there are hundred rules which
 +
show simple, boring behavior. There is only one "Game
 +
of Life".
 +
 +
For one right program that works there are a thousand
 +
programs that don't work. There are a thousand ways
 +
to change a program which will lead to erratic behavior,
 +
but only one way to do it right. A programmer is constantly
 +
busy with finding this way and keeping the program on
 +
the right track (i.e. with debugging or eliminating bugs).
 +
 +
[[Category:Basic Principles]]
[[Category:Basic Principles]]

Revision as of 18:15, 7 December 2008

Personal tools