Skip to main content

Ralsina.Me — Roberto Alsina's website

A Modest Usability Improvement

You know, some things are us­able. Some things aren't. Read on, to see one that is­n't and one that (I think) is.

A semi-­tongue-in-cheek us­abil­i­ty ar­ti­cle.

clayne / 2006-04-03 11:34:

I think all of your comments are totally valid.

But instead of reinventing the wheel, may I suggest:


In a konsole window approaches the exact same goal? About the only thing bc needs is proper text manipulation.

Gael Beaudoin / 2006-04-03 11:34:

I agree with you, moreover, you made me laugh a lot !! Thank you :)

Roberto Alsina / 2006-04-03 11:35:

This one is prettier ;-)

Roberto Alsina / 2006-04-03 11:36:

Excuse me, but syntax???


That's the syntax.

In fact, if you ignore the fact that you are using real buttons instead of pictures, you click the exact same thing in kcalc.

Ok, so you press Enter instead of = and the last number is not automatically in the input field.

Both things could be done, if I didn´t consider them silly too ;-)

Gary Greene / 2006-04-03 11:36:

Sorry, but I disagree. At best, your application's audience is the technical user that has used a UNIX or DOS commandline based calculator. Yes, it is silly to draw the various buttons on the screen, but the reason we do this is to not confuse the computer user, since they are _used to_ using a physical calculator. I do agree however, that kcalc DOES need at least tool tips or better yet, What's This entries, to explain the buttons that non-scientific calculator users don't know. Additionally, the way that your calculator works violates several usability principles, the first being discoverability. If I fired it up in front of a user that knew what they want to input, but not the syntax, your calculator would be completely useless to them.

Alex / 2006-04-03 11:37:

I think Kcalc's Simple mode is definitely overloaded with too many buttons and that it could benefit from a ncie history window.

However, I do not think you should get rid of the buttons for numerous reasons. With the buttons you can easily type numbers you see on the screen into the calculato. Sometimes I do not feel like changing to the keyboard and would prefer to use the mouse. The interface resembles a real calculator and it seems more intuitive to me. It's also like this in every OS and so aids in familiarity.

FINALLY, THERE IS NO GOD DAMN POINT! Those who prefer to use the keyboard use that and those who like graphical will use that and for the strange ones, use both at the same time. (I often use my mosue to click on functions and keybaord to type in numbers). There is no need to destroy one or the other.


I defnitely think your right on the history and that the "Simple" view is way too overloaded. And yes, Python rules.

clayne / 2006-04-03 11:38:

Unfortunately you're asking for the masses to utilize critical thinking - good luck with that one my friend - you've already seen people basically say "let's use old crappy interfaces because we're used to old crappy interfaces."

Roberto Alsina / 2006-04-03 11:38:

Sorry, but are you telling me that you would rather hunt and peck using your mouse than type? In such case, use a on-screen keyboard. Sure.

But please don´t tell me that´s in any way efficient or better from a usability standpoint, because I don´t quite believe it.

And sure, people are used to this. It doesn´t make it any less braindead.

Heiko / 2006-04-03 11:39:

I think the first intention to write kcalc was to present people coming from windows a clone of a tool they were familiar with.It should make them say 'Oh it's all there.No need to stay with Windows !'

I agree that there are always programs that are more efficient than graphical solutions.If we would try to find more efficient programs for every kde application we would possibly end with why not

vi instead of kate or elinks instead of konqueror ?

I agree that cli is mostly faster and better than gui, but you will frighten the ones that make their first steps with linux (even when the come from windows).

The windows people will say 'Hey look their calculator - it's miles away from todays technology'

Don't get me wrong - You are right in most of your reasons against kcalc, but kcalc is meant more to be a 'warm welcome' instead of being the most practical calculator application.

Trevor Smith / 2006-04-03 11:39:

Ignore those who say there is no point or that your theory is wrong and that simple users will be lost without a graphical representation of keys to look at.

And for those who say "what's the point?" I'll tell you: KCalc takes a HELLISHLY long time to load (considering it's just a calculator). It should be instantaneous, on ANY hardware, and since it is not even close to that fast, it needs to be thrown out and a sensible, tiny alternative needs to be made.

