This morning I had to restart Docker Desktop and the marketplace tab had a notification. There was a new extension available, “OpenVS Code for the Web.” So then I had to go find out what that even means and why I ought to want to install it. The answer is that I don’t.
It seems that all the exciting tool development these days is happening around what one company is calling “Cloud Development Environments.” The general idea is that the source repository sits on a server somewhere, and then there’s another server, the CDE server, that knows about the source repository and maybe all the other services you need in order to work on that source repository (a database, maybe an artifact repository, maybe a build server, probably some testing pipelines, whatever). Then, instead of pulling the source locally and firing up their own instance of whatever IDE they like to use, a developer will instead fire up a web browser and connect to that CDE server and they’ll be instantly configured and working on the project inside the browser window.
This is the thin client model that we’ve seen before. Things that lead to thin client are, generally:
- really, really cheap network I/O
- really expensive local storage
- highly paranoid and proprietary engineering management who don’t want individual contributors to take any code out of the organization’s grasp
This is hardly an exhaustive list, but from here it gets less general. For instance, at Netflix, I had a Windows desktop and a MacOS laptop and, when I worked remotely, rather than run my dev instance locally and tunnel its connection to the dev database through the VPN and keep mentally current with all the stupid configurations necessary for both operating systems, I just used remote desktop software to use my laptop as a thin client for my desktop computer. It reduced my mental load and kept me productive.
Still, I am no longer in a situation where thin client makes a lot of sense. Well, sort of. I mean, I develop services that run in Docker containers on my laptop, so the shape of my environment looks kind of like the server side of a CDE. It’s not true, though, that I need to bring new employees onboard, and it’s not as though adding yet another piece of software to my system will reduce my mental load. Meanwhile, out here in the woods network I/O is the opposite of cheap. So, no, I don’t need to get smart or excited about whatever CDE gets thrown up in front of me.