I’m a guy who has strong opinions about calculators. Most people don’t actually pay much attention to calculators or calculator apps they use. I do, because I spent most of my formative years (high school, college, grad school) calculating things on Texas Instruments devices. For those of you unfamiliar with the brand, those are basically grossly overpriced graphing calculators that most educational institutions in US standardize on. Unlike the grocery store bought plastic, solar powered calculators you give to children, these actually had on-board memory, were programmable, had equation solvers and calculation history buffer. After using a hardware device that could do all kinds of fancy stuff with only few KB of memory, it seems silly to actually use something that looks like this on my phone:
Seriously, my trusty TI86 calculator had 6MHz CPU, 128K RAM and a 128×64 display an I could do just about everything on it. My phone has 1.3GHz dual core CPU, a gig of RAM and a Retina display with like a quintillion pixels per inch (I’m pretty sure this is accurate), and it’s built in calculator is actually less useful than the one I got for free attached to a box of gel pens at Wallmart.
As a result, I am always on the lookout for calculators that actually use the platform they are on to their advantage, and go above and beyond replicating the plastic, solar-powered grocery store version. At the very least, a phone calculator app should have some sort of calculation history buffer that shows entire formulas (as they were typed in) and not just the results, and lets repeat calculations from history, or refer to historical results as symbols.
I own an iPhone, so let’s talk about how an iPhone centric calculator should look like. I my opinion, it should look something like Tydlig. Despite rather hard to remember (or pronounce) name it has pretty much all that a basic, iPhone calculator should. It has a a clean design that fits right into the iOS7 aesthetic, a calculation history buffer with ability to go back and edit your calculations, some graphing capabilities and few unique features probably best explained in the video:
Actually, the app doesn’t actually have a history buffer as it operates on line, by line basis, each being an active object that can be edited and manipulated at any time. Add to that the ability to link values between lines (so that a change propagates downwards and affects other results) gives it an almost spreadsheet like quality.
Other than that though, it is a pretty basic calculator with a standard set of functions. It has the basic arithmetic, trig and logarithmic functions and not much else. It’s about what you would expect from an average scientific calculator. Well, slightly more because you get graphing features. There is nothing revolutionary about it – it’s just a damn good implementation that uses the platform well, adopting it’s aesthetic, as well as utilizing touch gestures (you link by dragging and you swipe the backspace to clear screen). It is still very much an old-school calculator – it’s just done right.
There are however other, even more interesting things you can do if you stop replicating the hardware model.
One problem with the calculators that do have a history buffer, is that the calculations in it exist without context. Most calculators only accept numbers, arithmetic symbols and pre-defined function signifiers. In hardware calculators like the old Texas Instruments devices this was a software limitation – the built in parser was just not clever enough. But in comparison your average iPhone or Android phone is a computational monster. You can take arbitrary chunk of text, filter it, identify numbers, arithmetic symbols, known function names, and then evaluate them.
This is precisely what Soulver sets out to do. It is a free form, text entry calculator that lets you annotate your calculations. It’s probably best if you see it in use:
You type in text into the left column, and Soulver attempts to evaluate any math in it in the right column. The text doesn’t have to contain any math, in which case nothing is evaluated. However if it does, the app will make the best attempt to figure out what you are attempting to do, and try to come up with a solution.
Much like in Tydlig each line can be edited, and you can drag answers from the right column to the left, to create links (here known as Answer Tokens) which will update as you change the numbers. It also can do simple unit conversions using the same sort of phrasing as Google, and it has nice syntax highlighting to let you know you’re doing it right.
Because the focus of the app is to let you create annotated calculation sheets, it offers you ability to either print them out or embed the styled, annotated calculations in an email which is rather nice.
Granted, when you are using a phone, you might not always want to create such long form, annotated worksheets. Tydlig seems to be much faster and hassle free for quick calculations, whereas Soulver is more for writing things out to better understand them, or doing some back-of-the-napkin style math in order to confirm or disprove something. Arguably, it works much better on the iPad where you actually have screen relestate to write proper annotations, or on a mac where you can use an real keyboard to type them.
If you want to see a calculator that fully utilizes the touch interface, look no further than MyScript Calculator. This app is built around the idea that keyboards and number pads are less than perfect way to express math formulas. We have been using them for decades now, because up until now we haven’t really had better input systems. But for centuries we have been doing math by hand, and the way we actually write out math does not translate well into keyboard driven systems.
Now however we all have phones with touch screens, and we have gotten pretty good at OCR so why not combine these technologies and let users write out the math by hand, and then parse it:
The OCR engine of MyScript Calculator may seem rather impressive on the first glance, but it really isn’t all that advanced. If you think about it, the set of symbols it needs to recognize is rather limited: nine integers, handful of arithmetic symbols and maybe a dozen defined function names that follow repeating patterns. It is not an insurmountable problem, and it is many degrees easier than doing OCR on free form text which has much larger set of symbols, and many more patterns in which they can be arranged.
Still, once you start using it, you can’t help but be impressed on how accurate it is. Granted, you can fool it if you try, but for the most part, even low effort finger scribbles are recognized correctly. I highly recommend checking it out, even if only for the novelty factor, because the app is in fact free.
Calca is probably the most interesting variation on the calculator theme I have seen in a while. It takes the Soulver concept of annotated calculation sheet to it’s logical conclusion by becoming a full blown parser and text editor.
Soulver is a bit limited in terms of how you can structure your equations, and has this rather confining two column structure. Calca is much more flexible and fluid: it actively parses text for equations, and injects results wherever it sees the => symbol. In other words it allows you to build dynamic, self-calculating documents. Unfortunately the website does not offer a promo video but here is a screenshot:
There’s probably couple of things you will notice here right off the bat. Firstly, yes, that is markdown syntax. The Calca editor lets you do headings, lists, links and will format them appropriately.
Secondly, Calca has variables and arbitrary symbols. Whenever it sees the = symbol it tries to evaluate whatever is to the right of it and assign it to the variable on the left. If the equation on the right contains words or symbols that are not recognized as mathematical constants, Calca will assume they are undefined symbols. In other words you can do stuff like this:
First time y is evaluated in the example above Calca spits it back to you in terms of a and b. Second time around, it actually evaluates to a number because a and b were defined.
It is probably worth noting that the variables you define in the document can be scoped using markdown headings. Few calculators out there can handle arbitrary variables at all, but Calca’s fluidity and intuitive scoping rules are almost unheard of.
If you do purchase the Mac and/or Windows version of the app, you can use iCloud to sync your calculation sheets between your computers. You can also use Calca as a regular text editor by simply opening any text or markdown file which will be immediately parsed, and evaluated.
In fact, I kinda hate that this is a proprietary project. I wish Calca was an open source library so that I could plug it into vim, and have a markdown parsing calulator plugin. Actually, something like that probably already exists out there. But if you don’t have one of the fancy editors, this could be a worthwhile investment. Calca exists somewhere on the spectrum between a calculator and a spreadsheet offering more flexibility and fluidity than both. It’s obviously not as powerful as full-blown mathematical scripting languages like MathLab or Octave but the permissive free-text-entry parser, and intuitive way in which you assign, evaluate and scope variables makes it perfect tool for non-programmers.
If you were to have just one calculator on your phone I’d say Calca is your best bet. It delivers most bang for the buck. That said, I think Tidlyg, while tad on expensive side is a good option as well if you don’t need to use symbols and don’t care for annotations, but value presentation. It’s large keyboard makes it much faster to use than Soulver or Calca.
Of course if you need serious Math power (for example if you are engineer who builds bridges and stuff) then the only calculator you should ever use is Calcucorn:
Yes, I know. It’s not a phone calculator. It’s better though. It is the only calculator you will ever need, and no phone app could ever hope to substitute it.
What is your favorite calculator app on your phone? I realize that this list is very iPhone centric, so I’m hoping Android people can give us some alternatives in the comments. Note that if you post more than 3 links in your comment it will get flagged and held for moderation.