Janne / 2006-04-03 11:40:

I do agree with you that Kcalc is overloaded with buttons. The simple mode should just have the bare essentials (and that means +, -, =, *, / and the numbers) and that's it.

I do think that you should be able to use your mouse when entering numbers. Suppose that I couldn't do that, how would I then use the calculator? It would go something like this:

K-menu ==> Utilities ==> Kcalc

Move your hand from the mouse to the keyboard

make the calculations

Move your hand to the mouse

Close the app

If I used just mouse I would not have to let go of it. I would just hunt and peck the numbers with the mouse-cursor.

Of course, it would be slower in the long run. But I don't use it for long and complicated calculations. I just need to punch in few numbers, and that would be it. I don't want to move from mouse to keyboard and then back to the mouse again.

Adam / 2006-04-03 11:41:

Why not just a config option to display the on-screen buttons or not?

I agree that having most of the buttons on the screen is pointless but I also understand that point of view where the newbie is going to expect them to be there. So, why not just display them by default?

Not that any of this makes a huge difference to me as I prefer the HP 32 IIs that is sitting next to my keyboard or my the HP 48GX in my bag.


Koen Pauwels / 2006-04-03 11:41:

Why not just allow both?

Make it a cli based calculater and provide docking windows for people who like GUI buttons for input.

As an example, you could look at how formulas can be entered in OOo writer.

adham / 2006-04-03 11:42:

Hey, I use scilab, it starts fast, I do all the calculations, from simple to very sofisticated. and It looks like your proposal, and much much more, check it out at

norbert / 2006-04-03 11:43:

Sorry roberto, but please calm down.

The reason why one would prefer using kcalc is because it is obvious how to use it and therefore supports productivity.

How should I ever guess in your calculator how to convert decimal numbers to digital, how to use sine, tan, log, how to have exponents, the number PI, etc?

After years of using matlab and scilab I'm used to searching through manuals and help pages but for short calculations I'm not willing to do this. And nobody keeps me from using the keyboard for entering 2+2 in kcalc.

So you end up adding buttons to your calculator as well in order to meet usability requirements. And what will be the difference then?

I appreciate your effort to contribute to the open source, but please try not to think others were completely stupid.

Harry / 2006-04-03 11:43:

let kcal have a "usecalc" mode as default. It is a better HMI and enhances the normal human way of calculating. Could one also have it print out the stored memory values too.

Roberto Alsina / 2006-04-03 11:44:

I know Bernd Wuebben (the original KCalc author) and I am pretty sure he is not stupid. I am also pretty sure he doesn't believe my article calls him that.

I do believe Kcalc is a member of a family of stupid apps, though.

On the other hand, your argument is self-contradictory.

For simple calculations, usecalc is actually simpler. For example, you can do the entire calculation in one step instead of hiding the previous pieces for no good reason (like, say, 2+3+4+5+6+7+8).

I can even agree that buttons for sin() and such are possibly helpful. A button for 1 and another for +, though, they are stupid.

I am not against buttons. I am against stupid buttons, though.

Roberto Alsina / 2006-04-03 11:48:

Forgot to post a little bit:

Are you telling me that it is necessary for users to have a button with the number "2" in it so he figures out how to enter the number 2 into a application?

Let's add it to every application, then.

Gary Cramblitt / 2006-04-03 11:49:

The "family" of apps you refer to are those using misplaced metaphors.

Norbert / 2006-04-03 11:49:

See, for such simple calculations it does not even make a difference, since one can enter everything by keyboard without the need for a mouse. With the only difference, that in kcalc there are buttons showing the numbers we enter. Are those 10 number buttons really worth the hassle?

But everyone will know where to click if he needs the hexadecimal representation of the entered values. And that's why kcalc is not that bad.

By the way, with the arrow keys you can get your old results back. Maybe the button was missing for you guys to know... ;)

Hey Roberto, don't feel offended. You seem to be talented. Spend it on something useful.


Roger / 2006-04-03 11:50:

I agree completely with your sentiments. You should check out Frink:

Its the most amazing calculator app I've ever seen.

Calling it a calculator is actually a bit of an insult!

