{"id":234,"date":"2008-07-21T06:49:24","date_gmt":"2008-07-21T11:49:24","guid":{"rendered":"https:\/\/blogs.mathworks.com\/desktop\/2008\/07\/21\/graphical-user-interfaces-are-just-plain-better\/"},"modified":"2008-08-28T13:00:08","modified_gmt":"2008-08-28T18:00:08","slug":"graphical-user-interfaces-are-just-plain-better","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/community\/2008\/07\/21\/graphical-user-interfaces-are-just-plain-better\/","title":{"rendered":"Graphical user interfaces are just plain better"},"content":{"rendered":"<p><b>Graphical user interfaces are just plain better<\/b>&mdash;better than pure command-line interfaces, that is. It should come as no surprise that a user interface designer and developer, such as myself, would make such a bold statement. But time and time again, it&#8217;s been shown that good graphical user interfaces outperform command-line interfaces (see <a href=\"http:\/\/en.wikipedia.org\/wiki\/Alan_Cooper\">Alan Cooper<\/a>&#8216;s work for examples of this). <\/p>\n<p>Some of you may be saying, &#8220;Wait a minute, I know I can move around a command-line much faster than I can move the mouse and click on windows and buttons&#8221;. The truth of the matter is, though, the more complex a command-line system gets, the more excise (waste) is generated. That excise includes things like memorizing commands and remembering exactly how to use them and when they can be applied.<\/p>\n<p>When developing MATLAB&#8217;s first graphical user interfaces (many years ago) we came up with a couple guiding principles, the first of which was aimed at reducing the aforementioned excise:<\/p>\n<p><b><i>Increase transparency to the user (i.e. don&#8217;t hide state)<\/i><\/b><br \/>\n<b><i>Increase user productivity<\/i><\/b><\/p>\n<p>Over the years, MATLAB has gone from this:<\/p>\n<div align=\"center\"><a  href=\"https:\/\/blogs.mathworks.com\/images\/desktop\/ken_orr_graphical_user_interfaces_are_just_plain_better\/matlab_4_2.png\"><img decoding=\"async\"  border=\"0\" src=\"https:\/\/blogs.mathworks.com\/images\/desktop\/ken_orr_graphical_user_interfaces_are_just_plain_better\/matlab_4_2_small.png\"><\/a><\/div>\n<p>to this:<\/p>\n<div align=\"center\"><a  href=\"https:\/\/blogs.mathworks.com\/images\/desktop\/ken_orr_graphical_user_interfaces_are_just_plain_better\/matlab_7_6.png\"><img decoding=\"async\"  border=\"0\" src=\"https:\/\/blogs.mathworks.com\/images\/desktop\/ken_orr_graphical_user_interfaces_are_just_plain_better\/matlab_7_6_small.png\"><\/a><\/div>\n<p>&nbsp;<br \/>\nQuite a stark contrast between MATLAB version 4.2 and version 7.6!<br \/>\n&nbsp;<br \/>\nI think we&#8217;ve adhered to those original principles pretty well. Since that command-line interface in version 4.2, we&#8217;ve exposed a number of major workflow items:<\/p>\n<ul>\n<li>The current directory as well as its contents via the <i>Current Directory Browser<\/i><\/li>\n<li>The commands you&#8217;ve previously run via the <i>Command History<\/i><\/li>\n<li>Syntax, syntax errors and debugging status via the built-in <i>Editor<\/i><\/li>\n<li>The contents of the workspace via the <i>Workspace Browser<\/i><\/li>\n<\/ul>\n<p>This certainly isn&#8217;t an exhaustive list of the information and state that&#8217;s been made more transparent, but it certainly encompasses some of the core aspects of MATLAB that have been exposed.<\/p>\n<p>Exposing this information helps make the second guiding principle, <i>Increase user productivity<\/i>, possible. Having a clearer more readily apparent overall picture (a.k.a. mental model) means you can spend more time thinking about what you want to do rather than how you want to do it.<\/p>\n<p>What are some areas you think the MATLAB Desktop could better expose information to the user?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Graphical user interfaces are just plain better&mdash;better than pure command-line interfaces, that is. It should come as no surprise that a user interface designer and developer, such as myself,&#8230; <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/community\/2008\/07\/21\/graphical-user-interfaces-are-just-plain-better\/\">read more >><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[2,8],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/posts\/234"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/comments?post=234"}],"version-history":[{"count":0,"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/posts\/234\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/media?parent=234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/categories?post=234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/tags?post=234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}