Simplicity
From CasGroup
(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]] | ||