|
comment []
trackback []
Usability is a hot topic on KDEland. Almost everyone who reads this will have seen, one time or another, articles with titles like What Linux Needs To Win On The Desktop Wars or some other similar nonsense. I say nonsense because there is no war, and if article writers are so clever they would be actually writing software that could win such war. And that includes me. Hell, I am not that much of an article writer, (or that much of a programmer, for that matter). However, I know this: code beats words. Thinking beats not thinking. Often, to think right, you have to start from nothing. So, I started thinking... what is the worse possible program in all of KDE, usability-wise? And the answer is prettty obvious. The calculator. And what can I do about it? Write a calculator that makes at least some sense. But wait, you may say, the calculator? Who uses that thing? Probably noone, because itīs a program that makes no sense. Itīs a clone of a program that made no sense in the first place. How wrong is the calculator? Let me count the ways...
1. The finger emulatorQ: Why so many buttons? A: Those are the calculator buttons Q: What happens when I press the 1 button? A: It inputs the number 1 into the calculator. Q: Oh, cool. But why not use the nice, 3D button made of plastic with the number 1 I have in my keyboard? A: You can use that button Q: So why is the button on the screen? A: It serves no useful purpose whatsoever. Yes, the calculatorīs most obvious mode of operation (clicking on the widgets) means you use your mouse and pointer to emulate a finger, clicking on emulated calculator buttons. Oh, sure, the emulated finger is 10x slower and 20x less accurate than your actual finger clicking actual keys, but hey, it makes it look like a calculator! Which reminds me... 2. The keyboard-in-a-windowItīs usually accepted that a toolbar with 20 items has at least 8 too many. The kcalc window shows 33. In the simple mode. On the others it shows many more. You just shouldnīt put 30+ buttons in a window unless you have a very good reason. But thatī s not the real problem. The real problem is... 3. It acts like a calculatorYou can see a MR button. And a M+ one. And several others. If you havenī t ever learned what those do, they are the interface to the calculatorīs memory stack. That is very useful in a calculator, because it means you can do things you usally canī t, like 2*(3+3). Let me quote the KCalc handbook on the subject: Crickets chirping Yup. Itīs not even documented. Because you are supposed to know how to do it from using a real calculator, I suppose. So, for 90% of the users, those buttons are just decoration. MInd you, this is not a criticism of the doc writers. A good reason not to document it is that itīs a useless feature and their time is limited. We are using, to emulate this 1960s piece of hardware, a freaking computer. You know, a calculator usually has about 1024 memory locations. Your computer has probably over 128 millions. And drawing one of those cute buttons uses a couple thousands of them. In fact, letīs try something more radical: your computerīs keyboard has parentheses in it. You know, these? () ? Those are used to group operations. So you donī t have to use a calculator-like memory. And you can tell your computer to remember things. Hell, you can tell your computer to reemmber everything. 4. Itīs not the right kind of calculatorEver seen a ticket-tape calculator? Those are rather more expensive than the simple LCD-type stuff kcalc emulates. They have a roll of paper, and whatever you do, it prints. That way, you can later check what your previous operations were, and what their result was. Usually, you are limited somewhat because it uses paper. But we have a computer with millions of bytes of memory. We can have a practically infinite tape. So, kcalc is not only emulating a calculator when it doesnīt have to, but it also is emulating the wrong one. Letīs get constructiveHere you can find Usecalc. I wrote it in 20 minutes. Itīs a much nicer calculator. It uses PyQt, so you need that if you want to try it, but even if you donīt, look at the screenshot.
The thing that jumps up at you is, of course, that it doesnīt look like a calculator. Remember, thatīs good. Hereīs the manual:
And thatīs that. I dare anyone say this calculator is not more usable than kcalc ;-) Sure, anyone can take kcalc and use it right away. But if you want to actually use a calculator, UseCalc is a bazillion times better, IMHO. Bugs
ConclusionWhat can we learn from this? Well, I donī t know about you, but I learnt that Usability sometimes means throwing away stuff. And that sometimes replacing something with a better version can actually be simple. Usecalcīs code is about 1/100th of kcalcīs (just guessing, Usecalc is 100 lines of non-generated code). A real version would probably stil be 1/10th the size. I also learned that calculators are easy to write, if you drop all the baggage ;-) (Ok, so I cheated, I used Python ;-) last change 2004-09-27 15:20:48 |
You know, some things are usable. Some things aren't. Read on, to see one that isn't and one that (I think) is. A semi-tongue-in-cheek usability article. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
© 2004-2005, Roberto Alsina