Cloud GNU: where are you?

This continues an article I wrote nearly three years ago, Common Criticisms of Linux, parsed and analyzed.

In the three years since I wrote that original piece, Linux has grown — albeit slowly — in desktop usage. After nearly 2 years of no growth (2008-2010, lingering around 1% of market), in 2011 Linux saw a significant uptick in desktop adoption (+64% from May 2011 to January 2012). However, Linux’s desktop share still about 1/5 of the share of Apple OS X and 1/50 the share of Microsoft Windows. This despite the fact that Linux continues to dominate Microsoft in the server market.

The proprietary software industry may be filled with vaporware, mediocre software, and heavyweight kludges, but there is certainly also a lot of good stuff that keeps users coming back.

However, I believe the 2011/2012 up-tick in Linux desktop usage reflects a different trend: the increasingly commoditized role that desktop operating systems (and by extension, desktop software) play in an omni-connected world of cloud software.

Why doesn’t Linux run software application X or Y?

For end users, the above was a core complaint for many years (approx. 2000-2009) when evaluating Linux. However, this complaint has faded in the last two years. Let’s reflect on the most common and useful pieces of software on desktop operating systems these days:

  1. Prosumer software: these are your Adobe products, such as Photoshop, Dreamweaver, Premiere, After Effects, and other tools for video editing, graphic design, 3D modeling, etc. Other players like AutoCad come to mind. Thanks to standards like WebGL and Canvas, some of these tools are moving to the web.
  2. Business Software: for general users, there are things like TurboTax, Quickbooks, Office, and similar software packages. Services like Google Docs and Mint have shown how these packages can move online, too.
  3. Games: the game developers for computers must target some platform, and the most common one is Windows with DirectX. Valve has recently decided to embrace Linux, which may alter this dynamic. Also, mobile gaming is rapidly on the rise.
  4. General Desktop Software: these are your IM applications, Skype, image viewers, file managers, archive software, music managers/organizers, iPod managers, etc. For all the general desktop use cases, Linux has been making serious strides in easing user pains. Skype 4.0 runs on Linux, Google Talk plugin works out-of-box. Efforts like Shotwell and Rhythmbox have solved typical multimedia use cases (photos and videos) effectively, and there are many alternatives.
  5. Browsers: the most important development over the last few years for Linux fans has been the widespread embrace of web standards and the fierce competition between the top browser makers, possibly accelerated and catalyzed by the release of Google Chrome. Chrome and Firefox both run flawlessly on Linux, and the increasingly fragmented web (with Internet Explorer just a “large blip” among a sea of Chrome, Firefox, Safari, and mobile browser clients) means this embrace of standards will continue. Also, Firefox and Chrome, two of the leading browsers in the ecosystem, are both fully open source!
  6. Microsoft-only technologies: Outlook is the strongest example of “essential” desktop software that builds upon Microsoft-only technologies like Exchange and SQL Server. Funny enough, the growing prevalance of Mac OS X and web software — not Linux — is making technologies like this increasingly difficult to impose upon users.

Of all of these software categories, the strongest argument against Linux can be made for category (1), Prosumer Software.  This is because these are pieces of software that are complex to develop, have been refined over many years, and solve real problems for professionals who use them day in and day out.  Furthermore, it’s much more difficult to get someone to switch from, say, Adobe Photoshop to the GIMP, than it is to get someone to switch from MS Office to Libreoffice, Abiword, or Google Docs.

This is because Photoshop, unlike Word Processors, are tools that “grow” on people; people become experts and their livelihood as a graphic artist or whatever else becomes intertwined with the tool they use.  Indeed, I personally would not recommend people switch from Photoshop to the GIMP — even though I’m a casual graphics user, I find that Photoshop is just a much better tool.

Free Software zealots say you should switch to the GIMP just because the GIMP is GPL and Photoshop is proprietary.  I understand the idealism, but I simply don’t buy this argument.  Photoshop has been developed over many years as a best-of-breed application.  Adobe has the right to continue making money off it — it’s a massive engineering effort.  I don’t think Adobe currently has any plans to port Photoshop to Linux, or to port Photoshop to some cross platform technology that would allow it to run more easily on Linux. Considering it has been ported successfully to Mac OS X, my hunch is that this is already true, so if a market existed in Linux, they’d capitalize on it.

However, one technology that has dramatically improved over the last 5 years has the ability to truly eliminate the lack of Prosumer Software as a serious strike against Linux. That technology is virtualization.

VMWare is the well-known player in this game, but the progress in the last few years has been staggering. Other systems include Oracle’s Virtualbox and QEMU.

Using VMWare Workstation on Linux, you can run a fully-operational WinXP or Win7 virtual machine with much of the same speed/responsiveness you expect natively.  This environment is sandboxed and in many ways more powerful than traditional native computing, thanks to features like “snapshots” (where you can save the entire state of a virtual machine in a click) and virtual machine suspend/resume.  Thanks also to the hardware direction of multi-core, high DRAM machines, VMWare and its similar products perform exceptionally well. For example, my current laptop has 2 Intel cores and 8GB of DRAM — which leaves plenty of processing and memory juice to run two operating systems simultaneously. Finally, virtualization support has been adopted by AMD and Intel directly in the processors, which reduces even further the overhead to run these systems.

This means that if you desperately need to run a piece of Windows software under Linux, you can, and with only a little bit of work.

But how about the categories we haven’t covered yet?  How about the business software, general software, and games that so many users love, or, at the very least, rely upon out of habit?

