> But all forms of coding and media editing (the main tasks that are truly CPU/GPU-bound, the area where something like Mighty would help) have remained as local desktop app affairs.
Media creation maybe, but I feel like professional software engineering might move soon.
At the beginning of the year I moved from a company where I worked entirely locally, running a local stack, developing in a local editor, etc, to a company where I work almost entirely non-locally. That happens to be on a box under my desk, but I only use it over SSH. It's beefy, and I could get an even beefier VM somewhere if I wanted. All my editing is now in a web-based VSCode instance which has been much closer to desktop VSCode I was using before than I expected. All my builds happen remotely. It's honestly an amazing experience. I think things like GitHub Codespaces have so much potential here.
I agree overall, but I don't think it'll be VS Code in the browser, I think VS Code's remote features with the client-server model (client: VS Code's UI running locally, and server: the code executing and file-system running on the server).
I've also tried VS Code in the browser, and personally I find it an absolute unusable mess, the key binding space is just way to overloaded for a complex app like VS Code, and the browser itself to co-exist (e.g., many of VS Code's important bindings get eaten by the browser itself). I think that all that really matters is that the UI for complex apps runs locally.
(But I could be wrong here, I don't make the mistake of extrapolating my own experiences to other users. E.g., I also find VS Code to be so slow I avoid, but most users couldn't care less. https://news.ycombinator.com/item?id=27360494)
What hardware do you use to talk to the box under your desk? How do you work remotely with this setup, and what if the network VPN goes down?
Working in this way depends a lot on the stack you’re working with. For languages like Java or C#, where you can’t really work productively without an IDE, browser-based VSCode won’t cut it for most people. (I’d prefer a JetBrains IDE over VSCode too.) If your language doesn’t have a good remote debugging story, a remote-first stack won’t cut it.
This setup with a box under your desk doesn’t sound reasonable to me from a financial side either. According to your profile, you’re at Google, so I assume the hardware you use to access the box is a Chromebook. Sure, those are dirt cheap, but is a desktop + Chromebook combo really cheaper than one reasonably priced PC laptop with specs similar to the desktop?
I think I’m still happy with my beefy (spec-wise and kilogram-wise) laptop, having the ability to do everything directly on the machine (with no network round-trip for every operation), and still being able to do things if the VPN or the network goes down (with limitations, of course).
> What hardware do you use to talk to the box under your desk? How do you work remotely with this setup, and what if the network VPN goes down?
I use a MacBook Pro. I just connect to the machine. We don't use a VPN (see BeyondCorp) but something like Tailscale would probably work well. The fact the machine is under my desk and not in a data center is due to my laziness in returning it, nothing more.
I'm using VSCode for mostly Java. It's not perfect, but I prefer it to JetBrains products. JetBrains products are more capable for now, but I think their new IDE does remote development, and VSCode gets more IDE-like all the time. I think that's the direction things are going.
I'm using a MacBook Pro because I've been using Macs my whole life and have too much muscle memory to switch to something else.
As for having a beefy laptop, that only goes so far. Right now laptops tend to top-out at 32GB RAM if you still want plenty of choice, you make sacrifices to get more than that. Also many companies have policies or regulation restricting what can be on laptops.
If you are at home, your box is in the data center, then a BeyondCorp outage makes it impossible to work, right?
I agree that laptops can’t always do everything, but many things can be done comfortably well. At a previous job, I had 32 GB of physical RAM and 20 GB of swap (thanks to 5-10 RAM-hungry JVM apps), and things were quite usable for standard dev workflows.
Err, sort of. Beyond Corp isn't really one single service that can be running or down, it's more of an approach, a bunch of different pieces, etc. I haven't seen an outage yet, but I don't think it would look like "the VPN is down", probably more like "this web app thinks I'm logged out".
I do recommend reading the BeyondCorp paper, although it's been a long time since I read it.
VS code has the best remote features I have ever seen, good enough that I once got annoyed VS code had freezed just because the network died, then _realized I was doing the work over the network_. I hope it will stay a local app with powerful remote capabilities.
Media creation maybe, but I feel like professional software engineering might move soon.
At the beginning of the year I moved from a company where I worked entirely locally, running a local stack, developing in a local editor, etc, to a company where I work almost entirely non-locally. That happens to be on a box under my desk, but I only use it over SSH. It's beefy, and I could get an even beefier VM somewhere if I wanted. All my editing is now in a web-based VSCode instance which has been much closer to desktop VSCode I was using before than I expected. All my builds happen remotely. It's honestly an amazing experience. I think things like GitHub Codespaces have so much potential here.