Wrong Audience / 2006-04-03 11:50:

KCalc isn't the hardcode calculator you seem to think it is. Its a simple thing to fire up to do simple math. And as such, it should be simple, and look like a calculator.

Your conclusion (the UseCalc) is dubious as well. a) It's not much of a KDE app b) It is basically "bc" except it doesn't have as many features.

If you want an advanced calculator that has no GUI, use bc inside a Konsole window. If you want a quick simple calculator that your mother can use, use KCalc.

Roberto Alsina / 2006-04-03 11:51:

Norbert: Cool, so I can get back the old results. How do I get back the old calculations?

I mean, sure, I can get back a 0.12534215452

How do I get back sin(0.7)*atn(3)/23 so I can change the .7 to a .6?

Got a button or a key for that? ;-)

Wrong audience:

Nice strawman there. Read the article. I specifically say Usecalc is just a quick hack, an idea for a different calculator, not a real program. And as for it not being much of a KDE app... DUH! (Although I don´t see how it would benefit from being one)

And it most certainly can do anything BC can (or would if the input was multiline), and can do a bazillion things BC can´t. Really.

But hey, I did user testing. I called two guys in the office. Web designers, who have not used a calculator in 5 years. They understood Usecalc just fine in 15 seconds (instructions: type here, then press enter)

chris / 2006-04-03 11:52:

what about flags.

i use kcalc occasioanlly for finding the sin of a radian angle, and occasionally for degree angles.

syntax for these? or what of using different number bases? such require syntax or a gui handeling.

Brian / 2006-04-03 11:52:

I love it. I makes so much sense on so many levels. Type is what you want calculated, press enter.

If you decide to implement it completely (not just a prototype) there is still a ways to go, but it would be a fantastic direction for a overlooked app.


Witek / 2006-04-03 11:53:

I think the author of the article is wrong in some cases (he's right in some too).

He claims that that KCalc has too many buttons, but hey! On-screen keybords have even more and nobody thinks they're obsolete! He also says, that if you want to push buttons to input numbers, you can use such virtual keyboard, but I ask you - what for? If I only want to enter few numbers without touching the keyboard, I don't want to start another app just to do so (which would take time, so we could then discuss the 'kcalc starts too slow' argument).

One could ask, why would someone want to enter numbers by clicking the mouse instead of entering it from the keyboard in the first place? Well, I have another argument (to those listed by others). Suppose I don't have access to the keyboard (i.e. someone else occupies it and I just want to make some calculations fast). The next case was that you can use buttons to input functions and keys to enter numbers... But again... Why? It'll take more time than clicking the numbers anyway. Next argument... if someone is not used to a keyboard, it'll be easier for them to push buttons on the screen instead of focusing on the keyboard (belive me, I know what I'm saying!). To summarise - kcalc's buttons don't annoy me (but there could be an option to hide them though).

I do agree though, that it should be possible to "rewind" the calculations. I also agree that many things could be done better.

But the main point is that KCalc is not a scientific calculator, it doesn't have to be bloated with features, it doesn't have to be lightingly fast - it just has to be simple and usable for everybody and not just computer geeks. If someone wants a more usable calculator, one can choose one of many other available.

I think kcalc is ok and should stay the way it is, as the simplest and most straightforward option available.

sergio / 2006-04-03 11:54:

I agree with Roberto's reflection about usability... but i think he missed the point about Kcalc.

Kcalc's principal objective isn't to do calculations nor to have an efficient interface... the Kcalc's reason of being is "look and act like a physic calculator".

That's the question. ;)

Peter / 2006-04-03 11:54:

This is a great trying. I was thinking about it also.

The biggest disappointment for me in KDE was Kcalc. It is the same stupid calculator like the windows one.

The calculators you can buy in a shop have:

- two line display, one for the equation and one for the result

- more than 10 memories

- logically grouped buttons

- and it is small

The calculator on my computers screen could have these and even more:

- the buttons should change when INV or 2ndF pressed

- bracket should be counted and paired

- history for equations and results

- possibility to switch buttons or button groups on and off

- it should be small, not to cover my other apps

