Synopsis: Here's my tale with Linux over the years and why I believe Android fits the bill for this article's title. But first, a bit of history and how the desktop had to change for Linux to be on it.
Ah, Linux... champion of open-source, love of computer geeks everywhere and owner of the cutest Operating System mascot around.
Most of my colleagues label me a mac-freak. With two Apple laptops, two iPods, an iPhone and a Time Capsule in the house, I can't really blame them for it. However, not all of them know that before hooking up with Apple I had a three years stint with Linux.
This was almost 8 years ago, in a land where there was no Ubuntu, Android wasn't even an idea and editing /etc/X11/XF86Config-4
was the only way to change the screen resolution.
It's been a while since so allow me to reminisce a bit.
"Damn kids, get off my lawn!"
I started off with Red-Hat 7.1, in a brave attempt to have a triple booting system together with Windows 98 and then newly released Windows XP. I sat down on a Friday afternoon and emerged from my room Sunday around lunch. I slept about 5 hours through the whole process and after 20-something installation attempts of the three operating systems, I abandoned in defeat.
I was intrigued by my failure in the realm of technology while thinking of the new worlds I had learned of. It's funny how Microsoft's domination on operating systems market share made it strange to even question the status quo or think about alternatives. Learning about open source, volunteers, Unix, command line, kernels, distributions was as strange to me as was coming out of the Matrix to Neo.
A few months later and several stubborn sessions ("you will learn vi's commands or starve at this keyboard") I had learned a great deal about operating systems, partitioning, package management, scripting, window managers, boot loaders and other assorted varieties of unix-y knowledge. I firmly believe that any developer should know the innards of his preferred operating system as well as what choices may exist. This knowledge will help him/her write better code in some instances but most importantly will help debug software when something goes wrong at the lower parts in the technology stack.
Red Hat, Mandrake, Gentoo, Slackware, Debian all served time on my desktop. Lycoris Desktop, Linspire, Yoper, Mepis, FreeBSD and other curiosities such as Linux From Scratch had a brief run during a period of experimentation. Knoppix was making the rounds as the first usable Live-CD
Linux distro, a feature now common to all distributions. At the time, running an OS from a CD was nothing short of amazing, even if agonizingly slow. Debian Unstable eventually became my base OS and xfce
my window manager of choice following testing of Blackbox, Fluxbox, IceWM, WindowMaker, Enlightenment, and of course, KDE and Gnome.
I remember clearly spending one week trying out kernel builds on the 2.4 branch, ranging from keyboard-biting frustration to enlightening exhilaration. I made some really good friends that taught me as I went along. I understood communities and open source. I joined a LUG
and went to a conference. I also didn't spend more than 6 months running the same OS on a daily basis.
Three years is a long time to run such an experiment, but I don't regret doing it (I also don't recommend Slackware or LFS to anyone, either). I probably learned more about computers during this time than in any other period. I wanted to start a business on Linux consultancy.
So what happened?
University years passed by and pretty soon I needed my computer for "real work". Eventually the thrill of discovery and learning wore off and I became weary of spending hours configuring things just to make them work. My respect for the Unix-way of doing things remained, so I couldn't go back to Windows. Ubuntu was just a blip on the radar in 2003-2004. In spring 2005 I ran across John Siracusa's excellent review of Mac OSX Tiger
and the course was set. John's reviews have been epic enterprises over the years, sometimes expected more by the community than the actual releases of OSX. His attention to detail, precise critique and detailed Unix knowledge drew my admiration and desire to learn more of this OSX. One typical feature of his reviews is the attention to the aesthetic. All of these, I would later discover, are things highly treasured by the mac-community; I'm sad to say the latter one is still absent from their linux-minded counterparts.
Three months later I did what any self-appointed geek does at some point: buy the most capable computer he doesn't really need. I embarked on a dual-CPU, 2.7 GHz G5 Powermac and put my Linux days behind me.
A modern, unix-based operating system set up on top of FreeBSD meant I would have the Unix strength beneath the hood while at the same time benefit from an interface built with usability and speed in mind. Sure, I might give up some "freedoms" found in the Linux world, but really, how many times do you need to change window managers?
Which brings me to the topic at hand.
Mainstream software as a concept lives and dies by the amount of people using it. Software ecosystems thrive when users drive demand that developers strive to meet. I'm not going to mince words here. Where operating systems are concerned everything outside of that is a highly specialized tool, an academic experiment or a hobby.
It so happened that during my years running Linux and thereafter I ran across
, forum posts
and discussions as to which year would finally be the year of "mainstream" Linux. What drove linuxists to this goal besides recognition and free software ideals?
Linux developers were united by another thing. An idealistic underground current against the Microsoft "opression". Even today, Ubuntu's Bug No.1
stands as an example of this counter-movement.
Microsoft has a majority market share in the new desktop PC marketplace.
This is a bug, which Ubuntu is designed to fix.
Microsoft's monopolistic strategies of the past, shady business decisions and outright hostile campaigns against Linux painted a big target on its back. Flame wars ensued, parodies
popped up, salvos
were fired from every camp. "Microsoft is evil/no it isn't/yes it is" flame wars will eventually pop up in any tech community.
It's a known thing that humans are uniting easily against a common enemy and rally behind heroes in any battle. And although Microsoft has always been the "enemy" for the Linux camp, a true "hero" never quite emerged. I've often thought of Ubuntu as of a pacifying unifier of the various Linux tribes while at the same time spreading a message of love and understanding for users.
The other OS company running in the mainstream race, Apple, faced the same upstream battle against the Microsoft monopoly. They had a more focused approach, a lot of money and still, after many years are still placed somewhere between 5 and 10% market share worldwide.
The desktop wars were won by Microsoft a long time ago, and the Windows+Office+Exchange+Sharepoint combination will be hard to "beat" in the near future. Apple had a clean break with the iPod, the iPhone and pretty soon with the iPad. Google won the internet race and Linux is hard at work on servers, embedded devices and phones.
Rise of the replicants
Since November 2007, a new hero emerged in the Linux community. Android
took on a long path from a Palo Alto startup snatched by Google in 2005 to an alliance
-backed open source contender for the mobile operating system crown.
Microsoft ignored the web and Google snatched it away. Microsoft also ignored the mobile space and Apple stole the spotlight. Nokia struggled in unifying its many platforms and UI toolkits. RIM
focused on email and business users while HTC took upon grafting a modern, pleasant interface on top of the aging Windows Mobile platform.
Apple had shown with the iPhone that consumers appreciate usability with a top notch media and web interface. Mobile device manufacturers needed a modern operating system with a big software developer behind it.
This is the landscape in which Android was introduced by the two Google founders who rollerbladed their way through business suits when introducing the HTC G1 phone.
The G1 launch didn't set the world on fire, however slowly but surely, Android gathered a lot of momentum. An army of droids
is being assembled as I write this (tip'o the hat to my friend, Mihai
Being used to lengthy flamewars in the past, i was slowly recognizing a trend among comments on sites I frequently visit related to Android articles. However, it really dawned on me that Android became "the hero" for the Linux community after reading David Pogue's amusing followup
to his Nexus One review:
Where I had written, "The Nexus One is an excellent app phone, fast and powerful but marred by some glitches," some readers seemed to read, "You are a pathetic loser, your religion is bogus and your mother wears Army boots."[...] It's been awhile since I've seen that. Where have I seen… oh, yeah, that's right! It's like the Apple/Microsoft wars!
Yes friends, wars, passion, heroes! Being an iPhone-toting Java developer among open-source enthusiasts in our company, I soon started to get looks and remarks as "yeah, that iPhone guy who bows to Steve Jobs". Because you see, Android managed to unite two battle-fronts: both Linux developers as well as Java developers (but that's a topic for a future article).
As I mentioned earlier on, I've always been a supporter of Linux, even if not apparent at first glance. That's why I always get a laugh when overhearing the above line. At the same time, I'm glad to see passion among developers for a Linux-based platform . I truly believe passion is needed to bring people to create software, develop an ecosystem, rally behind an idea and yes, bring it into the mainstream. This guy
had the right idea, if lacking a bit in style.
Despite my continual purchases to Apple, I also believe competition is good. And unfortunately, besides Android, there haven't been many (or few) to light up fires under Apple's iPhone platform, forcing them to react to its shortcomings.
But why a phone? And surely, if we aren't "winning" on the desktop, it's not truly winning, is it? Apple and Google may have targeted phones at first because of different reasons and backgrounds, but found themselves on common territory. Here's my take on it.
The Desktop has been gradually shifting away to the Mobile. Laptops, smartphones, tablets, e-readers. The computing landscape changed in the last years, a fact obvious to many. We are witnessing a mindshift, a transition from general purpose computing to device and activity specific. Reduction of costs, size and increasing computing power made the original iPhone twice as fast as my first computer and the Nexus One five-to-six times as fast. What about constraints? Memory, storage, screen estate are all premiums on mobile devices. You can't just plug in another hard drive. You can turn it however into a valuable asset in creation: focus.
I believe the focus on this class of devices and consumer-orientation made them a success. Why is that? Targeting a reduced platform, a niche if you will ensures you don't get distracted or waste resources. You can fail without taking down the company. It's a relatively low-risk avenue. It's an excellent test-bed for new interaction and UI paradigms. And if you play your cards right and use the correct development method, you can then expand your Operating system onto other generic devices that eat up a pie of the desktop's hegemony.
Interestingly, Apple and Google arrived here from different roads. Apple leveraged its iPod legacy of industrial design and its flexible OSX platform with a focus on media, entertainment (much of that being games) but also a premier web experience. Google wanted to leverage it's excellent infrastructure for the "data in the cloud" paradigm while promoting Linux to mainstream use.
Google made the laudable decision and kept Android open-source. As a result, with people starting to use it for ebook readers
, upcoming tablets
, enterprising developers are rapidly expanding Android's reach. The emphasis on portability, battery performance and Google's focus in this area will ensure that for some time, Android will remain a mobile-devices OS.
And that's a really good thing, because mobile is where the desktop is now.