harlan kellaway's blog // Chromebooks for Development - Why and How

Published 02-09-2014

Chromebooks are wonderful for certain things -- they're fast, they're light, their interface is seamlessly integrated with Google products that many already rely on. What sets Chromebooks apart from Windows PCs, Apple Macs, or those systems running Linux is a novel type of operating system (Chrome OS) born of increasing computer experience dominated by app-oriented mobile devices and cloud-based web applications.

Chromebooks lack the ability to download applications that run independent of the Internet (for example, Excel or ITunes). This may seem like an inconvenience -- but, a system like the Chromebook does have a place in a user population where many are accustomed to the restriction of using apps on their mobile devices, are already using many Google products (who wants to pay for Microsoft Office when they can use Google Docs??), and can survive without downloading client applications. Can you describe yourself like I can describe many people I know? I mostly use email, Google Docs, social media sites (Twitter, Tumblr), web-based music players (Pandora, Spotify), and web-based video players (Netflix, Hulu).

But if you are someone who wants or needs to download programs -- something inevitable for developers -- the Chromebook in its natural state just doesn't suffice. But, there is hope!

 

Intro to the Chromebook

Chromebook users can only "download" "programs" that are available in the Chrome Web Store. It looks a lot like a smartphone's app store, right? The reason I use air-quotes is because this isn't downloading in the traditional sense and they aren't programs in the traditional sense -- just about every app from the Chrome Web Store is tied to the Chrome web browser. Many are simply browser extensions. Many are simply links to websites!

What Chrome OS does is give users the feel of using a traditional operating system interface -- there's a toolbar, there's icons to click, files can be saved in folders, etc. -- but most "programs" are links to web-based applications or Chrome browser extensions. Chrome OS users are not allowed to download stand-alone applications that aren't explicitly provided by Google.

An example: I cannot download the Spotify application, but downloading the Spotify app from the Chrome Web Store gives me an icon in my Apps menu (akin to the Start menu on Windows machines) that, when clicked, simply opens a tab in the Chrome browser to the Spotify website. Same goes for Google Docs -- much like I might click a Microsoft Office Excel icon on the toolbar of a Windows or Mac machine, clicking the Google Sheets icon on a Chromebook opens a Google Docs spreadsheet in the Chrome browser.

 

Why would you buy a Chromebook?

While it's been an adjustment to not be able to download any program, any time I want, I'm still drawn to the Chromebook. It's comforting to know that if my machine exploded tomorrow, I could afford to get a new Chromebook and pick up right where I left off fairly effortlessly.

I'm not saying that doesn't have its downsides -- there's been debates for quite a while now as to whether Google ethically uses the vast amount of information it gathers and, if so, whether it may not one day. It's important to be aware of privacy concerns related to using Google products and decide how you'll mitigate that -- perhaps by not even getting a Chromebook.

 

Development on a Chromebook

For a developer using a Chromebook, it can be a hard pill to swallow: whatever coding practices you may have had on your Windows PC or your Apple Macintosh or your Linux box -- you can forget about them on the out-of-the-box Chromebook. No Eclipse, no MySQL Workbench, no Emacs, no Git! Impossible, you say. Yes - impossible without some hacking.

It should be noted that there are some apps that give you text editors and FTP access to web server files (e.g. Cloud 9 IDE) -- but for a more robust environment, getting Linux to run on your Chromebook is your best bet, given Chrome OS has a Linux foundation.

Getting Linux to run side-by-side with Chrome OS is made possible by an open-source project called Crouton. The Linux environment that Crouton helps you install can be switched back and forth to-from your Chrome OS environment. Everyday tasks can be done in Chrome OS; development can be done in the Linux.

There are a ton of tutorials out there on how to get Crouton up and running on your Chromebook, so I won't repeat it -- rather, I'll point you to my favorite personal tutorial:

http://craigerrington.com/blog/crouton-script-from-sd-card/

This tutorial mentions placing Crouton on an SD Card -- there is an advantage here in that your Crouton environment will then be portable and will not crash if your Chromebook crashes. That being said, in my Crouton experiments, the information on my SD Card did get wiped out periodically, and I was never sure why. Take plenty of backups and if you do development work that can be public, you can back your work up on GitHub!

After Crouton is installed and you're comfortably able to switch between the Chrome OS and Linux environments (and are comfortable using a Linux OS), you can use your new Linux environment to download preferred development tools. Before you do anything major (and during and after), make sure to take backups!

Happy coding.





This blog is licensed under Attribution-Noncommercial-Share Alike 3.0 Unported license.