So I think we need buttons but in a logical way. And I could not find a simple but usable calculator like I mentioned. :-( Anyone has one?

Trejkaz Xaoza / 2006-04-03 12:06:

I love it. The default calculator is a bitch when you need to enter something like this:

1 + 2 + (3 x 4) + 5

The first problem is it shows the running tally, which frequently overwrites what number I just entered. This can be a pain, when you enter "1 + 2 +", and it displays 3. Suppose you then forget what you're up to, so you glance up... "Ah, 3! Cool, so 4 is next!" Bzzt... calculation gone. Try again.

Something akin to a "bc" for KDE (how about "Kbc"?) would be awesome, it could exceed bc inside a Konsole quite easily since it could theoretically start up faster than Konsole. ;-)

If the current one is going to stay, it does seem lame that it has punch buttons for things which are already on the keypad.

"Hey look their calculator - it's miles away from todays technology"

And afterall, isn't that the goal? Who wants to be using today's technology, when you could be using tomorrow's?

claes / 2006-04-03 12:09:

A very nice calculator is Qalculate!

It is written with Gtk but in C++, with lots of interesting features.

anonymoose coward / 2006-04-03 16:40:

>Kcalc's principal objective isn't to do

>calculations nor to have an efficient

>interface... the Kcalc's reason of being is

>"look and act like a physical calculator".

That is such a crazy comment.

Hmmm... lets try play some classical piano music using a mouse with an onscreen interface that "looks and acts like a physical musical keyboard"

Sound crazy ? Of course.

But hey. People would know how to use it automatically... LOL

People may know HOW to use it, but they won't because the real thing has a better interface.

I use a real calculator with a real tape printout all the time instead of KCalc... Why. Simple It's faster and i can check the work.

Why use a computer to simulate a physical calculator when a real calculator with a paper tape is faster and easier ?

Using a memory register interface like old physical calculators is just dumb.

You should just be able to type the equation in and get your answer. Parentheses can be your friend. :)

Roberto's test app and Qaclculate are so much intelligent. (but neither is perfect IMO).

Use the power of a computer to create something that simplifies doing both hard and easy calculation tasks.

Don't emulate old technology just because people might find it easier initially.

If Henry Ford thought that way we'd be driving cars with reins since people used to driving horses would be familiar with the interface. :P

Kyle / 2006-04-04 01:37:

"I also learned that calculators are easy to write, if you drop all the baggage ;-)"

This is because someone essentially wrote the code to encapsulate the complexities of such a project. Interpreted languages will do thing like, hide bit precision using linked lists, and all sorts of data structures you many not even realize are being implemented.

I am all for quick and dirty to get the job done (scripts and such). But if you want to write a replacement, you will need to consider the complexities as to implement an efficient solution. (Also, you probably wont find Python running on an embedded CPU, too resource hungry, FYI the number embedded systems CPUs far out weigh the amount of 'PC' CPUs in rotation, about 100,000 fold, don't take my word for it, look it up, e.g. MIPS). A solution that can be cross compiled for a particular architecture *could* be a a portable solution, contrary to common belief. This would be the ideal solution not just because it "starts quicker", but due to the conservation of limited resources in computing environments.

Roberto Alsina / 2006-04-04 01:38:

Nice to see people still commenting on this at this late date :-)

Kyle: a real embedded system will not need a calculator, and you can get python in phones nowadays.

Perhaps you can give a real example, like "this specific system running on an embedded CPU needs a calculator for this reason". Other than that, I fail to see your point.

And yes, I *do* know python has this implemented, and that's why this was simple to do. But hey, that's **good**.

After all, if I wanted to make it hard, trust me, I know how to do it. For example, I could be writing the parser in handcrafted Turbo Pascal, like I did when I was 16 or so ;-)

ato / 2006-04-04 13:59:

Ok - so I want to convert hex to binary. How do I do it, and how intuitive is that solution....

Roberto Alsina / 2006-04-04 14:00:

Oh, you cant, unless you add a function to the interpreter. This is a proof of concept, dude.

Anyway, if it was done (which is about 15 minutes of work), it would be like this:


The bad news is that you would not be able to opperate on the result.

Roberto Alsina / 2006-04-04 14:01:

A better idea, of course, would be a mode switch.