This is the second in a series of posts about good, nice things that I’m enjoying in the world of technology. The first post in the series was about Lenovo’s ThinkPad X301 laptop, a solid alternative to the MacBook Air for those that don’t mind running an alternative operating system.
This post is all about running the Ubuntu Linux distribution on a laptop and using an Android phone. It’s an experiment I did because:
- I can. I was in the market for a personal laptop, and I had the opportunity to borrow a couple of Android phones.
- I’ve been interested in seeing what’s on the other side of the fence from Apple territory for a while.
- I’m irritated at Apple’s insistence on shipping closed products, and I wanted to see if I could live with open (albeit not completely open) alternatives to those products.
When it comes to touchy religious subjects like operating systems, I like to put my conclusion first so there’s no confusion about the point I’m trying to make.
This time around, my point is this: if you don’t like Apple’s aesthetic, or if you’re indifferent to it, there has never been a better time to try Linux on your desktop or laptop and Android on your mobile device. Ubuntu has taken Linux into the realm of real-world usability for laptops while offering myriad benefits for developers. Similarly, Android is growing by leaps and bounds, and if you last checked out an Android phone even six months ago, it’s time to look again. I’ve poked fun in the past, but the world of Linux-powered mobile devices is no joke today.
However, if you’re a longtime Apple user like me, you’ll probably want to stay where you are. I’ve tried this experiment, but I’m sticking with an Apple setup at work and at home. Both Android and Ubuntu have features that the iPhone OS and Mac OS X lack, respectively, but to a certain degree it’s that willingness to cut features out that makes me comfortable with Apple products. To each his own.
Essentially, what’s Good about all this is that there’s real competition and real alternatives in the non-mainstream OS space for both laptops and smart phones for the first time in a long time. As a consumer or a developer, you’re free to pick from some really great platforms. That’s awesome.
Having concluded, let’s begin. Telling this story requires a bit of background.
My Misspent Youth
Though I have a reputation for being a Mac guy, I’ve actually spent a lot of time with Linux. Like, a ton of time. A terrifying amount of time.
I cut my teeth on a Performa 575. It wasn’t the first computer I had ever used or programmed, but it was the first that lived in my room. I made that computer do things it probably never should have and learned a ton in the process. The Performa 575 was one of the very last Motorola 68k machines Apple made before it moved over to the PowerPC architecture. Just as PPC machines have been left out in the cold after Apple’s recent transition to Intel chips, so too were 68k machines like the Performa quickly obsoleted.
As a broke teenager faced with the prospect of shelling out for a pricey new PPC Mac during Apple’s dark ages between Mac OS 7 and Mac OS X 10.2, I sought alternatives. Around that time I had become friends with an irascible Polish kid who ran a MUD out of his basement. Said kid’s older brother was going to school for computer science, and had passed along an early version of the Slackware Linux distribution to his equally geek-inclined sibling. My friend showed me just enough of the peculiar world of UNIX to get my bearings, and I was hooked.
I got my hands on a cheap PC and stumbled my way through a Slackware install off of dozens of floppy disks. Then came RedHat, Debian, Gentoo, SuSE, and all the rest. I learned all the eccentricities and discrepancies of Linux in its many flavors. For all the frustration it brought, I found Linux captivating, even empowering. It felt like I was not only connecting with my computer, but with people all over the world who were crazy or foolish enough to use this rapidly evolving, cobbled-together operating system day-to-day.
I was lucky enough to attend one of a very few high schools in the country that could claim its own Linux User Group (LUG). Spurred on by my friend Andrew, we participated in installfests, lobbied for an open source alternative to the Windows and Mac computer labs at our school, and generally made impossibly dorky trouble for ourselves and anyone who would listen. It was a brilliant experience.
I owe a lot of who I am today to that time, and I’ve never forgotten it. I continued to participate in a LUG at the university I briefly attended, and I’ve since donated my time to an installfest benefiting California schools at a recent LinuxWorld conference here in San Francisco. All told, I’ve done literally hundreds of Linux installs in my life.
All this is to say that when I talk about Linux, it’s not from an outsider’s perspective. Though I’ve cracked jokes about Linux and its warts in the past, I have a great affection for that community, their accomplishments, and their values. That’s probably why I get the periodic urge to go back to that world.
When I got my ThinkPad X301, I installed Ubuntu without hesitation. It’s the distribution that’s pushing desktop and laptop Linux forward most aggressively.
In the past, running Linux on a laptop as your primary computer essentially meant kissing your time, sanity, and productivity goodbye. Today, it’s so easy that it’s almost disappointing for someone with an itch to dink around on the computer. The only thing that didn’t work out of the box on my X301 was the built-in Verizon WWAN, and that’s largely because the module’s vendor doesn’t (yet) provide an open driver. Still, there’s a community solution that’s easy enough for a geek to install in about ten minutes. Once set up, the WWAN link is available from the same widget you use to manage wi-fi connections. Sensible.
Other than that relatively new bit of hardware, everything else worked. Everything. Volume and brightness controls, wi-fi, Bluetooth, every little button and feature and gizmo. Once you’re past the hardware setup, getting all the software you need is a few
apt-get installs away, or use the handy Synaptic GUI to see what’s available. If there’s an app that seems like it should have been packaged up, it’s probably in a Personal Package Archive somewhere.
I put together an equivalency table for the Mac apps I use. There was a Ubuntu-friendly Linux counterpart for each and every one. Do those apps necessarily have the visual appeal of their Mac brethren? In most cases, no. But they’re free and functional, and in some cases offered a more robust or compellingly alternative set of features. Things like persistent network volume mounts that are all but impossible in OS X are trivial on Linux today, and plenty reliable even on a laptop. There’s a lot of power there, and it no longer requires the over-investment of time that it once did.
Ubuntu is a damn impressive project. In contrast to Apple’s institutional secrecy, Ubuntu operates completely in the open. Want to see everything they’re planning for their next release? It’s all online. Want a weekly newsletter of everything the Ubuntu team and community is doing? It’s right here, and may even be available in your local language thanks to volunteer translators. Ubuntu is transparent, friendly, and it works. What’s more, they make it easy to get involved even if you don’t have a lot of time to commit.
This is, on the whole, a pretty rosy picture. The only dark cloud is that all this advancement in Linux on the desktop has arrived just as desktop computing is heading towards the exit. Fortunately, the Linux community has embraced netbooks something fierce, and is using that platform to explore alternative interfaces and computing models.
Then, of course, there’s the dominant Linux “distribution” for the mobile world: Android.
I was able to borrow both an HTC Hero and a Nexus One during my experiment with non-Apple portables. This lent a good perspective on the differences between Android devices, something that’s both a strength and a weakness for the platform.
The Hero, at this stage, is a bit like a first-generation iPhone in the Android world: a good bit slower than the latest devices, but still kicking. I found the Hero surprisingly usable, but its cramped form factor and odd back-button placement quickly wore thin. The phone strains a bit under the weight of multitasking, and I found myself killing apps daily via a third-party process monitoring app to get back some semblance of performance.
The Nexus One, by contrast, is a sleek, smartly-designed, reasonably ergonomic phone that’s competitive with the iPhone in build quality, non-unibody design aside. It is blazingly fast; the software responds quickly even when multitasking. And yes, the screen is as bright and brilliant as everyone says. The Nexus One is not the sort of plasticky embarrassment that most non-iPhone devices have become over the past several years.
Then, there’s the software. The difference between Android 1.x and 2.x is noticeable. The Hero hasn’t yet been updated, something that seems to be done if and when carriers and device manufacturers get around to it, to the great frustration of the Android user and developer community. To circumvent this delay, dozens of forums offer various remixes and mods of Android firmware, stitched together from various device/manufacturer distributions of the Android OS and sprinkled with the efforts of open source projects to offer the best blend of features, hardware support, widgets, and so forth. It makes the iPhone jailbreak community look staid and organized by comparison.
The Nexus One, as Google’s flagship device for the platform they’re pushing forward, of course runs the latest and greatest version of the Android OS. What’s interesting about the Nexus One is how little it does out of the box, clearly taking a cue from the iPhone (as it does in many areas of the user experience). Unlike the Hero, which is loaded up with HTC’s Sense interface and associated widgets and apps, the Nexus One has an unspoken but clear message for new users: head to the Android Market.
If it’s been a while since you used an Android phone, you’ll be surprised at just how much is available in the Market. It’s no App Store by the numbers, but you’ll find Android versions of most of the apps offered up by household name brands and services like Yelp, Bank of America, and OpenTable. As I did when exploring Ubuntu, I put together an equivalency table of iPhone apps and their Android counterparts. I was pleasantly surprised at how many of the apps I use on the iPhone had Android ports. Where I couldn’t find a port, there were reasonable alternatives, save in the area of creative applications like Bloom. Developers on iPhone seem to spend more time on visual polish, but Android developers seem to like packing in the features. It’s all about community norms, and of course there are exceptions to those norms.
Android, at this juncture, is every bit as capable and robust a platform as the iPhone. As I said above, if you don’t like Apple’s aesthetic or approach, now’s the time to jump ship. However, I’m a big fan of Apple’s aesthetic, and what I found while using the Hero and the Nexus One is that the Android workflow just doesn’t jive with me. I found the multitasking and notification mechanisms distracting, and I prefer the iPhone’s lack of any input other than multitouch. It’s what the iPhone doesn’t have that I find compelling, but that’s just one perspective. If you’re less than thrilled with your iPhone, give an Android device a shot.
While I don’t anticipate carrying an Android device around, I’m still interested in writing software for it. Android’s JVM-alike software platform means that it’s possible to develop in a host of different languages that have JVM implementations, languages like JRuby, Clojure, and my personal favorite, Scala. Tentatively, I’ll be contributing to an Android implementation of a popular iPhone app, and hopefully in Scala. That’s nice, and presently impossible on iPhone, where it’s pretty much all Objective-C all the time (barring some clever hacks, workarounds, and outright duping of the App Store reviewers).
Having already concluded above, I’ll simply say that it’s an exciting time to be interested in portable and mobile computing. There are options for all sorts of users and developers, and those options are increasingly robust and competitive. As I’m getting ready to publish this, even Microsoft is making a respectable play for mobile hearts, minds, and wallets.
In short, there’s no reason to feel trapped by your current platform. Go out and explore. You may find that you like where you’re at, but you’ll definitely learn something about the creativity and diversity of the tech landscape if you look around.