@ Loup's Impossible? Like that would stop me.

February 2016

“Smartphone” is the wrong name

Simply put, that thing is a computer, and it fits in the palm of your hand. It’s a palmtop.

Think about what smartphones do for a minute. Once, their primary purpose was to let you make and receive phone calls. Then came text messages. Then photos. Then, arbitrary programs.

For many people, phone calls are no longer the primary purpose of their smartphone. General purpose computing have taken over. We check our E-mail, organise our day, listen to music, play games… We have online stores full of programs.

This hasn’t happened to many otherwise similar devices. Most modern cars for instance have a couple general purpose chips in them. Autonomous cars will require even more potent computers. Yet they still have a single main purpose: getting you from A to B.

Smartphones no longer have a specific purpose. As such, their very name is obsolete, and should be changed to something like “palmtop computer”.

Why bother?

Naming has consequences. Behind the denotation of words (mostly their dictionary definition), are many connotations.

A brilliant example is “intellectual property”. Ostensibly, the term encompasses copyright, trademarks, and patents. But the term “property” draws our attention to the ownership of physical goods, which is dear to most western societies —of course it should be protected.

Imagine if we instead said “intellectual monopoly”. The term is technically more accurate, since copyright, trademarks, and patents, are all about granting the exclusive use of an expressive work, a name, or an idea. But most of us hate monopolies. We don’t want to protect them, we want to squish them.

The choice of a term can skew important debates in one’s favour. That makes it a potent propaganda tool. To counter it, you must check the accuracy of names —denotation and connotation.

“Smartphone” has the wrong connotation. It suggests your expensive brick is a phone first, and can do smart things second. It is not called a “computer” either, which allows a nice and clean separation. As a result, things that would never fly on the desktop was acclaimed on the smartphone.

For instance, picture Microsoft in 2001, after it got sued for bundling Internet Explorer with Windows. Imagine what would have happened if they sold Windows XP with an exclusive application store. Imagine that every program must be approved by Microsoft to run on XP, and they take a 30% cut. Oh, and no interpreter allowed.

They would have been sued into oblivion, lost half their customers, suffered one hell of a bad press. They could have sunk. Yet when Apple did exactly that to their new computer, the iPhone, few objected and customers flocked.

The consequences of the “smartphone” name are not just political. Palmtops suffer technical limitations as well. Few people to date have contemplated the idea that your palmtop could be your main computer. Canonical tried something to this effect with unity, but it doesn’t seem to have caught on (yet). I think this is worth exploring.

Your computer in the palm of your hand

Imagine being able to carry your computer in your pocket. The small form factor is ideal for casual use while on the move, staying connected if you need to, and carry your whole computing environment wherever you go. No more synchronisation hassle to ruin your day.

On the other hand, the small screen and the limited touch interface prevent any serious work. When you settle at home or at work, you want at least a big screen, a mouse, and a keyboard. And speakers too, to watch videos or play games.

One simple solution is to dock your phone to some standard docking station or cable —just like professional laptops—. You don’t want to plug your screen, keyboard, and mouse separately. The palmtop should also switch to a “desktop mode” when plugged in, so you don’t have to suffer the touch based interface while you have a mouse.

Of course, with a few exceptions, current palmtops can’t be plugged into such a docking station, and don’t switch to a desktop mode when plugged to a big screen. They’re only “phones”, after all. Then there’s mass storage, which most palmtops lack —though with upcoming nand flash technology, they should be able to carry several terabytes soon.

Then there’s one hard limitation: CPU power.

Overcoming CPU weakness

There is an huge energy gap between palmtops and desktops. Batteries store little energy, and thermal dissipation is more difficult on a palmtop (no fan, tiny heat sinks). So palmtops are weaker than the desktops of their time.

While a weak CPU is okay when you can’t use a desktop (walking, on a crowded train…) it is unacceptable at home where there’s a mighty desktop just waiting to play your AAA games or your HD videos. When docked, the palmtop must have Desktop Performance™.

What the palmtop lacks, the docking station must provide. The CPU(s) of the station must be able to run the programs of the palmtop. One obvious way is to have the docking station be binary compatible with the palmtop.

Unfortunately, Desktop and mobile CPUs don’t face the same problem. Desktops must run as fast as possible, without burning too much energy. Palmtops must save battery power, yet run fast enough. This suggests different CPU designs, even different instruction sets. If we settle to one instruction set, we’re bound to sacrifice one platform, perhaps both.

Or, we could use two instruction sets, and compile everything twice. Not such a big deal in and of itself, but that prevents running programs from seamlessly switching CPUs. Restarting your programs whenever you dock or undock the palmtop it is not ideal.

Personally, I have more faith in a third alternative: a virtual instruction set. Like bytecode, though not managed like Java, and not meant to be interpreted or JIT compiled either. It could run on the bare metal, or be translated into something that is —like the Mill CPU. That way you can keep the illusion of having a single instruction set, while sacrificing virtually nothing. Moreover, future CPUs don’t even need backward compatibility, as long as you can translate (and optimise!) the virtual assembly for them.

But first, we must realise that the palmtop is a computer —not just a fancy phone.