I wonder what kind of developers (i.e. demographics, place in career, tec preference etc) want to use a set up like this. I like my local development to be very local with as few links in the chain/surprises as possible, but maybe I'm just a crusty luddite.
For me, the value proposition is spending less on hardware for similar benefits.
It's a lot easier to work with 8GB of RAM when your IDE uses 1GB to be a thin client instead of 4GB (this was roughly my experience using Jetbrains Gateway vs native PHPStorm).
Another solution is to use an editor that doesn't rely on the browser or electron (which is just another browser). That's the main reason I switched to vim, all my tools were electron and the fan was constantly spinning. No regrets, highly recommend.
I'm a PHPStorm lad. I've thought about Vim over the years, but Jetbrains has been pretty great for being an all-in-one tool. IDE, git UI, database viewer, and convenient CLI.
Another option I considered is Sublime, but it seems a lot of its extensions that I'd need are not very up to date.
For the price point of entry level M1 Air or Pro, there is nothing that competes on battery life.
I'm in South Africa, with spotty electricity. I need a laptop that can sustain work for 4-6h without charge without spending an extra arm. Anything non-Apple that does this competes on the top end range, not entry level.
Cheaping out on hardware here just means I need to buy bigger backup batteries, so either way I need to spend a ton of money if I really want to avoid Apple that much.
That's a shame, it's a bit weird seeing someone having to limit what software they can use, and looking to offload things onto external machines, over something you can get 4 times the amount of (32 GB) for under $50 (https://www.amazon.com/s?k=sodimm+ddr4+32gb)
- People who don't own a computer, e.g. university students who only use the school's computers (or K-12 students even), but who still want their editor settings to be automatically saved and used, and who don't want to deal with installing things on the computers they use (or can't install things).
- People who own multiple computers and who don't want to deal with syncing configuration such as installed tools, editor settings, etc.
Or people who don’t want their dev environment to interfere with their primary system. Or who have multiple projects with different requirements/dependencies.
Onboarding with a remote setup like this can be very quick. Or really — the same tech (devcontainers) can be used locally just as easily with many of the same benefits. The onboarding/dev setup is reduced to building a few containers and getting the code. You don’t have to locally install packages or worry about incompatible versions of tools.
The remote aspect is available because it’s very easy for Microsoft to do with VSCode as an Electron app. Sadly, they are making it more difficult for anyone outside of vscode.dev to have a remote install without using their “tunnel”.
It's true that the sandboxing aspect of vscode.dev and codespaces is a major part of their appeal. It's unfortunate that operating systems were designed with more or less of a "if malicious code is running on your computer, you are already screwed" paradigm, and that part of the reason that running web apps in browsers is such a popular mode of operation is that they don't follow that philosophy.
People who own a computer but prefer the iPad form factor, (taller aspect ratio is nice for code), and like having a portable 120Hz whiteboard, and arent afraid of operating said computer remotely via the iPad.
I tried it a year or two ago and I had issues with the keyboard shortcuts (had to disable keyboard shortcuts on ipados) and scrolling behaviour. I seem to recall having other issues with safari and the local files but it’s been a while.
I’m not in a place I can try it out, but if it works then that would open up remote web development.
Yes. There’s also a slightly different version of it it blink shell, which packages a web version of vscode as well. In general this one performs a little better imo and has integrations with local filesystems
I do web dev casually with it all the time via a vpn to my server back home and the inspect app for debugging
It's a tiny thing, but I love vscode.dev's Theme Tester Playground. It's the fastest way to suggest people try a VS Code Theme. For instance, I've been using LaserWave for a while now and you can see it in action here:
It gives you a workspace with a handful of sample files to see various syntax highlighting bits. You can just about put any Theme extension ID in the marketplace after /theme/.
If you've got Settings Sync on, you get the see the theme in the context of your usual window layouts and some other things that interact with themes.
No install, no download, no need to switch back after you are done previewing it, just a quick easy URL to link.
On Github (just press '.') it's quite nice for exploring repositories instead of using the regular Github UI. I don't use it for making changes though.
I've been using this for a while. It lets me have a single simple dev environment that I can access from any machine that I can use a web browser on, which as a student with a school owned laptop, has been very helpful. It gives me a lot more time to work on my projects as long as it doesn't have a gui, which I have to use my personal laptop for only at home. Also useful for managing dev environments for other devs in some settings, so you could give them Chromebooks or similar low power low cost devices. I also set this up for programming for our schools robotics team, works great.
I'm sure for a set of people this is the main setup (this is totally viable, and probably opens the door to development on many alternative OSes, like on an iPad or android tablet), but I see it used a lot for "hit and run" changes on repository that are only auxiliary or seldom used.
For instance changing configuration files on a infra oriented repo, tweaking SQL on an ETL service, updating a internal library etc.
If those changes can be done in a quick and compact way, with the CI dealing with running the test, staging and release process, an online editor is the fastest approach.
> with as few links in the chain/surprises as possible
This is the hinge. You're in the world of people who see this as opposition technology, as something opposed to your control.
But what about everyone else? How many different chaotic absurd onboarding tech systems do various companies have? We never had a good onboarding at my last job, my current job has two or three various onboarding paths - mine is a fairly fully featured Ansible and it works great but most existing devs piss upon automating our 30+ services & make their newbies go do everything by hand, including asking for .env files over slack again and again and again.
I think there's a general intransience-ness, a stuckness, that many devs have. They see cloud and automation as an enemy of what they know. But they are just stuck, unwilling to grasp for power, unwilling to figure out how to scale themselves & their world wider. It's not that manual slow systems afford better control, it's just that there's a colossal bias against getting better & newness that most people - including devs, those who should fight for mightierness - should be grasping for.
Devs being opposed (or not embracing) automation is wild to me. Like that's literally your entire job, to write software that does stuff automatically, reducing the amount of tedious/manual task that have to be done.
I'm also of the belief that every on-boarding is a great opportunity to improve the process, update documentation, etc. You have this person that knows absolutely nothing about your processes/environment. They're going to ask lots of questions, those should be written down and placed in your KB so your not relying on tribal knowledge as much.
I used a similar system while doing training before, really neat as people could guarantee more or less that all the development environment was the same across different computers even with BYOD (bring your own device) and people would focus on the training content instead of lose time configuring their PCs. I can see its applications on education.
The most annoying thing in their setup (which may differ from this one) was that some shortcuts would be captured by the browser, so I closed the whole thing multiple times with Ctrl + W while relying on muscle memory.
Local development on enterprise managed win10 can be fairly confusing. Having a cloud vm/container with linux and local admin can be less troublesome, depending on what you’re doing of course.
My personal machine is Win10 with a local arch linux VM for all things dev. I was nearly set up with the ability to boot Arch as a VM as well as 'natively' but I got distracted and the VM is good enough, so I never got there. My current employer is OTT WRT security so I can't even install reputable tools, which pains me, so I definitely agree with your closing sentence.
I dont use it but I suppose the benefits are the same as anything else in the cloud. Your dev environment is totally decoupled from your machine. You can access it from anywhere. That's a real benefit.
For me, it basically represents going back to the days of telnet and X Windows with a development server shared by the whole team, only with another set of tools for the same purpose.