Software Calcuators and UI Design

I noticed a very peculiar UI design pattern lately. Have you ever used a calculator program? I’m sure you did at least once in your life. Most operating systems ship with some sort of a calculator tool. Strangely enough, they all look the same:


Can someone explain to me one thing though? Why the keypad? I mean, why is it there on every single fucking calculator – whether you are using calc.exe on windows or xcalc on a real operating – there is always the keypad. Why?

Your computer already has a perfectly well designed calculator input interface in the form of a numeric pad on the keyboard. If you haven’t noticed it was actually designed to look like a calculator with the tight clustering of numbers, and dedicated buttons the basic math operators placed in strategic easy to reach places:


Does anyone actually use the mouse input when using these software tools? Virtual keyboards are ok if you are paranoid and afraid of key loggers but they are not great for data input unless you are using a touch screen or a tablet with a stylus. I personally find the numpad faster, easier and more intuitive to use than an on-screen input.

This design tries to mimic a real physical, low end calculator forgetting that these things generally suck. If I know I will need to do some number crunching on paper, I use my trusty TI-86 – not one of those simplistic pieces of crap with a one line LCD display.

It seems that most of the simple calculator programs out there approach the problem wrong. They forget that the chepo calculators are built the way they are simply to cut costs. The LCD is so tiny to keep the production costs down. But there is no reason why a software calculator should not display recent calculation history the way high end graphing calculators do. Instead of using a big output screen for recent results, they instead build a huge and unnecessary number pad, and restrict the results to a tiny little box that can only hold one number at a time. WTF?

Believe it or not, this pathology runs deep. I was surprised that someone actually built a front-end for the unix bc tool using precisely this philosophy – a big virtual keypad and a one-number display box. There are however few tools designed the right way. Most notable one of course is the Windows XP PowerCalc:


I believe that I mentioned that to me this is one of the better calculator UI’s. It has a nice big box where it displays results, a graphing area, a list of constants and variables and helpful hints just above the input box. Did you notice the lack of the virtual numpad? Yeah, when you get rid of it, you suddenly get more space for all this other cool stuff.

SpeedCrunch is not bad either. The default setup does include the stupid keypad, but it is a linux app. That means you can easily configure it and make it into something very minimalistic:


I guess there is a lesson in UI design, and usability here. Designing a software calculator to work like calc.exe or xcalc is like building a word processor that acts the same way as a real typewriter. Imagine if MS word only allowed you to use mono spaced font, and would not let you delete or backspace erroneously entered characters forcing you to retype the whole page every time you made a mistake. Fortunately at some point someone figured out that you can actually design something much better than a virtual keyboard. We still haven’t really made that leap with calculators though. When you tell someone to build a calculator tool, they immediately start thinking about building that virtual key pad. Why? Because that’s what calculator is, right? A numeric keypad with an LCD.

What they should really be thinking about is what a calculator really does, and how can it’s functionality be improved and extended in virtual space.

This entry was posted in programming and tagged . Bookmark the permalink.

