Hacker News new | past | comments | ask | show | jobs | submit login
Overdoing the interface metaphor (marco.org)
164 points by swombat on March 11, 2010 | hide | past | favorite | 82 comments



He's missing the point. That calculator app isn't there for him, it's there for new users.

If you sit down at a computer for the first time, and need to do a calculation, you want something that behaves exactly like you're used to - a calculator that works just like the one in your desk, a painting program that works as much like a set of paints and brushes as can be managed.

That's not 'overdoing the interface metaphor', it's being faithful to expectations. Sure, there's a better interface for the calculator available, but people that would want one generally know how to install one.

The Java interface metaphor is a telling one: an interface is a promise to the user. Changing the interface forces the user to change as well, and people seldom want to.


By following this way of thinking, the designer of the first calculator should have made his product look as much like an abacus as possible, so he wouldn't confuse the new user.

What you're saying is reasonable, but it misses the fact that you have to find a balance between being familiar and exposing the capabilities of the software you're using.

The calculator is a good example, because it's actually very painful to use such a calculator on a computer. And saying new users can't grasp the way a proper computer calculator works mean you didn't try hard enough to explain to them. It's really taking the easy road.

On a side note, i always wondered why we don't see the same kind of walkthrough you have got in many videogames in software. There should be an interactive walkthrough mode in every packed application in windows/osx. It would be a much better solution than trying to mimic real world objects by providing an interface that imperfectly behaves like the users preconceptions make him expect.


>first calculator should have made his product look as much like an abacus as possible, so he wouldn't confuse the new user.

No, he should have made it look as much like a calculation sheet as possible, and he did (calculators were made for accountants initially). The point was that you should use the interface your user expects, unless you are attempting to fill a demand that hasn't been met.

>And saying new users can't grasp the way a proper computer calculator works mean you didn't try hard enough to explain to them. It's really taking the easy road.

It's not. Saying new users 'cant' grasp it would be insulting - it would be much more accurate to say that they don't have the inclination to. If I'm going to use a tool once per month on average, then a slow, clunky interface is far superior to a faster one that I don't know how to use yet.

>There should be an interactive walkthrough mode in every packed application in windows/osx.

That would be useful in a lot of cases, and we're starting to see more of them now that producing video isn't so damned difficult. But they still take time and effort to read; they still make demands on the user.

>it's actually very painful to use such a calculator on a computer.

'Painful' is a perception. It's painful to you, because you're used to something else - it is blessedly familiar to my grandfather; it was the only thing I showed him that didn't need explanation.


> 'Painful' is a perception. It's painful to you, because you're used to something else - it is blessedly familiar to my grandfather; it was the only thing I showed him that didn't need explanation.

Well no i was not talking about the perception. Even your or mine grandfather would agree that an actual calculator is better than the calculator you have in windows, because you have real keys instead of drawed ones. And if you start using the ones on your keyboard, which actually makes much more sense, the drawed ones become useless suddenly. The workflow you have with one of those fakes calculators is not only worse than with a well designed one, it's way worse than with a real one, and that's the whole point.

> If I'm going to use a tool once per month on average, then a slow, clunky interface is far superior to a faster one that I don't know how to use yet.

This deserves to be quoted because it's very true, but i still think, in the case of the calculator, and maybe in the case of other apps, that a way better compromise could be made.


However, if your tour is longer than 2 minutes, you're doing something wrong.

The designers of the original Macintosh had this goal in mind: a person should understand how to use a Mac after watching over another user's shoulder for 3 minutes.

For the iPhone, the tour consists only of their 30 second TV spots.


I'm often told that people are resistant to change, but I think this isn't entirely true. People are resistant to sudden and dramatic change. Small changes over time often go unnoticed, like the proverbial frog in a pot of boiling water.

You want your first calculator to look a lot like an abacus, but have a few new features which introduce the user to the new capabilities of the new technology and ease them into change.


> People are resistant to sudden and dramatic change. Small changes over time often go unnoticed, like the proverbial frog in a pot of boiling water.

This is true, but the physical calculator interface is so old that it would take decades of careful enhancement and deployment to move its users up to a modern interface. Most of its users just want to multiply large numbers, or add a column. The word processor is a great example of the incremental interface changes you describe though.


