chromebook.md3 min read

← index

Almost none of it runs on your machine

Doing real work on a very slow laptop.

3 min

I do serious development on an Acer Chromebook 11 with an eleven inch screen and two gigabytes of memory, in user mode, without Crostini.

The reason that works isn’t that the machine is secretly capable. It’s that very little of what I’m doing actually runs on it. Front end work happens in Codepen, which handles SASS and Babel and the rest of it on someone else’s server and the more involved things happen in Codenvy on someone else’s server as well. Some light Node and Python runs locally through Termux and that’s really all the local compute the day requires. The things I build this way end up on servers being used by thousands of people, which is the only test of serious that means anything.

There’s one real gap and it’s a stupid one. I would happily do more frontend work on the machine itself except that Chrome won’t let me reach localhost, which rules out the entire loop of running something and looking at it. Firefox for Android manages this perfectly well and has no developer tools to speak of so between the two of them you can have the thing you need or the tools you need to use it and never both at once.

The wider problem is that asking whether a class of machine is ready for serious development isn’t a question anyone can answer. Development covers editing a config file in VIM at one end and building an interface in XCode at the other and those two activities have almost nothing in common beyond both producing software. A machine that’s perfect for one is useless for the other and any yes or no you get is really an answer about what the person replying happens to spend their day doing.

So the honest answer is that it’s great and I wouldn’t want to run Android Studio on it. My iMac struggles with Android Studio, which tells you the question was never really about the Chromebook.

What’s worth taking from this is how much of modern development stopped needing a local machine without anybody announcing it. Compilation, bundling, transpiling and increasingly the whole environment moved somewhere else and the laptop turned into a way of looking at a screen and typing. That’s a genuine shift and it means the specification you actually need is much lower than the one you feel you need, right up until you hit the specific thing that must run locally and then no amount of remote power helps you at all.

Which is the useful way to choose hardware. Do not ask what a machine can do in general. Work out what has to happen on the machine in front of you rather than in a data centre and buy for that and accept that a browser that won’t talk to localhost can make a perfectly good computer useless for one particular job while remaining fine for everything else you do all week.

The part that dates worst in all this is the assumption that the constraint is the hardware. It usually isn’t. The constraint is one specific thing the machine won’t let you do, and it’s rarely the thing anyone would put in a review. Nobody comparing laptops writes about whether the browser will talk to a local server, and that single missing capability decided what I could do with this one.

So the specification is the wrong thing to argue about. Find the one blocker first.