CSC/ECE 517 Fall 2007/wiki2 9 NT
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, as its name suggests, states 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 other words, principle of least astonishment asserts that the system will not cause any astonishment, or cause the least astonishment for the users by making the system as consistent and predictable -therefore usable- as possible. In computer science, this principle has a wide range of usage in topics such as human-computer interaction, user-interface design, programming language design, and programming. This principle is used in various disciples as well as computer science such as ... which are mentioned later in this wiki. After this 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.
Examples
- Hi.
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.
http://en.wikipedia.org/wiki/Principle_of_least_astonishment 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.
http://jooto.com/blog/index.php/2006/06/06/principle-of-least-astonishment/ 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.
http://andywibbels.com/post/1263 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.
http://www.ibm.com/developerworks/web/library/us-cranky10.html 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.
http://www.atalasoft.com/cs/blogs/stevehawley/archive/2006/02/27/9590.aspx 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.
http://www.faqs.org/docs/artu/ch11s01.html The Art of Unix Programming explains what the principle is and how it can be used when designing user-interfaces.
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://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.
Least Astonishment in Other Disciplines
A lighter side to the application of intuition is the so-called Principle of Minimum Astonishment, which is often mentioned
in fun by scientists. It means that when controversy arises in science, the view that agrees best with one's intuitive evaluation of the situation is probably correct. The "principle" is really an admonition to rely on one's intuition. At first this principle seems contrary to the quest for surprising discovery that is the focus of this book, but it is not. The trick is to break with convention, not necessarily with intuition. Most new discoveries are not so much counter to good intuition as they are counter to "conventional wisdom" of the science at the time. Plate tectonics, for example, did not counter intuition so much as it did conventional belief.
So in steering a course through the world of science and making the subjective decisions and judgments that affect that
course, use some intuition. Intuition has led to many discoveries in the past and will surely lead to many in the future. How do I know? It's easy. I can feel it in my bones!
Examples
- Hi.
Refrences