Overdoing the interface metaphor
marco.org
marco.org
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.
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.
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.
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.
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.
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.
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.
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.
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).
> 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
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.
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).
I'd rather use my existing knowledge than learn how to interface with something that is probably not as robust or as well designed.
I only recently discovered that there's a lot more to R than intuitive division of integers ;)
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) )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.
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.
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.
Pretty cool, though. I've long known about Spotlight's dictionary definitions, but had no idea it could perform calculations.
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.
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.
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.
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!
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.
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.
That said, a lot of that is because people abuse Excel horribly, to do everything and wash the dishes and walk the dog.
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.
Proven market + 20x customer base = potential success?
Note to whoever jumps on this: Do it with Omnigraffle first. I'll buy the first copy!
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.
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.
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.
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.
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". :-)
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.
By default, it has a keypad, but you can turn it off easily enough.
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...
Thanks for posting, swombat! New item on my TODO.
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.
Use dc or bc!