Just the other day I watched a very experienced programmer who already had an IRB session open (not to mention a bash shell and the availability of a python repl, I'm sure) start up that very calculator to do some quick calculations.

While I agree about being faithful to expectations and see value in that, I also believe that metaphors can sometimes continue to live past the time they should be expired due to sheer laziness. There's only been one generation (ish) exposed to that physical interface for a calculator- it's not like it's a permanent beginner metaphor.


>start up that very calculator to do some quick calculations.

I suspect that had more to do with purity of work flow - I often open up a second python shell to do math in so I won't have to scroll the stuff I'm working on off the screen.

>I also believe that metaphors can sometimes continue to live past the time they should be expired due to sheer laziness.

How so? It's obviously not laziness in this case - there are dozens of alternatives developed, and Apple is particularly good about making conscious decisions about interfaces. I can't debate that statement in the literal sense (obviously they "can sometimes"), but I don't think it applies here - they left the calculator app as-is because presenting a familiar interface to the majority of users is more important for their experience (and therefore Apple's bottom line).


> As an interface designer I am often asked to design a “better” interface to some product. Usually one can be designed such that, in terms of learning time, eventual speed of operation (productivity), decreased error rates, and ease of implementation it is superior to competing or the client’s own products. Even where my proposals are seen as significant improvements, they are often rejected nonetheless on the grounds that they are not intuitive.

> It is a classic “catch 22.” The client wants something that is significantly superior to the competition. But if superior, it cannot be the same, so it must be different (typically the greater the improvement, the greater the difference). Therefore it cannot be intuitive, that is, familiar. What the client usually wants is an interface with at most marginal differences that, somehow, makes a major improvement. This can be achieved only on the rare occasions where the original interface has some major flaw that is remedied by a minor fix.

--Jef Raskin


Amusingly, the interface Marco points out as not having any real-world equivalent is actually fairly close (barring lack of keypad) to what my Casio scientific calculator does - calculation history, variable references, editing and all. The inability of most bundled calculator applications to live up to a £15 pocket calculator has been a source of frustration for me for quite some time - it's not that the calculators fail by replicating a real-world object; it's that they fail by not replicating the right one :)


It is funny, when injection molded plastics were first introduced, companies tried to make them replicate the look of knotty pine wood. Then some Italian designers got to them and showed off the intrinsic beauty of plastic (organic forms, translucence) paving the way for designs like the iMac. Seems like the same thing is happening with iPlatform apps.

I think the super literal interface metaphor is a symptom of people responding to polished aesthetics. For years designers have had to work in the handcuffs of cross browser compliance, small file sizes, and as a result most sites look boring.

Along comes the iPhone with these little app confections that are:

- single purpose: so they don't need cluttered nav and work really well

- replicating physical objects: so the metaphors generally make sense opposed to say a tag cloud

- Were made by Mac enthusiasts: Who tend to make really nice looking stuff

Now a lot of folks are thinking that the key to good apps is making it look like/replicate some real world object. While this is part of these apps appeal it is just one layer.

I think if the delicious monster/panic/icon factory teams got a hold of the calculator he was holding up as a great design it would be far more popular. It looks impressive functionally and he is right that we shouldn't be beholden to old technical constraints. It is just a boring from a UI/Eye candy POV which is important in a retail world.


His preferred calculator seems fairly close to using ipython which is what I would do.


I use a python REPL as my calculator. I went through many different apps until it hit me that was what I wanted.


The main thing the calculator program seems to have over python is easy unit conversions.

Also, I have to admit that python 2's default behavior regarding integer division is not what one expects from a calculator (I expect 3/2 = 1.5).


Yeah, but in Python you have other niceties, like dates.

Just the other day my pregnant wife asked me to calculate the aprox date she'll give birth (considering she has 17 weeks) ...

  from datetime import datetime, timedelta

  print str( datetime.now() + timedelta(weeks=40 - 17) )


Instacalc.com might be closer to what you want.


I ran across instacalc.com when looking for linux equivalents of soulver -- very nice web app.


Awesome, glad you're enjoying it!


I use wolframalpha, and sometimes maxima.


I switched from Python to R as my calculator of choice for this reason.

I only recently discovered that there's a lot more to R than intuitive division of integers ;)


Sure, but I'm intimately familiar with the semantics of the programming languages I use. It takes the same effort to insure floating point versus integer computations in the Python REPL as it does when writing a Python program - which is not much.

I'd rather use my existing knowledge than learn how to interface with something that is probably not as robust or as well designed.


Then use python 3.


Likewise. It's always open anyway.


On the Mac desktop, I still use a creaky ancient app called MathPad.

http://pubpages.unh.edu/~mwidholm/MathPad/

Really served me well in college. I've heard it referred to as a "Poor Man's Mathematica" back in its day. If Soulver worked more like this, I would have bought it by now.

That said, I've found that using my iPod touch as a "real world calculator" is much more convenient, and I ended up buying PCalc for it.

