Tuesday, June 11, 2013

Richard Stallman Is Wrong About Cloud Computing, At Least In Some Ways

TL;DR: No matter what Richard Stallman may say, there is a place for cloud computing.

In an article in The Guardian, Richard Stallman calls using web based programs "worse than stupidity" and a trap to get people locked into proprietary systems.

Is he right?  In some ways, maybe, but as I see it, for the population in general, he's off base.

I'm probably not the right person to criticize.  I've only got about 20 years of programming behind me, mostly for companies no one has heard of.  I've worked for one ISP, one OS developer, and a bunch of other places.  I graduated with a CS degree long enough ago that OO was still a university concept, not actually in use in the field, and I never took to it for several reasons.  As it happens, I'm sick of all of that now, and would rather carve stone, but that doesn't matter.  I still do a lot of things on computers, using cloud computing of one sort or another, as well as some local computing power too.

Oh, and I know Stallman will never see this, which is just fine with me.  I'm a nobody in comparison, but I still think I have a valid point.

Stallman claims that cloud computing is all marketing hype.  But let's look at this a bit more deeply.

If you have a computer at home, the chances are it runs Windows.  Alternatively, if you don't run Windows, it is most likely you're an Apple Mac user, and thus run MacOS.  If you fall into those categories, Stallman has no use for you.  Those are both proprietary operating systems and lock you into the same evils that cloud computing does.  You're screwed, by definition.

In terms of popularity, I think after that come tablets and smartphones.  Those generally run Android - which is open source - or IOS (from Apple) or Windows.  Let's just assume that Stallman hates anything from Apple and Microsoft - probably a good bet - and think about Android for a minute.

I have an Android phone, and I love it, but it is running an old version of the OS.  It's not even two years old but - despite promises to the contrary - both the manufacturer and mobile carrier have failed to update it.

Yes, technically, I could root the phone, back it up, and install the latest version of Android myself. But that takes time, risks turning the phone into a brick, and requires me to do all ongoing maintenance from there on out as well.  While I might eventually attempt it, most of the people who own smart phones aren't going to bother.  Too much trouble.   So, many people running Android are locked into an old, unsupported OS by a combination of their carrier and phone maker.  Stallman probably writes them all off to, if I had to guess, though he might claim the the companies involved are doing evil in the process.

So far, no matter which of the choices I've listed, you're very likely to be in a category that Stallman dislikes.

What does that leave?

In the personal and mobile computing world, that leaves Linux and the latest version of Android, the latter getting updated all the time and leaving more and more people behind as that happens.

So, what makes the few percent that actually run those systems - the ones Stallman might like - tick?  They're all serious geeks, for starters.  They know their tech and aren't afraid to mess with it.  It's fun to do so, in fact.

Let me give a different perspective on this: I run Linux at home and it requires real effort.  Here's an example:

Recently, Ubuntu discontinued support for the version of Linux I was using.  Their newest version no longer supports older CPUS - like the one found in my laptop - so it cannot run out of the box on it for me. It does run on my desktop, but it has a new UI that I really don't like, which completely changes the way I have to interact with the computer.  (I strongly prefer focus-follows-mouse, not click-to-focus, for various reasons, but the Unity UI makes that choice unavailable by default.  And there are behaviors in this UI that make no sense on a desktop, but since they are trying to create on UI that will also work on pad computers and smartphones, we're stuck with it.  In short, I think it stinks.)

And then there was the time that I had to wait a year for Linux to support a new motherboard, and the time Ubuntu changed to the open source graphics card driver too soon, and it didn't support my system, and getting printing to work was a pain, and I had about three choices for scanners that the manufacturer actually says support Linux, and when I did the recently required OS upgrade, the scanner stopped working and I had to go find 2 totally different things that were required to make it work and execute commands at the command line, as the superuser, to make things right again.  Really.

None of that is going to be easy to explain to most users.  Stallman would have no problem with it, and compared to most I had little trouble, but I am not about to make Linux support a brand new motherboard.  I have a lot of other things to do with my life.

Stallman might argue that I can change to another Linux vendor, and I did look around when Ubuntu unilaterally decided that non-PAE CPUs were so old that no one would care if they weren't supported anymore.  But I am not all that happy with anything I have seen so far.  Over the years I have used a number of Linux versions, and I have suffered from all kinds of problems with both hardware and software compatibility.  Thus far, Linux Mint runs on the laptop - despite being Ubuntu and Debian based - but I am not convinced that I want to run it on my desktop yet.  Too many unknowns.  I have no idea how that issue will shake out.

Looking at this objectively, Canonical - the makers of Ubuntu - have done their very best to both lock me into their system and piss me off about their hardware support changes.  They act just like a proprietary OS vendor in some ways.  And given past experience, most of the other Linux vendors I have used do the same.

So on the OS front just about everyone is going to have a problem.  Either Stallman won't approve of your OS (walled garden or crap) or, in the unlikely event that we happen to select something he approves of, we're in for a perpetual maintenance nightmare.  And I repeat: am fairly well versed in the technology.  My parents are never going to run Linux.  Never.  Way too complicated.

