Is a Chromebook Good for Coding and Data Science?
By: Matt Gosden
Tags: Chrome OS, Python, Programming, Data Science, Chromebook

My Chromebook is perfectly good coding machine, but we should make it easier for Chromebook users to get started in programming.

Today’s Chromebook users are tomorrow’s professional coders

2019 Chromebook Google market share

In early 2020, Google was reporting over 40 million users in education, using Chromebooks. This is already a significant segment using these systems.

But Chromebooks seem to be off the radar for coding and data science. It would be a great shame for us all if some young people with tech talent don’t get started on programming or data science because it’s a little too hard on a Chromebook. In many cases a Chromebook is the only machine they have, and the machine that they can afford.

Is it really the case that Chromebooks are not so good for coding and data science, as a Mac or PC?

Or is this an illusion that needs correcting?

I think it is more an illusion than reality …

A Chromebook is a great little coding machine

I’ve been using a Chromebook as a secondary development machine since last year. It works very well.

I confess that my favourite tool is still the Ubuntu Linux machine, but my Chromebook and my Macbook Pro are equally good in second place, and the Windows laptop comes in third for me. Everyone has their own preferences of course.

There are three reasons that a Chromebook is actually a good machine for coding or data science:

1. It’s based upon Linux

Although it is not full-fat Linux install underneath, the Linux core under Chrome OS means that professional Linux dev tools can be used on a Chromebook.

The Linux command line is very familiar to developers that are working also on Linux or Mac machines and so a Chromebook feels very easy to use as a second machine.

Being Linux-based is also a benefit for people that may start coding on a Chromebook before moving to other platforms. The Linux skill set transfers well to both the Mac OS and Linux worlds of course.

2. The Chrome OS ‘Powerwash’

One of the great benefits of a Chromebook is the Powerwash feature which take only 2 minutes to reset the machine to a clean slate install.

Compare this with a rebuild on my Mac, that takes me anywhere from 2–4 hours each time.

The reason the Powerwash works well is because Chrome OS keeps most of the data and settings the cloud. So if something goes wrong with your system, it’s very easy to Powerwash your way out of it and you can be up and working again in just a few minutes with a completely clean setup.

The Linux machine however is not stored in the cloud (as of yet) and so you do need to reinstall your development tools when you Powerwash your machine.

3. Chrome OS is simple to use and a nice experience

Chromebooks are very quick to boot up. They have good battery life. The Chrome OS operating system is slick and simple to use. Chromebooks are small and very portable. You can plug in external keyboards and monitors if you want that. Overall I think that Chromebooks give you a good overall experience at a very good price point.

This may be a subjective point, but I also think that Chrome OS feels a bit more ‘Zen’. It delivers a simpler way of life than battling with Mac OS, or Windows operating systems. Things are simpler. I like it, and somehow work done on the Chromebook feels a bit more focused.

But there are problems to solve

Is being low-powered an issue?

Most Chromebooks are lower-powered and lower-spec machines. This is reflected in the price.

I haven’t found this to be a big problem for software development though. My Chromebook (with 8GB of RAM, so more at the top end) breezes along with a quite heavy development stack using Docker, Postgres and Python’s Django framework. In fact I would say that with Docker it performs better than my more powerful Macbook Pro.

For heavy data science work, a Chromebook will struggle unless it has a decent processor and memory. However this is only a problem for data science that needs to be done locally on the machine. Today this is rarely a problem because there are free cloud services such as Google’s Colab which will do the processing in the cloud. A Chromebook can enable you to connect with those services very easily using just the Chrome browser.

Installation of coding tools is a barrier to entry

Installing what you need to use Python or a similar language is a bit of a daunting task for a beginner on any system. In Chrome OS is particularly tricky for beginners because it’s not so well documented or supported.

There is a chicken-and-egg problem here in that there are few developers using Chromebooks for development today and therefore there are fewer tools and how-to guides to help new coders with the issues and installs.

Secondly, out of the box, Chrome OS doesn’t quite give you what you need to do software development or data science. For example, Chrome OS Linux comes with Python 3.7 already ‘installed’. But in reality it is only really a half-install because there is no pip or virtual environment support. So you still need to learn how to install Python 3 yourself, or use a script to do it, before you can do any useful coding locally on the machine.

It’s not a working setup out of the box, but it looks like it should be. This feels like a problem that could be quite easily fixed.

Some stability issues using Chrome OS Linux apps

From time to time I find systems such as VS Code hang on the Chromebook for inexplicable reasons. Compare that with my Ubuntu Linux machine, where it is as stable as a rock.

Perhaps it is because the core Linux machine is cut down a lot?

Perhaps it is because there are so few Chrome OS users using tools such as VS Code, and therefore bugs don’t get reported or fixed? This illustrates the chicken-and-egg problem again.

Opinion

Chromebooks are the machine that many young people have, and are the machine that they can afford. So ideally Chromebooks should enable them to start their coding and data science journey with as little friction as possible.

Today Chromebooks work well when using browser-based cloud tools. But when taking the next step and starting to develop locally on their own machine, a Chromebook has some high technical barriers to entry which I think could be fixed relatively easily if there is a will.

As for professional developers, I think that Chromebooks are unlikely to become the first machine of choice for many developers. But I do find that a Chromebook is a great second, and very portable, coding machine. I think more developers should try them out, particularly if it supports the next generation of coders and data scientists.

As the owner of Chrome OS, I wonder what Google thinks … what do I think could be done?