http://www.pcalc.com/iphone/index.html

Being able to tap calculations while walking and pacing the room brainstorming tended to be more useful than being forced to sit down and type at a keyboard.


Tried FreeMat yet? It's effectively the "Open Source's Mathematica". I've used it for a couple classes, it handles just about everything.

http://freemat.sourceforge.net/


Hmmm... looks a little heavyweight, but promising. Thanks for the tip off!


My professor recommended maxima as an alternative to mathematica.


I didn't realize that was a dedicated calculator application for a few paragraphs. I thought it was just an interactive interpreter for some languages.

These days I use irb (Ruby) or ghci (Haskell) for all my calculating needs. For me, defining functions and being able to map and fold are very important.


Same here, except I use an interactive perl loop that grew more and more features until it became pretty awesome: http://porkrind.org/missives/pc-perl-calculator


Similarly, I just use IRB. Languages with interactive shells are great :)


You need to be used to typing formulas into a computer (^ and sqrt and so on) to use the non-physical calculator. Most people aren’t. Sure, it’s easy enough to learn, but the average user opens his OS calculator probably only a few times a year. He gets what he is used to and that’s probably a good idea. Slow to work with but no learning required.

If you need a calculator regularly you should probably get something different. You wouldn’t write a novel with TextEdit or WordPad.

By the way, there is a much better way to do quick and dirty calculations which doesn’t require you to fire up the Calculator. Try Spotlight. And not just simple arithmetic. Try sqrt(2) or e^2 or sin(pi/2). Good enough for my very occasional calculatory needs. So, in a way, OS X offers best of both worlds, but some bells and whistles (which you might not need anyway) may be missing.


Spotlight failed on e^2...

Pretty cool, though. I've long known about Spotlight's dictionary definitions, but had no idea it could perform calculations.


It didn't fail for me. And +1 for spotlight calculator. It's SO fast and always there.


Works for me. Maybe you are running an older version of OS X?


Looking at his preferred calculator, I really see no visual cues of what functions are supported. Is it a simple calculator or does it do complex formulas. The normal OS X calculator acts like the physical object and gives the clues of a physical object. This is not to say I think the translation of a physical object is the best solution, but I really think that some better visual hints need to be given then just a blank document for new users.

The page turning Apple built seems to me the right way to go because it is simple gesture we grasp instinctively, the content is paged, and it looks good.

We can do so much better then physical objects on computers (look at the interface to many puzzle games), but it really needs to assist the new users and get out of the way of the old.


Visual cues are distracting. They're training wheels. The ideal calculator has either a) so few functions that you can remember all of them trivially, or b) so many functions that it would be ludicrous to display them all (or to omit some). I can't think of any smart compromise in between.

For example, let's say your calculator supports trig functions. Should it show you sine / cosine / tangent? Or all trig functions? Or should you dive into a "Trig" menu, so you're three clicks away from what you want to do, instead of being three keystrokes away?

I've never had a reason to use trig functions in my desktop calculator. And yet, (sin (/ pi 2)) does exactly what I'd expect it to!


sin (/ pi 2)) doesn't look the way it does in math books - it looks the way you have trained yourself programming to use it.

Visual cues aren't distracting if done right, and I said that absolute replication of physical is not always the way to go. My objection is that a blank slate is probably not a good idea since it provides no help.


Right. Once you're used to the format, it's really easy to image how other functions will behave.


"Looking at emacs, I really see no visual cues of what functions are supported..."


That's because if there were any, the menus would wrap the Earth seven times.

Seriously, though: To reflect such things visually, menus are typically used, and they bring limitations: they take up space (clutter), it's not always clear where the best places are for items (hierarchies are often ambiguous), deep menu trees mean you need several clicks to do things, etc. Textual interfaces have different trade-offs. They're less discoverable, for one thing, but they're also much easier to script, use rapidly (once you know them), etc.

These trade-offs aren't always suitable, but for something that becomes a central part of your toolchain (like a calculator or text editor), it's often a net gain.


Don't you think that is a good thing?


Yes, it's a very good thing.

Guys, I'm an emacs lover. I was just trying to nullify the argument against Soulver that the parent brought up by making an analogy to emacs which also has most of the functionnality hidden and yet is super great.


When making instacalc I had some of the same issues -- why do we emulate the existing calculator with its limitations?

I feel spreadsheets are the other extreme of interface overload -- way too much power. There's nothing in between (you get 1 editable field with calc.exe, and hundreds of thousands in Excel).

In my own usage I want to optimize the 90% use case, like an interactive "back of the envelope":

* Real-time editing & results