I believe that due to the positive developments in web browser technology, these categories will soon be entirely replaced by (“cloud”) web software equivalents, if they haven’t been already. In the worst case, legacy software will be supported by virtualization.

A creeping realization: though the rise of web-based cloud software has made the Linux desktop more palatable and practical, it has also subverted the original goals of the entire project. That is, Freedom and Control for users over their computers and their data.

A Refresher: Why People Run Linux (and other Free UNIX-like OSes)

  • Freedom: Linux and other Free operating systems are transparent pieces of software, developed in the open and using open standards. This gives users the freedom to modify the source code in any way they see fit, and to participate in its development through open collaboration with developers on the web. Further, the software developed for Linux rarely has a “business model” — it is developed out of passion for its users and the software’s potential. Further, any desktop software that involves personal data stores this data in a non-proprietary format, guaranteeing you can port your data to other applications in the future.
  • Control: Linux has traditionally been one of the most customizable operating systems. Not only can users inspect every aspect of their running hardware / software state, but they can also lock down parts of their system, customize the way the hardware and software interact, and control knobs on the user experience. For programmers/software engineers in particular, Linux provides a dream development environment with its rich heritage of tooling and support and parity with Linux server environments.
  • Rich scripting heritage: Related to control, all parts of Linux are “scriptable”, using languages like bash, Perl, and Python. That means programmers and interested hobbyists can not only control their environment, but automate it. For example, I regularly write little scripts that backup my data and configuration, or little tools that automate repetitive tasks I do daily on my computer.
  • Stability: Over time, the Linux kernel and the software that runs atop has increased in stability, to the point where you rarely need to worry about computer software crashes.
  • Cost: Of course, most software that runs Linux is not only Free as in speech, but also free as in beer. That means no annual payments for your operating system upgrades and no money spent on software whose companies end up deadpool’ed or acquired.

The Cloud and Thin Clients: Linux’s Savior, or a Trojan Horse?

I think the time has come to shift the debate around desktop Linux. In the last three years, Linux has become a viable way to meet the lion’s share of desktop computing needs. It has also become an ideal environment — speedy and light, as I’ve said before — to run a developer workstation.

But, in this time, more and more end-user software has moved into the cloud. With it, has gone user data. This has led to a number of conveniences — multi-platform (mobile/desktop) sync, automatic backup, automatic updates, etc. But, it has also led to a loss of Freedom and Control, some of the original motivations for running an Free and Open desktop in the first place.

I recently faced this precise issue with Mint.com. I have been using the excellent, proprietary and web-based personal finance software system since 2008. I even wrote a blog post using a visualization from Mint to illustrate a point about startups.

However, I recently encountered a bug with the software that mis-classified many of my transactions and incorrectly altered much of my historical financial data. The team, which is now run out of Intuit, has been unresponsive to my requests for fixes to this problem. And though I can export many of my transactions using Mint’s CSV export functionality (thank goodness), it is not a full-fidelity data export.

This reminded me of the kinds of software problems I used to have in the late nineties and early oughts, struggling with proprietary software that was locked-down and unmaintained.

I am now hunting for alternatives to Mint — open alternatives.

Also, what if Mint did not provide the export? They were under no obligation to do so. What would my options be, then?

Some other examples from my modern digital life:

  • Twitter: I recently found myself looking for some of my old tweets from 2009, but Twitter does not store a full archive of your own tweets. Recently, addressing concerns from users, Dick Costello announced that Twitter would eventually provide this functionality. But again, they were under no obligation to do so.
  • Google Apps: Google has one of the widest footprints when it comes to user data stored in the cloud. To its credit, Google’s Data Liberation Team recognized this problem early on and provides documentation for exporting data from all of its services. There is also a new Google Takeout system that eases the process for certain privileged services. This is admirable on Google’s part — but again, they were under no obligation (legal, or even ethical) to do so. And how many users are thinking about data freedom when they think about Google’s services?
  • Flickr: Reports of this photo service’s deaths have been perpetually exaggerated, but certainly Yahoo does not have a great track record on this front. Thankfully, it has a wide history of accessible APIs and ways of getting your photo data out of the service. A Yahoo engineer recently received $25,000 in funding from Kickstarter to start an open source project, OpenPhoto, as a platform running open software and storing your photo data in API accessible file storage systems like Dropbox and Amazon S3.
  • Facebook: For many online users, Facebook is perhaps the most complete capture of personal data. In 2010, four students from my alma mater, NYU, started Diaspora as an open source / free data alternative to Facebook. Their Kickstarter project received over $200,000 and the hackers went to work on the system. But after many months of frenzied development, the project was struck with a terrible tragedy: the sudden and unexpected death of one of its co-founders. The most recent reports are that the remaining co-founders have moved on to other ideas. Meanwhile, Facebook IPO’ed and charges ahead toward greater growth and profits. Surprise, surprise, it sees user data as its core competitive advantage.

These services — and others like it — have made a Linux desktop an easier pill to swallow for mainstream and power users alike. However, in an age of big data — and big, personal data — is the Free-software-on-the-desktop debate even relevant anymore? I think not.

What good is a Free software desktop if all your personal data, configuration, and applications are running through proprietary systems and hosted on remote servers? Where is your Freedom and Control then?

The irony: in 2012, I finally achieved a kind of desktop Linux nirvana — at the expense of all the principles that compelled me to switch in the first place.

Cloud GNU: where are you?

Leave a Reply