So you have a software product, X, and decide to upgrade to the latest,
to fix some annoying bug or feature. When you use the new version,
you find some of the old menus are gone, and new incomprehensible
features are added. And you wished you hadnt.
Lets take a real world example. Upgraded from Galaxy Note 1 to Galaxy Note 2.
Twice the cpu power, twice the RAM. Nice.
But...the screen is narrower. Why? I can live with that.
Android 4.1.2 Jelly Bean is lacking UMS. You dont know what UMS is?
UMS is the ability to access your device as a block device and mount it
on Windows or Linux and copy files around.
You know, this mounting the device is a good thing for Android. So
much better than the locked in Apple (iTunes) or Microsoft (ActiveSync)
solutions. Why? Because you have more control. You might like a GUI.
I want to use a shell script and manage things without using a mouse or
some pretty looking but unfunctional GUI interface.
*Why did they do that?!* Android is supposed to be about control, but
what it demonstrates is that Google simply doesnt care about the users
or anything about user interface design. I try to avoid Chrome
as much as possible because the backspace key doesnt work, there
are no settings to avoid unwanted ads or oversized images, or anything useful
The settings in Android are an ugly assortment of mess. Everything keeps
changing and there is no logic whatsoever to the layout of the settings.
Nor is there any useful help.
So, UMS was removed. UMS is problematic because the device has to unmount
the filesystems and wait for a disconnect before remounting (else filesystem
corruption could occur). Instead, we have MTP and CTP - go search the
web; some people are happy with them, but a lot of people are not.
They are slow and badly implemented protocols which bypass the kernel
buffer cache, so they are slow, by design. And limited.
Or, try getting MTP to work with Ubuntu - adding beta quality software
with a FUSE driver which doesnt work properly.
Or, I can add an ssh server to my Android, and use wifi (of course, after
rooting my device). Why would I want to use wifi? In my house its pathetically
slow. A cable is fast and predictable. I cant copy 10+GB of data to
my device over wifi - thats around 8h of xfer time. Maybe less if
I can be bothered to walk nearer to the router.
I do wander what the state of software will be like in 50 years time or more.
Today, we have some great products out there, and half the web is full
of questions about where feature X is gone and lots of half hearted
or bad implementations of solutions (because every platform and version
is so fragmented).
I was thinking about this the other day with respect to DTrace. DTrace
is pretty much doomed. There are implementations for Linux (mine and Oracles), MacOS,
Solaris and FreeBSD. Thats 5 versions of DTrace, none of them sharing source
code. Each working independently of each other. So, just keeping up
with kernel versions and bugs is 5x the work it needs to be. 5
independent code bases (ignoring the people who have created git clones
and then done nothing with them, which adds to the wasted effort of supporting
something that is going nowhere).
Android is the same - the xda-developers forum is a great place to
learn, but boy, is it hard work. So many threads and tangents, solving
similar problems and there is no "definitive" solutions. You have
to read a lot to see which tools or authors are gaining consensus and
real solutions. I spend half a day rooting my Galaxy Note 2, because all
the instructions, copied from each other, were *wrong* and supplied
a bogus file. Today I spend most of the day figuring out how to enable
UMS on the droid, and none of them work. They half work.
And then on my Ubuntu system, it has mysteriously decided audio doesnt
work anymore and I have to chmod 666 /dev/snd*, and manually edit
/etc/resolv.conf after a reboot. Why? Because some software thinks it
is clever and incontrol and I cannot figure out what all the bits
are that sit in /etc/* which attempt to do things that I dont want. My emulated
RaspberryPi (qemu) boots faster on my laptop than the laptop does itself.
I am not far off totally dropping Ubuntu (or Mint, or Arch, or any
of the distros) because their attempts to do things for me, cause me
more work and pain for zero benefit.