* Show the few calculations I care about at once (both question and answer)

* Ignore gritty programming details (does variable case matter? Do _spaces_ matter? Why can't a name be "net sales = 3")

* Make difficult conversions easy ("15 cows/day in minutes per cow").

There's always tradeoffs between familiarity & forging a new direction.


Spreadsheets strike me as way too much abstraction, rather than power. Both for most users, however. They're also generally quite poor abstraction, IMO, as relational connections are often very hard to show without being way over the average proficient user's skill level, and spending a lot more time creating a pretty display sheet rather than leaving it all in rows & columns.

That said, a lot of that is because people abuse Excel horribly, to do everything and wash the dishes and walk the dog.


I just use the Google search-bar up over there on the right.


The Google search bar is an excellent calculator, because it understands words too. You can do "50 million * 3%" and it will answer "one million five hundred thousand". That's easier to interpret than a whole bunch of zeros. It also interprets units "20 mph * 3 hours" = "96.56064 kilometers". "20 mph * 3 hours as miles" = "60 miles". Also the auto-suggest feature completes calculations so you don't even need to hit enter.


Instacalc is another good one.

http://instacalc.com/


Nice. I just turned it into a stand-alone app with Prism; now I have Soulver but free (and dependent on an internet connection). The bookmarklet is also really handy.


Thanks! Glad you're finding it useful... I've contemplated turning it into a desktop app also.


it also does currency conversion ... try " 300 USD * 1.19 in EUR "


It's great, and I use it all the time because it handles units properly, but once things get complicated, it's a pain (you can't define variables or easily use results of previous calculations).


The only reason I can think of to make an interface that mimics a physical object is that the new interface is more likely to be instantly recognizable and intuitive to a user looking at it for the first time. In this case you're designing the interface to work best for a new user, which generally means it won't work as well for an advanced user. I would guess that designers of basic calculator apps, like the example in the post, are designing for the new or occasional user and assume that anyone doing lots of calculations will move on to something more efficient.

The problem with extending physical mimicry to more complex software is that the interface ends up adopting design compromises made for the physical world. I remember the idea of a "virtual shopping mall" where you would virtually walk through the mall, look around and pick a store to go into. But a shopping mall has to be a certain size because it has to hold a certain amount of stuff. It takes time to walk from one end of a mall to the other, but there's no reason to extend that compromise (made to gain physical space) should ever be made in software. For anything beyond a very simple application you're better off asking the user to learn a few things about how the software works and designing the interface for its medium.


Slightly off topic, but I find the Python REPL to be the best calculator out there.


I never stopped using bc. Why you'd want one of those things with GUI buttons I dunno.


The scratch buffer in Emacs has a similar function for me.


I'm going to put my skinny little neck out here and mention the emacs calculator (rpn for the win!) and pari-gp.


Whenever I see a little Mac app that's apparently quite popular and has a price attached, I can't help wondering why nobody releases a Windows version with the same price tag.

Proven market + 20x customer base = potential success?

Note to whoever jumps on this: Do it with Omnigraffle first. I'll buy the first copy!


Simple reason? They're making "enough" off the Mac version and quite frequently the people who make the well-designed clever little mac apps (see: omni, &c) have absolutely no inclination to develop for Windows.


Perhaps I wasn't clear.

Why doesn't one of the smart, ambitious, young developers here at HN, who is probably looking for a side project develop an Omnigraffle or Soulver clone and start selling it? I can understand why the Omnigraffle people themselves are too busy driving expensive cars through the hills around Silicon Valley to do so themselves.

Considering how many time-waste-ish sites we see come through here in "Rate My Site" form, it's clear that there's plenty of dev-power getting squandered on a daily basis.

I've just given two concrete examples of applications that real people are paying real money to use. Personally, if I had the time I'd be spending it building WinSoulver rather than BigAssTextMessage.com.


People on Mac are more amenable to pay for software than on windows, generally speaking.


Conversion rate for BCC on Macs is nearly double that of Windows. I have always attributed it to my stunning design, rigid adherence to the HIG, and use of cutting-edge Mac-centric programming languages like Java Swing. ;)


I've also generally found that even the "my first program EVAR" projects are very frequently functional, stable, and integrate with 90% of the apps most people use (built-in ones, and ones compatible with those).

Try saying that about Windows applications.

I've also had far far far fewer headaches, crashes, and general "wtf" moments with my app-testing habits on OSX than I have on Windows, and I'm clocking 2,000-3,000 (or higher) on OSX and well over 5,000 on Windows. Seriously.


Well it's the hills around Seattle, and the Omni founder with the Lotus Elise left to found Delicious Monster.


I actually guessed half right? Nice!


I noticed something about Propellerheads Reason, the old music studio program. Its interface emulates a rack of devices where you can draw cables between the ports to create a sort of modular setup. Everything is made to look like authentic hardware gear. Just like in the real world, there could only be one cable in a socket at a time, although there didn't need to be any such limitation in a software environment. Later, they kind of fixed this - by adding a separate "splitter" module which duplicates its input signal into two outputs (iirc).


The drawing cables between ports part is what works, even if the animated dangling is a little silly when they could be neatly routed.

What's terrible about those Pro Audio UIs is the arrays of fiddly little knobs arranged in the same cramped pattern they are on the hardware. They have improved the usability over the years by making the dials effectively sliders -- scrubbing on an arc is just a degenerate case of scrubbing on one axis.

The worst are plugins that have these cramped UIs but aren't representative of physical hardware -- some are worse than the worst Kay's Power Tools UIs.


Please note that Soulver is available for Mac and iPhone only and the full version is 20$.


I think I'll stick to bc for the time then.


Wholly agree with nevinera on this. That calculator is there for people who don't know another interface for calculators. Sure, there are better tools, but sometimes simplicity & mimicry are best.

For a brief side-topic, Soulver is interesting. Good in many ways, but lacking in a fair number.

For two examples, from a feature request I sent in a while ago.

1) Matrix calculation is effectively not possible, though you can fake it through massive function hacks. This means an enormous amount of the math I would've used it for simply could not be done.