But let's think a bit more about the nature of the beast here.  The OS is only the start of the issue, and Stallman's real complaint - at least in that article - is about cloud computing, which goes beyond the OS and into the application arena.

For example, apparently Stallman doesn't like gmail.  Because it - and other webmail systems like it, one assumes - will lock their users into one solution, and put them at the mercy of Google (or Yahoo, or Microsoft, or whoever).

Perhaps, but...

I ran my own instance of sendmail for several years, so I could totally handle my own email.  It's a configuration nightmare.  Not fun.  No way is grandma going to do it.  And you have to update the software all the time to patch for security issues, and there are always things breaking in weird ways.  It is my belief that mail server administration is only for those who enjoy pain.

Beyond, that, though, come other issues.  If I run my own mail server at home, I've got no simple way to do something like have email that gets delivered to that home computer also be available on my Android phone when I am not at home.  I could setup a POP or IMAP server, I suppose, but then I have to have some way to make it visible to the outside world, when my ISP NATs everything by default.  Possible, maybe, but way too much trouble.  And not something my mother is ever going to want to understand.

Oh... maybe Stallman wants everyone to have their own server in a data center somewhere, with a public IP address.  That would let them run all of this server software in a simpler way, I suppose, but does grandma really want to do that?  Or maybe we should all be using virtual machines for this?  But wait... that's cloud computing.  Can't do that.

What else does using a webmail system get me?  Over the years I've had disks fail and lost everything on them.  So running my own email system means a very intensive backup system is required.  Gee... with webmail, someone else is backing things up, storing multiple copies, and generally making sure the hardware isn't going out of date or failing.  I'd call that a win.  They are also monitoring capacity and adding more (and faster) CPUs when they are needed.  Another thing I can avoid.

So, let's summarize: with gmail - or any of the other major webmail systems - I can read my email anywhere, it's backed up, and I don't have to do hardware or software maintenance on anything on the server side.  That adds value in my eyes.  But according to Stallman, it's all just there as marketing hype and to lock me into a particular service.  I guess the choice is obvious to him.

How about other software?

My various Linux installs come with LibreOffice (formerly Open Office, before Oracle did the nasty to Sun), and it's a fine office suite as these things go.  But sharing documents with others - and having edits done in just one place, rather than having to sync up everyone's changes, which is something I actually do - isn't easy with LibreOffice, just as it isn't easy with MS Office.   But Google's office apps - available via Google Drive - do a nice job of that.  And I never have to update the software.  They make my life easier, not harder.  And there are other office suite vendors as well, so I have choices.  And Google lets me export my data in a number of open formats.  So I am not really locked in at all.  Huh.  Interesting.

I also use the image manipulation program Gimp regularly, and while it is very powerful, it isn't as easy to use for some photo work as I have found some cloud photo software to be.  And again, there are many choices here.  And since images can be downloaded in common formats... no lock in.  Fascinating.

What does all of this mean?

For me - and I suspect for most of us - cloud computing provides real value in the form of simplicity.  Of course it is possible to pick a bad provider and/or get locked into something you cannot get out of, but as my examples above indicate, that is happening on the open source side as well.  Just how many times should the average user have to reinstall Linux until he gets a version that works for him?  And how much research should he have to do to keep it running?  (And never mind figuring out how to configure the nightmare that is sendmail.)

For Stallman - and those like him - running everything themselves on their own local hardware may be fine.  And I don't mind a bit if he does that.  In fact I hope that over time it gets easier for all of us to run this stuff ourselves if we want to.  But most of us aren't going to be able to master all of the knowledge needed to make these things run well, or even work at all in some cases.  Cloud computing can help simplify things for the end user immensely if all they need is an OS and an up to date browser.  That's a lot less to maintain, backup, and keep virus free.

On the business side things get a bit less clear, I admit.  But what some forms of cloud computing offer is hard to beat.  If your business grows, do you really want to have to add racks of servers yourself to support it?  Maybe, but perhaps you'd rather use Amazon's cloud services to deal with at least some of that.  If it saves you time and/or money, it might be worthwhile.

Are you locked in if you go that route?  Yes.  But you're just as locked in with any solution.  If you do it yourself you're locked into the OS you pick, the hardware you chose, the data center you lease space from (or the building you lease or own to build your own data center), and so on.  And when you go down the application route, you're locked into whatever you buy or build.

Lock in, to some degree, is a matter of fact, and no major change is simple when you think about these things.  None.

But if cloud computing means you can get more capacity quickly, when you need it, rather than waiting two weeks for the servers you need to arrive and get configured, that could be a real win for at least some businesses.  To discard it as all marketing hype is to miss the point.

I respect Richard Stallman for his principled stance, but in reality, things are a lot more complicated than he lets on.  There is a place for cloud computing - of various kinds - for both end users and businesses.  Of course there are tradeoffs - and even risks - but if he thinks that doing everything locally avoids those issues, his head is firmly planted in the sand.