13 Responses to Software Calcuators and UI Design

  1. I think there is no better Calculator for everyday use than plain old bc. I even once tried to compile it vs cygwin, so i could use it under windows.
    On the other hand i think Calc98 is one of the best freeware-Calc-Apps for my old PocketPC, it strongly depends on the onscreen keyboard, but thats ok… my PocketPC uses Touchscreen anyway. If i used Calc98 on PPC a lot, it was sometimes easier to use the same UI on PC like on PPC, so i stayed with Calc98 even on my Desktop-PC.

    Reply  |  Quote
  2. Luke Maciak UNITED STATES Mozilla Firefox Windows Terminalist says:

    @Dr. Azrael Tod: Cygwin has a bc package somewhere. It’s probably not in the core install, but it’s there. I know because I use it. :)

    Oh, and there is a native win32 version of bc too.

    Re: PocketPC apps – that is actually where an on-screen keyboard makes perfect sense (as it will be better organized for numeric input than the tiny built-in WinCE keyboard (or equivalent).

    Reply  |  Quote
  3. oh.. i did get bc to run under windows. Problem was more the scripting-abilities of PHP (what i combined with bc and some socket-magic) differed in some small parts from the Linux-Version. So i did have some problems to run my Project on both systems. None the less.. it did run… Its just that i dont use windows anymore and my Project has been replaced long ago by a nice, clean Version in plain Python *G*

    Reply  |  Quote
  4. Milos UNITED STATES Mozilla Firefox Windows Terminalist says:

    It’s what we are used to which is why most folks don’t even think about anything else while developing these calculator tools. As you have mentioned, there are exception such as Windows XP PowerCalc but generally giving users something which doesn’t resemble what they are used to can really throw them off. ;)

    Reply  |  Quote
  5. Mats Rauhala FINLAND Mozilla Firefox Linux says:

    Actually, I study information technology, and I’m probably the only one who’s not using the default windows calculator. With a mouse. It pains me to see how my classmates try to hit the right buttons with a touchpad.

    For me it’s octave and wcalc

    Reply  |  Quote
  6. ST/op DENMARK Mozilla Firefox Ubuntu Linux says:

    It reminds me that Crimson Editor, which I used under Windows, had a nice build-in calculator feature that could be used anywhere while you were typing text.
    There are plugins for Vim to do the same thing.

    The only situation I think the UI of a calculator may be relevant, is when working on a laptop, as they don’t feature a numeric keypad. And Fn-keys suck!

    Reply  |  Quote
  7. when confronted with the choice between pushing every software-button via mouse or pressing the number-row on top of your notebook, you would choose the mouse?

    i doubt it…

    Reply  |  Quote
  8. James D UNITED KINGDOM Mozilla Firefox Ubuntu Linux says:

    Okay, you probably wouldn’t click simple operators such as plus or minus. But would you care to guess what, say, arctan is on a keyboard? At some variable point, clicking on the button is the quicker choice. And having buttons you rarely use isn’t as bad as sifting through help files to find out what the syntax is.

    Reply  |  Quote
  9. naum UNITED STATES Mozilla Firefox Mac OS Terminalist says:

    don’t forget about google calculator

    just type in at the google bar

    or from ubiquity, gc 40 * 3.35 (my weekly pay ;()

    Reply  |  Quote
  10. Luke Maciak UNITED STATES Mozilla Firefox Windows Terminalist says:

    @Milos: Yeah, but then again a Word processor would be confusing to a typewriter user too. And yet we have them even if they all suck. That’s because people to decided to innovate rather than just emulate a typewriter.

    @ST/op: Yeah, the Fn stuff sucks but a lot of people who do work in excel a lot buy those USB numpads that double up as a mini-hub. I know because I see these all the time at work.

    @Dr. Azrael Tod: Yup, the top row still beats the mouse input. Especially if you don’t have a real mouse but just a touchpad/glide stick which both suck.

    @James D: Most graphing calculators would of course use arctan(). It’s a function, no? Functions have similar syntax in mathematics and computer science. :)

    But yeah, for obscure functions it is nice to have some buttons. Or you can do what SpeedCrunch does and have a list of click able function definitions as an optional sidebar.

    @naum: Yeah, useful when you already have a browser open. Not very good for complex multi-step calculations where you take the last result and do something to it.

    Reply  |  Quote
  11. AlBundy SPAIN Mozilla Firefox Ubuntu Linux says:

    I use an HP48 emulator, both in windows and linux

    Reply  |  Quote
  12. JuEeHa FINLAND Mozilla Firefox Mac OS says:

    I use dc because I just love rpn notation. I can’t explain why. It has led to amusing situations in my math class.
    Teacher: ” Come here at whiteboard to show us how you calculated that”
    Me: “The way I have written in my notebook?”
    Teacher: “Yes”
    I write something along the lines of “5x;2x;2^1-*=5x;2x;2^*5x;1*-=10x;3^5x-” on the whiteboard
    Teacher: “Umh. Just write it the way everyone understands. Ok?”

    Reply  |  Quote
  13. Shane M. Pelletier CANADA Google Chrome Linux says:

    One calculator that I just recently (as in five minutes ago) found out about is KAlgebra, which is described on the website as “a mathematical calculator based on content markup MathML language, capable to make simple MathML operations (arithmetic and logical) and to representate 2D and 3D graphs.” Despite its name, it doesn’t seem to actually be able to solve algebraic equations, but it’s still a pretty decent software calculator.

    Reply  |  Quote

Leave a Reply

Your email address will not be published. Required fields are marked *