With the advent of "Linux on Chromebooks", using a Chromebook for development has become enticing in many ways. They are lightweight, fast to boot, have great battery life, and require no maintenance. When I heard that Linux applications would now be supported out-of-the-box, starting with the Pixelbook, I jumped at the opportunity. I've been doing development on my Pixelbook since June 2018. Below, I summarize my experience so far.
Anyone that has installed a Linux distro on a laptop knows that you can often run into issues with driver support. Using a Chromebook completely removes any issues related to doing this. It is a simple toggle in settings, wait for the download, then restart. There is now an application called "Terminal" that gives you access to a full Debian version of Linux.
- Konsole - The default "Terminal" application works fine for simple use-cases. However, most developers will want additional features like tabs, color schemes, etc. There are a handful of options out there. I found Konsole's mix of features to be the sweet spot for me.
- Terminal tools - I have not had any issues running any terminal tool. Anything that Debian will run, runs as expected. I work extensively with the following:
- Node and TypeScript (tsc)
- .NET Core (dotnet)
- Docker. Though this is terminal-based, I thought it deserved a specific call-out. Initially, I had issues with getting the Docker daemon working properly. I'm happy to say those issues were ironed out late-Summer of 2018. Since then, I've had no issues running a few containers at a time and doing normal Docker tasks.
- VS Code - This is the jackknife of the editor world. It can be used to edit anything, and there is almost always is an extension for the functionality you are looking for. I was concerned at first about the performance because it is an electron-based application, but I have not run into any issues.
- Other applications I make use of are WebStorm, Postman, Slack, Robo3t
It is worth noting that my Pixelbook runs an i5 with 8gb of RAM, which is considered very high specs compared to most other Chromebooks in the market.
- No OS-level modifications - Chrome OS does not allow custom global shortcuts or using a different launcher. This was one area that I struggled with since I typically make heavy use of tools like Alfred, Karabiner, and AutoHotkey. These applications provide an extra level of control and automation that just cannot be rivaled on a Chromebook. The OS is very locked down, and not having access to tools like these is a side-effect of that.
- Desktop Environment - Chrome OS provides a shortcut and gesture to give you an overview of all open windows. It also provides basic splitting of windows left and right. However, the shortcut to split windows is not recognized when a Linux application is in focus, so I have to use the mouse to snap the window to the side to split it. "Virtual Desks" are scheduled to roll out to the Stable channel within the next few weeks. A feature I am very excited about and is a move in the right direction for the desktop environment in Chrome OS.
- Graphics applications. GPU support for Linux is just being rolled out. However, until now any applications that would take advantage of a graphics card are very anemic.
Overall, if your development workflow uses a Linux-based OS, a terminal, and (optionally) an editor, I feel you may be genuinely surprised how well a Chromebook will work as a development machine.