2) This is a big and simple one: fractions go in, decimals come out. There's an "answers" floating palette you can pop up, but guess what. You can't select the text. Loads of useful information, and all you can do is look at it. I requested this be changed quite over a year ago (I mean, heck, why not?), but it's still the same.

Also, the last update was three years ago. Barely-developed programs frighten me.


Excellent ideas in the article. I think it's interesting that he mentions iPhone/iPad apps that emulate page turning. I remember when that was a popular fad for newspapers/magazines that were moving to the web. They all had to have fancy flash/java, whatever interfaces that emulated a magazine complete with page turning animations. It was the kind of thing that must have looked like a million bucks when demonstrating it to the CEO, but was universally hated by actual users. :-)

Other good examples from the web would be the many attempts that have been made to create web based "shopping centers" and museum interfaces that would try to recreate the experience of walking through a shopping center or museum. Of course those all failed wildly because it's a hell of a lot easier to just click on a menu than to walk down a "virtual hallway". :-)


I agree that physical metaphors are overused. Unfortunately, they sell software: http://delicious-monster.com/images/librarypage/screenshots/...


I guess eye candy sells in general:

http://apcmag.com/disco_public_beta__burn_baby_burn.htm

I predict the next App Store success will be a tip calculator app with wooden side panels set on fire.


Another excellent calculator (multi-platform, too): http://www.speedcrunch.org/en_US/index.html

By default, it has a keypad, but you can turn it off easily enough.


OT: Thank you for reminding me about this calculator. I had it installed on my old laptop and I forgot to install it on my new one. By the time I missed it, my old laptop was re-imaged and re-deployed. I could not remember its name and my google-fu was failing.


Is there a fork with the answers computed on-the-fly in a sidebar like soulver or instacalc? I like this idea of not hitting "enter", and the delayed tooltip does not do it for me. Might be time to start hacking


In that Tandy Trower article about Windows, he mentions including simple apps like a calculator and what not, to show off what the UI toolkit is capable of, not necessarily as useful end-user productivity tools (though those, in the form of Write and Paint, would eventually be added).

It seems we've inherited the calculator app because that's what everyone has always done before.

Also, digital cameras do make fake shutter sounds...


Oh man that looks cool I can't wait to try it. I'm a hedge fund accountant and I would love a way to keep a trail of calculations open like that. A lot of times when I'm doing tricky Sherlock Holmes reconciliations a spreadsheet is total overkill and too confining.

Thanks for posting, swombat! New item on my TODO.


I think the guy in "The Essentials of User Interface Design" says the same thing somewhere in that book.


Since we're on the topic of calculators ...

Is there something like Soulver or Speedcrunch, but also handles unit conversions a la google calculator?

instacalc is OK, but doesn't handle units properly either.

edit: www.encalc.com seems to do units right, but allowing only one expression at a time is limiting.


Yeah great, we just needed some "dc/bc" clone in a window at 19.95$. I agree with the interface mistake, not with the product...

Use dc or bc!


The calculator app is much more intuitive than some text app for general users, just like the finder is much more intuitive than the terminal.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: