Task switching
==============

Warning: This post was written some  years ago. I decided to publish it
as is (without reading it).

The first computers can run just single task (or program) at once. Even
DOS-based IBM  PC computers were able  to run only one  program without
possibility  to  switch  to  another one  (well,  there  were  resident
programs  and  various  extensions  but still,  there  was  no  general
possibility to run several programs at  once a to switch between them).
This problem no longer exist as  any modern OS allows multitasking and
real-time task switching (even in  the text console of modern unix-like
systems).

But what about mobile  OSes? On the old good Palm OS  there was only one
program running. When  you selected another program then  the first one
saved it's  data and was closed.  When it was reopened  then it resumed
with  the  previous data  and  thus  it simulated  multi-tasking.  Such
approach was necessary because of  limited computing power of Palms and
because of  needs to save battery  life (do you remember  that the Palm
devices can survive up to one month on a pair of AAA batteries?).

Well, we are not  in late 1990s and one can expect  that a device which
is thousands times faster than an on-board computer of a space ship [1]
is also  able to  do proper  multitasking. And yes,  even the  CDC 6600
supercomputer [2]  (it computed parameters of  Soyuz-Apollo flight, for
example) is way slower than your average mobile phone, and the Argon-16
that used to drive the Souyz  spacecrafts until 2008 is much, much less
powerful.

On the desktop I usually have several applications on my screen: a text
editor, a dictionary program, sometimes  a music player, and often also
a calculator (a GNU Octave, for example) and/or a plotting program like
the Gnuplot. And some stuff on other desktops (a WWW browser, usually a
some FEA package which is doing some computing and so).

On the  PDA or phone  I usually  expect similar behavior:  when writing
text I usually need to use a dictionary, viewing notes or searching for
stuff (and  links) on the WWW.  Ideally, I wish to  have the dictionary
and the text editor at once. It's  almost impossible (it can be done on
the Ubuntu  Touch in  the Desktop  mode, for  example). In  practice it
would be  nice to have  at leas some  Alt+Tab simulation to  switch the
programs quickly:

- on the Sharp Zaurus, there is Shift+Home which is almost perfect

- on the Ubuntu  Touch, there is Alt+Tab which works  as expected - but
only if  a hardware keyboard  is attached (thus  it is useless  for the
phone for the most of time), a finger swipe from the right must be used
to open  the Task  switcher and  then the  app can  be selected:  it' s
acceptable but not really comfortable

- on the Android a button on the bottom must be pressed to see the Task
Switcher (is there a better way?) - it' not better than the approach ot
the UT

- on the  Maemo there is a  nice button to open the  task switcher (but
for some reason it behaves differently in differen OS revisions),

- the old Palm required to press  the button or icon of the application
(and for a  non-default applications to open icon screen  and to select
the ocon of the wanted application),

- well,  on the Ben  NanoNote there are  virtual consoles so  Alt+F! to
Alf+F7 works here and Alt+Arrow works, too.

At least some apps on modern  devices (on the Ubuntu Touch/Android) can
actually run in parallel but not all.  It is obvious but not ideal some
times.

So, in  my opinion the  Zaurus is still a  clear winner here,  sorry. A
real  pocket  UNIX  (well,  unix-like) workstation:  there  is  a  real
multitasking,  an  easy  task   switching,  great  (if  not  excellent)
keyboard, quite nice POSIX compliance (but usually no X11 compatibility
as it runs Qt on a bare framebuffer) and still a great battery life.

I'm able  to run  the most of  stuff that  I need (even  a LaTeX)  in a
manner that is close to my expectations  (there can be a text editor, a
dictionary,  the Gnuplot,  some elements  of FEA  packages and  tons of
custom stuff because there is available a full C/C++ compiler).

Unfortunately, the Zaurus  is more than 10 year old  (and thus obsolete
in the  terms of  processing power, memory/storage  sizes, connectivity
or  external  display  availability)  and  no  one  makes  an  adequate
replacement...


References:

[1] gopher://gopherpedia.com/0/Soyuz%20%28spacecraft%29
[2] gopher://gopherpedia.com/0/CDC%20660