Mike on the MATLAB Desktop
July 21st, 2008
Graphical user interfaces are just plain better
Graphical user interfaces are just plain better—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’s been shown that good graphical user interfaces outperform command-line interfaces (see Alan Cooper‘s work for examples of this).
Some of you may be saying, “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”. 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.
When developing MATLAB’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:
Increase transparency to the user (i.e. don’t hide state)
Increase user productivity
Over the years, MATLAB has gone from this:
to this:
Quite a stark contrast between MATLAB version 4.2 and version 7.6!
I think we’ve adhered to those original principles pretty well. Since that command-line interface in version 4.2, we’ve exposed a number of major workflow items:
- The current directory as well as its contents via the Current Directory Browser
- The commands you’ve previously run via the Command History
- Syntax, syntax errors and debugging status via the built-in Editor
- The contents of the workspace via the Workspace Browser
This certainly isn’t an exhaustive list of the information and state that’s been made more transparent, but it certainly encompasses some of the core aspects of MATLAB that have been exposed.
Exposing this information helps make the second guiding principle, Increase user productivity, 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.
What are some areas you think the MATLAB Desktop could better expose information to the user?
06:49 UTC |
Posted in Command Window, Desktop |
Permalink |
9 Comments »
You can follow any responses to this entry through the RSS 2.0 feed.
You can skip to the end and leave a response. Pinging is currently not allowed.
Leave a Reply
|
Hi.
I am one of those old-school people who feels that the command-line has definate merit. However, having things clearly displayed on the screen is never a bad thing.
However, using a mouse in an environment like Matlab where most work is done from the keyboard is something I find to be quite a nusance. I also find that the keyboard shortcuts in matlab are poorly documented. I had for example used matlab daily for 3 years before I found out abut Ctrl+pgUp/PgDown to change windows within the editor.
So that is my beef. Feel free to improve the GUI (and you really have) but make sure those shortcuts are kept up-to-date and documented.
–DA
Hi Daniel,
Your absolutely right – keyboard shortcuts in MATLAB is an area that could use some improvement. Good news, though – we are working on this! For now, check out the following MATLAB references for a listing of keyboard shortcuts:
General shortcuts
Command window shortcuts
Editor shortcuts
7 years on… still no native graphics for the Mac. When will Mathworks take time to code a GUI using the most advanced graphics libraries available(Aqua)?
you are neglecting your users
Hi John,
I can appreciate your desire for a true Mac user interface. As a Mac user myself, I am constantly striving to help improve the fidelity of our product on the Mac platform.
As you can imagine, this won’t happen over night. Slowly but surely, your going to see more of what you expect from a user interface experience on the Mac.
If you’re doubting Java’s ability to provide a true Mac experience, I encourage you to check out my personal blog, where I explore this very subject.
I’m glad we have users that are passionate about the Mac.
-Ken
@Daniel,
What are the keyboard shortcuts you use most often? What operations do wish there were shortcuts for?
This is an old post so I might be speaking into the void here, but I’ll give it a try anyway.
First, I must say, I wholeheartedly agree that user interfaces are better than pure command line interfaces. I also appreciate the work you guys do in making the MATLAB command interface a pleasure to use for both novices and professionals alike.
I just have a couple minor suggestions for improvement into the future.
First, when I type “help “, why does the user have to scroll back up to read the help text? If the help text is several screens long, the user will only see the bottom screen of the help text and will have to scroll back up to see the beginning. This can be cumbersome if there is a lot of junk in the command window already.
Second, I’d love to have the ability to delete a particular command (and its output!) from the command window. For example, a common mistake is generating a large matrix and forgetting to put in the semicolon, which results in all the previous output being obliterated or just hiding somewhere where it’s hard to find again. Of course, the command history window is very helpful in cases like these, but it doesn’t solve all the problems because you can’t see the *output* of those commands without running them again.
I think what this all comes down to is somehow integrating the “cell mode” feature in the editor window into the command window; or perhaps mimicking the Mathematica interface, which I’m a great fan of. This probably means getting rid of the plain old text-only control that is currently being used for the command window, and instead integrating richer features such as being able to right click on the output of some command and getting options like “Suppress Output”, or “Undo Action”, or “Re-evaluate”, among others.
Has the dev team considered a cell-based interface for the command window? What are the thoughts on this?
Hi Serg,
You should be able to use the more command to keep the help from scrolling by.
Since I no longer work at The MathWorks, I’ll let Mike comment on your second and third comments.
-Ken
@Serg,
Thanks for the input. These are activities that we are definitely looking at, but I can’t comment on what that might look like or when we would provide that kind of functionality.
@Ken,
Thanks for fielding that one.
Oh cool! I wish ‘more’ was on by default, or at least there was a way to change that to be on by default under Preferences somewhere. It’s a great feature, and I wish I had known about it earlier.
Thanks for the response, by the way!