CSC/ECE 517 Fall 2007/wiki2 9 NT: Difference between revisions
No edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
== | ==What is 'Principle of Least Astonishment'?== | ||
'Principle of Least Astonishment' or 'Law of minimum surprise' asserts that the system will cause the least surprise for the user by being as consistent and predictable as possible, and therefore usable. Which imply that in case of an ambiguity or a conflict in the system, the behavior of the system should be the one which will least surprise the user. In programming, this principle has a wide range of application in topics such as user-interface design, programming language design, and programming. This principle is used in various disciplens as well as computer science such as engineering, science, and philosophy which are briefly coverd later in this wiki. After this a brief information about the principle of least astonishment, now we are going to talk more about the sources found online about this topic and how well they explore the topic. | |||
==Guide to Web pages on Principle of Least Astonishment== | ==Guide to Web pages on Principle of Least Astonishment== | ||
Line 15: | Line 17: | ||
Here, we are going to explain the top searches returned by the Google query and comment on how effective they are in presenting this topic. | Here, we are going to explain the top searches returned by the Google query and comment on how effective they are in presenting this topic. | ||
===Which should the reader look at for easy-to-understand examples?=== | ===Which should the reader look at for easy-to-understand examples?=== | ||
Line 24: | Line 27: | ||
[http://c2.com/cgi/wiki?PrincipleOfLeastAstonishment "Principle of Least Astonishment at Portland Pattern Repository"] explains the topic and gives a couple of easy-to-understand examples on the topic; this is one of the best sites that one should start to learn more on this topic. | [http://c2.com/cgi/wiki?PrincipleOfLeastAstonishment "Principle of Least Astonishment at Portland Pattern Repository"] explains the topic and gives a couple of easy-to-understand examples on the topic; this is one of the best sites that one should start to learn more on this topic. | ||
===Which give a feel for where the principle should be used?=== | ===Which give a feel for where the principle should be used?=== | ||
Line 33: | Line 37: | ||
[http://www.cs.arizona.edu/projects/sumatra/hallofshame/ "Java Hall of Shame"] presents some of the points where Java does not obey the Principle of Least Astonishment. | [http://www.cs.arizona.edu/projects/sumatra/hallofshame/ "Java Hall of Shame"] presents some of the points where Java does not obey the Principle of Least Astonishment. | ||
== Least Astonishment in Other Disciplines== | == Least Astonishment in Other Disciplines== | ||
Line 38: | Line 44: | ||
The 'Principle of Least Astonishment' can be considered as a basic principle in our modern life, from software to design to religion this principle will be found. The concept is introduced with different names as what will be shown next. | The 'Principle of Least Astonishment' can be considered as a basic principle in our modern life, from software to design to religion this principle will be found. The concept is introduced with different names as what will be shown next. | ||
===Engineering and Design=== | ===Engineering and Design=== | ||
Line 63: | Line 70: | ||
* [http://home.att.net/~p.caimi/schrodinger.html What is Life?] A book by physicist Erwin Schrödinger providing one of the first usage of this principal in philosophy to provide an explanation for 'free will', and 'human consciousness'. It is worth to say that the DNA concept is first introduced was in this book even before it is even discovered. | * [http://home.att.net/~p.caimi/schrodinger.html What is Life?] A book by physicist Erwin Schrödinger providing one of the first usage of this principal in philosophy to provide an explanation for 'free will', and 'human consciousness'. It is worth to say that the DNA concept is first introduced was in this book even before it is even discovered. | ||
===Religion=== | ===Religion=== | ||
Line 69: | Line 78: | ||
'The Principal of Least Astonishment' and 'Occam's razor' are surprisingly used in religion. Where [http://en.wikipedia.org/wiki/Theism theism] use 'The Principal of Least Astonishment' to prove the [http://en.wikipedia.org/wiki/Existence_of_God Existence of God], and the [http://en.wikipedia.org/wiki/Intelligent_design Intelligent design of universe]. In the other hand, [http://en.wikipedia.org/wiki/Atheism Atheism] use 'Occam's razor' to argue [http://en.wikipedia.org/wiki/Existence_of_God Existence of God], and as an [http://en.wikipedia.org/wiki/Argument_from_miracles Argument from miracles]. | 'The Principal of Least Astonishment' and 'Occam's razor' are surprisingly used in religion. Where [http://en.wikipedia.org/wiki/Theism theism] use 'The Principal of Least Astonishment' to prove the [http://en.wikipedia.org/wiki/Existence_of_God Existence of God], and the [http://en.wikipedia.org/wiki/Intelligent_design Intelligent design of universe]. In the other hand, [http://en.wikipedia.org/wiki/Atheism Atheism] use 'Occam's razor' to argue [http://en.wikipedia.org/wiki/Existence_of_God Existence of God], and as an [http://en.wikipedia.org/wiki/Argument_from_miracles Argument from miracles]. | ||
* [http://interviews.slashdot.org/article.pl?sid=02/09/06/1343222 "Larry Wall On Perl, Religion, and..."] Found to be most relative here, is an explanation of faith by Larry Wall, the founder of Perl, using the 'The Principal of Least Astonishment', which he introduced in Perl. | * [http://interviews.slashdot.org/article.pl?sid=02/09/06/1343222 "Larry Wall On Perl, Religion, and..."] Found to be most relative here, is an explanation of faith by Larry Wall, the founder of Perl, using the 'The Principal of Least Astonishment', which he introduced in Perl. | ||
====Quraan==== | ====Quraan==== | ||
Line 74: | Line 84: | ||
Quraan is considered by Muslims and some non-Muslims to strongly obey both 'Least Astonishment' and 'Occam's razor' principles as nature do, which suggests that it was created by the same designer. This would prove several controversies as [http://en.wikipedia.org/wiki/Creation-evolution_controversy Creation evolution controversy], [http://en.wikipedia.org/wiki/Existence_of_God Existence of God], [http://en.wikipedia.org/wiki/Miracle Miracles] ...etc, as it supports the existence of other profits and their miracles. | Quraan is considered by Muslims and some non-Muslims to strongly obey both 'Least Astonishment' and 'Occam's razor' principles as nature do, which suggests that it was created by the same designer. This would prove several controversies as [http://en.wikipedia.org/wiki/Creation-evolution_controversy Creation evolution controversy], [http://en.wikipedia.org/wiki/Existence_of_God Existence of God], [http://en.wikipedia.org/wiki/Miracle Miracles] ...etc, as it supports the existence of other profits and their miracles. | ||
* [http://www.searchtruth.com/list.php Search the Truth] A website that provide a search tool in different interpretations of Quraan and in different languages. | * [http://www.searchtruth.com/list.php Search the Truth] A website that provide a search tool in different interpretations of Quraan and in different languages. | ||
Line 85: | Line 96: | ||
==External Links by | ==External Links by Term== | ||
* [http://www.faqs.org/docs/artu/ch11s01.html "Applying the Rule of Least Surprise"] from ''[[The Art of Unix Programming]]'' by [[Eric S. Raymond|E.S. Raymond]] | * [http://www.faqs.org/docs/artu/ch11s01.html "Applying the Rule of Least Surprise"] from ''[[The Art of Unix Programming]]'' by [[Eric S. Raymond|E.S. Raymond]] | ||
* [http://www.ibm.com/developerworks/web/library/us-cranky10.html "Applying the Rule of Least Surprise in webpages"] | * [http://www.ibm.com/developerworks/web/library/us-cranky10.html "Applying the Rule of Least Surprise in webpages"] |
Revision as of 05:39, 22 October 2007
Principle of Least Astonishment. Write a guide to the Web pages on the Principle of Least Astonishment. Which should the reader look at for easy-to-understand examples? Which give a feel for where the principle should be used? Is this principle present in fields other than programming? Is the term used consistently in other disciplines?
What is 'Principle of Least Astonishment'?
'Principle of Least Astonishment' or 'Law of minimum surprise' asserts that the system will cause the least surprise for the user by being as consistent and predictable as possible, and therefore usable. Which imply that in case of an ambiguity or a conflict in the system, the behavior of the system should be the one which will least surprise the user. In programming, this principle has a wide range of application in topics such as user-interface design, programming language design, and programming. This principle is used in various disciplens as well as computer science such as engineering, science, and philosophy which are briefly coverd later in this wiki. After this a brief information about the principle of least astonishment, now we are going to talk more about the sources found online about this topic and how well they explore the topic.
Guide to Web pages on Principle of Least Astonishment
When you type the keyword “Principle of Least Astonishment” to Google, it returns about 35,800 web pages. Surprisingly, none of the web pages listed are good enough by itself to explain the topic thoroughly.
Here, we are going to explain the top searches returned by the Google query and comment on how effective they are in presenting this topic.
Which should the reader look at for easy-to-understand examples?
"Wikipedia" defines the Principle of Least Astonishment briefly, and gives two simple easy-to-understand real-life examples, this website can help one to understand what the principle is but it is not a very good page to understand the topic and its usage in great detail at all.
"Ethical Software" is a blog of an instructor where he shares his in class experience when he was teaching Principle of Least Astonishment. The example that he gave in class is the Ruby on Rails code where he suggests using <%yield%> instead of <%content_for_layout%> to demonstrate this principle. This web page is not a good start to learn the topic, but it gives the idea of principle and it demonstrates it with the Ruby on Rails code which is very related and similar to what we have been doing in our class.
"Andy Wibbel" gives the easy-to-understand definition of the principle that he combined from different sources. This is a good web page to start to learn about the topic, but it does not give any examples and it does not present where this principle is used.
"Principle of Least Astonishment at Portland Pattern Repository" explains the topic and gives a couple of easy-to-understand examples on the topic; this is one of the best sites that one should start to learn more on this topic.
Which give a feel for where the principle should be used?
"Peter Seebach" explores the Principle of Least Astonishment on the web pages, talks about the common issues in web pages that astonish viewers. This web page gives many easy-to-understand examples of how this principle being violated on web pages.
"Steve’s Tech Talk" gives examples of the Principle of Least Astonishment from a computer scientist’s perspective. The examples provided in this site are all about how to write code and API that would surprise the client least.
"The Art of Unix Programming" explains what the principle is and how it can be used when designing user-interfaces.
"Java Hall of Shame" presents some of the points where Java does not obey the Principle of Least Astonishment.
Least Astonishment in Other Disciplines
The 'Principle of Least Astonishment' can be considered as a basic principle in our modern life, from software to design to religion this principle will be found. The concept is introduced with different names as what will be shown next.
Engineering and Design
Design of equibment/systems/laws/environment for human interaction would be a whole science which is called Ergonomics. Although this science expand to contain other aspects such as physical, Cognitive, and organizational ergonomics. More specific relation to our will be 'User Centered Design' or 'Contextual Design'. 'Contextual Design' support not only research and development but also investigations into the context and motivation of user behavior, which insure the principle.1. Certain enough this principle is applied to every aspect cars, buildings, traffic, instituations, ...etc.
- "Wikipedia List of human-computer interaction topics" provide a comprehensive list of topics related of the application of the human-computer interaction. see also [other links].
Science and Nature
The principle is extended to science as well, as Physical law is believed to be less surprising. Einstein said, "To me, the most incomprehensible thing about the universe is that it is comprehensible" 2. A prove for this that many of the law of natural were found before it was directly observed or analytically or expermintaly proved. Actually this show Natural as a good design.
- "The Incomplete Guide to the Art of Discovery . PDF", Page 51,52, by Jack E. Oliver Introduce the 'Principal of Least Astonishment', or intiuation' as a tool to be used to discover the nature and its laws. see also [other links].
Philosophy
Another field where the principle apply is phylosiphy, where it is used to distinguish between several phylosiphical enterpretation to the same observation. It is more refered to as Occam's razor or Parsimony, which is not the same as above principle as it assume that more simple explanation that imply fewer assumption is propaly the more valid theory, anyway simple deisgn is propaly the least surprise.
- What is Life? A book by physicist Erwin Schrödinger providing one of the first usage of this principal in philosophy to provide an explanation for 'free will', and 'human consciousness'. It is worth to say that the DNA concept is first introduced was in this book even before it is even discovered.
Religion
'The Principal of Least Astonishment' and 'Occam's razor' are surprisingly used in religion. Where theism use 'The Principal of Least Astonishment' to prove the Existence of God, and the Intelligent design of universe. In the other hand, Atheism use 'Occam's razor' to argue Existence of God, and as an Argument from miracles.
- "Larry Wall On Perl, Religion, and..." Found to be most relative here, is an explanation of faith by Larry Wall, the founder of Perl, using the 'The Principal of Least Astonishment', which he introduced in Perl.
Quraan
Quraan is considered by Muslims and some non-Muslims to strongly obey both 'Least Astonishment' and 'Occam's razor' principles as nature do, which suggests that it was created by the same designer. This would prove several controversies as Creation evolution controversy, Existence of God, Miracles ...etc, as it supports the existence of other profits and their miracles.
- Search the Truth A website that provide a search tool in different interpretations of Quraan and in different languages.
Conclusion
External Links by Field
External Links by Term
- "Applying the Rule of Least Surprise" from The Art of Unix Programming by E.S. Raymond
- "Applying the Rule of Least Surprise in webpages"
- "Site finding system faces suspension"
- "Java Violate the Principle of Least Astonishment"
- "When Principle of Least Astonishment go wrong"
- "Einstein's Philosophy of Science"
- "Larry Wall On Perl, Religion, and..."