Hacker News new | past | comments | ask | show | jobs | submit login
Developing Online with GitHub Codespace (docs.github.com)
53 points by dgellow 36 days ago | hide | past | favorite | 54 comments

The slow erosion of control. All your data is on the cloud. Developers coding online. No right to repair the devices you purchase. It's a disaster unfolding in slow motion.

I recommend everyone who reads this must do their part to take back control. One of your computers must be a Linux. Diversify your clouds and mobile platforms. One of your browsers must be open source in the true sense.

Take control your own data, at the very least have some sort of physical backup for the resources you create (code, music, videos, documents, etc.)

Add to this the perspective on developer knowledge: Instead of controlling you dev environment, running the software locally for testing, and having all kinds of tools available you now get developers that only know the github interface to the code base. The have no clue about execution or tooling. All that ends up in the hands of some "specialized" companies or services. That will a) lower the quality of software and b) reduce the value of developers. A little bit like the distintion between IKEA-style furniture and the one you can buy from a carpenter.

Which version of the pay per user per month, feature tiered debugger would you like to subscribe to?

It’s scary IMO.

There’s a lot of marketing associated with the cloud. It is not that cheap. There are definitely economies of scale with the cloud, but when you see how much profit the big boys make, rest assured, not much of the cost savings are being passed down to you.

And there is so much vendor lock-in, I’d much rather just start from scratch and do everything myself. They say the point of the cloud is easy deployment but honestly that only works for hobby projects — anything serious, and you will be tweaking everything quite a bit so there isn’t much benefit of these ready made solutions as you will eventually hit a roadblock that they can’t overcome easily and you will either spend a lot of time making your cloud solution work or abandon it for something else.

Definitely a huge risk of losing control, the web and everything is becoming more closed.

Agree with you 100% that we need to support open movements

Now imagine you get banned from GitHub and not only lose access to your data, but lose access to all the online tools you’ve become dependant on.

It’s like the App Store debate from a decade ago. It was obvious that opting in to curation was a bad idea, but first movers were rewarded with huge profits because Apple was effectively giving them a ton of free advertising via discovery.

This will be the same. The true long term cost of losing control is massive and not being adequately assessed as the huge risk it is.

Yes, and there will be no turning back once it's too late; or it will be extremely difficult and painful.

Working from a thin client also mean constant monitoring of your work, every characters you type, every mouse movements will be recorded and fed to an AI.

Yes. We're being sold a mainframe again. But a much much worse one. Now without the reliability, documentation, support and consistency.

And ownership.

While I sympathize with your suggestions, I don't really see the issue with this particular service. This is more about enhancing developers by letting them stop having to set up the same development workflow on different computers. As long as you have access to your data, you could mirror it locally. Should they remove that possibility then you're losing control, if enough people would protest if and when that happens then it would be reversed. Which brings me to my main point.

The erosion of control is mostly a voluntary one, cloud offerings make life simpler and more convenient and that's very hard to beat. Especially the ones aimed at consumers. I am confident that people are losing less personal data thanks to the big tech companies, even at the expense of losing control. Therefore it's a net positive for individual consumers, perhaps it's not if you look at the societal level but what would be the main arguments at that level?

EDIT Hahaha, there is a certain irony about this getting downvoted in a discussion about erosion of control.

At this point in time you have to be slightly paranoid to see the evil side of this development.

Erosion of freedom is almost always volontary at first.

At this point in time you pretty much have to imagine the evil side if you ask me. There is nothing forcing you to use this service. You're given more possibilities, not less. Which happens to be the opposite of control.

There will be discounts, incentives, time saving integrations, etc. to entice people onto the cloud version. Then development on the standalone version will languish. You’ll have a “choice” between the crappy, outdated standalone tool or the awesome, modern online tool.

Look how perpetual Office apps vs Office 365 apps work. It’s a slow boil, but eventually the only viable option will be the online version.

Completely agree.

This is an extremely dangerous trend and this is why I stopped using VSCode as I think it is a potential trojan horse.

Are you aware that VS Code is the driving force behind key standards such as the Language Server Protocol https://langserver.org/ and Debug Adapter Protocol https://microsoft.github.io/debug-adapter-protocol/?

These standards have revolutionised IDE language support in the last few years meaning I can now run my code on a remote machine and connect to it using VS Code or any other LSP compatible IDE.

I write a language server for a niche scripting language, and Microsoft's specs mean that I wrote support for VS Code and now Sublime text, Emacs, Vim, Atom, etc all just have support too.

You can, right now, run VS Code on your Linux server, and another copy on your Windows desktop, and just use SSH to connect them seamlessly: https://code.visualstudio.com/docs/remote/ssh

Sure, this currently uses a Microsoft server to set up the connection, but I'm sure the moment they lock that down someone would fork the extension and provide an alternative.

And yet things like the .NET Core debugger which is touted around has an closed license. (Microsoft .NET Core Debugger licensing and Microsoft Visual Studio Code) - https://github.com/OmniSharp/omnisharp-vscode/wiki/Microsoft...

Microsoft mainly does things that helps lock people into their systems. Why do you need to connect to their server at all? It's all about control.

What does a specific extension's license have to do with VS Code? The only argument I can see is that they should be going back to all their old corporate contracts and renegotiating them to allow open source, but that's hardly a problem with VS Code.

I can release an extension with whatever license I want.

VS Code is a formidable piece of engineering, I've used it for years and have mostly been impressed by the quality.

The problem is that I sense a potential bait & switch tactic.

I don't want to live in world where the norm is that everything in on the so-called "cloud".

I want full ownership of my files and my tools.

It will be EXACTLY like MS Office IMO. They won’t drop the standalone version outright, but at some point all the new, compelling features will only go into the cloud version.

We’ll pay for everything. We’ll be renting our syntax highlighting if they think people will tolerate it. I think we’ll pay per CPU cycle, but the cost will be based on feature tiers. IE: CPU cycles * features = mega profit.

> We’ll be renting our syntax highlighting if they think people will tolerate it

Again, go look at the LSP.

There are already alternative IDEs that are compatible with VS Code extensions. You can use the exact same community written syntax highlighting extension in a different IDE without touching any Microsoft code at all...

I understand your concern, but from a business point of view, sometimes outsourcing liability to the cloud is an extremely cost effective way to meet certain regulation and compliance requirements.

It would be foolish, if not impossible for a start up's infrastructure to hold the same level of certification as Azure, GCP or AWS.

Yeah, this is exactly the kind of bullshit that will be used to force people to work from a "thin client" with 0% ownership.

My text editor doesn’t need certification. It needs an offline, perpetual license.

Codespaces allows you to develop in the cloud instead of locally. Developers can contribute from anywhere, on any machine, including tablets or Chromebooks, and there is no need to maintain local copies of intellectual property.

That last part is what concerns me about these products. Eventually we may have to justify using a local dev environment, just as some developers currently have to justify using a laptop, as it's more 'risky' for the employer.

The whole situation is a joke really when it comes to stuff like this.

Everyone crows due diligence and removing administrative access and putting in security controls everywhere, not using own hardware, having locked down this that and everything, centralising control and environmental access. It adds a lot of friction but realistically ignores the fact that some of the core libraries and packages our products depend upon are probably put together by someone toking on a bong at 2AM in an insecure rural outback shack on a laptop riddled with porn and warez that was bought from ebay.

It definitely feels like the corporate leaders making decisions about risks don’t actually understand what the majority of risks are, the likelihood of them and the potential impact. So they make decisions based entirely on the few risks they do understand while completely disregarding the ones they don’t.

The most risky part is when Github decides to delete your account or repository, you would loose all of your intellectual property, because it was all on the cloud.

But would they do it without a good reason? That sounds like a lawsuit in the making.

Their reasoning hardly matters to the victim. But I don’t think they would outright delete data. Microsoft just appears more trustworthy in that area.

What if you name a branch in your repo "master"?

Yeah man I'm sure that they are going to ban you for this. For sure, that's definitely how the world works right now

Please stop imagining things you are making up things in your mind just so you can get mad at them

I really don't know, the idpol slope seems more and more slippery every day.

Of course they will. Cancel culture is a thing, you know.

Tried it on a few small repos, I don't know if it's just me but the whole thing is quite slow when using the web version. Connecting via visual studio code to an existing codespace was lot faster especially scrolling and searching files. I'm not sure if it's the beta release but I have my doubts on the web version being suitable for sustained usage on large repositories.

The base image being used in these environments supports lots of common languages but I'm more excited about each repository defining their own development environment via docker container images and .devcontainer files for specifying extensions and settings. This will finally allow people to contribute to open source without having to invest time in setting up the necessary tooling for the project. These devcontainers work locally too via the remote docker extension.

All in all I expect this to significantly remove the barrier for participating in open source development.

> The base image being used in these environments supports lots of common languages but I'm more excited about each repository defining their own development environment via docker container images and .devcontainer files for specifying extensions and settings.

Is that something that could run without GitHub / Codespaces?

Absolutely you can see the dev containers for many popular languages here:


To get started all you need is docker, vscode + remote containers extension

I have been using it to play around with multiple languages locally and also adding devcontainers for new projects to easily hop into isolated project development envs.

Thanks for the link. I played around with it for about 10 minutes (just enough to run the Go example) and it's really neat.

The general premise is great and I've wanted something like that for years. One thing I don't like is the Dockerfile that lives alongside the .devcontainer file. Using that to install a portion of the dev environment is a mistake IMO because things like 'apt-get install something' are non-deterministic.

I think it would be amazing if that Dockerfile were hooked into CI and used to build an official dev container for a project every day or every week and if that were the container that's used for development. I already try to do something similar for an official project build container (ie: this container can build the project and is used for all CI builds) and the dev container would perfectly double up on responsibility for that.

The big win with having an immutable container for dev / building is that it could be kept around if it's used to do a production build. Ex: When building v1.0.1, pull the current dev / build container, tag it or label it, push it into a special registry, and use that container for the production build. That way anyone could check out the 1.0.1 dev container and have the exact, old environment that was used to build the production artifact(s) for that version.

I honestly think using this type of setup will become an expectation at some point. It's just too awesome to not use which is part of what scares me about it. While it's not tied to Azure and I can run it locally it's amazing. If it ever becomes exclusive to some type of "run on Azure" play by MS it'll be terrible because it's so compelling you won't be able to ignore it.

Yeah its good, one point that my little experience has shown is that production containers cannot be used for development since they lack all the tooling and are designed pretty bare bones hence the focus is on allowing customising development environments.

Note that there are alternatives to this containerized approach in the nix world with nix packages which I think maybe a better approach for deterministic dev environments but so far containers are all the rage.

Web-based IDE is going to be one of those things requiring a paradigm shift before we have something suitable to replace a native desktop experience. I personally feel the answer is to run the entire show server side and send final rasters to the client. This would allow for complex composite view techniques that would otherwise be infeasible in the browser. For instance, you could integrate a VNC/RDP client into the view engine so that web users don't have to go side channel on these things. The argument for something like this from a security perspective is pretty substantial imo.

Wow! Will definitely try this out. I currently manually do my website design and content through HTML/CSS on a Github Repo through the online editor, that is set up as Github Pages.

Yes of course, I could a proper setup with my own IDE and then github desktop or something similar, but honestly I got so many things going on in my life, I have no interest in setting up everything perfectly - theres a mental cost associated with that.

Also when I am switching between my Mac, my vmware Linux and my work Windows PC, I don’t have to worry about setup - just login and get typing!

I would guess I’m not the only one!

EDIT: Looks like it wont be free after the beta. That reduces the value proposition a fair bit. Because even though I wrote above that I prefer avoiding doing Github Desktop setup for every new repo, I’m not going to pay for that service given it doesn’t take that long to do and is relatively straightforward. Unless it was a very nominal charge. However GitHub is a great service, so I would support them just for the sake of supporting, but that’s separate to the value proposition of this.

I was wondering myself who, apart from education purposes, is going to use that. Was wondering if it was only targeting PC + Linux users in low revenue countries.

But you just opened my eyes.

I fail to see the benefits of this. It’s just another set of immovable constraints on your development process and a charging model chucked on something that is 100% solved over and over again.

Actually that’s software these days summed up really.

I agree with the sentiments of loosing control but i wonder how practical this is. One of the best things about remote development has been able to code at home in my yard and pushing changes when needed. My experience using hosted VsCode wasn't good, in-fact our entire team felt it was slow and cumbersome, the issues raised ended up taking too much time devops time as well.

As a commenter pointed out, we're back to mainframes. We got phones which got smarter and pretty damn powerful only for us to go back to web apps.

Assuming you use 25 gigs of space and develop for 8 hours a day, 5 days a week, you reach the cost of a laptop (1200 / 2000) in two to three years. Without the flexibility of a laptop, and the hassle to set it up.

So the pricing is not over the top.

The pricing per se it not the whole part of the issue, it’s one for sure, but more worrisome is the fact of Microsoft pushing cloud development. They can terminate a Github account at will, so doing cloud-first development is not a good idea. I’ll stay on local-first, cloud as backup.

You'd still need a computer, though, so now you pay for two laptops, one physical and one virtual?

On the other hand, you can seat yourself at any computer with internet access, and have access to your complete environment. It also forces you to use CI/CD to be effective.

Yeah, e.g. writing code from an iPad Pro.

I already package some of the toolchain I use in containers because vendors tends to depends on old version of libc or curl and never update..

After watching https://www.youtube.com/watch?v=-enIM4x-KPA I I want to add it to my toolchain containers and have everything in one place.

I wonder how it will be priced by GH or using alternatives like: https://github.com/cdr/code-server

But since most of C developers are now using vscode if the performance are fine this could change the way embedded software development tools are distributed.

[Edit] the pricing is now public and looks fair:

Instance Type (Linux) Per-hour rate

Basic (2 cores, 4GB RAM, 32 GB SSD) $0.085

Standard (4 cores, 8 GB RAM, 32 GB SSD) $0.169

Premium (8 cores, 16 GB RAM, 32 GB SSD) $0.339

Can someone explain the benefit of the visual studio configuration? I can't see the value for some reason.


I do not see any 'Open in codespace' option in the menu mentioned here:


Can anyone comment on Github Codespace vs CoCalc?

I'm using CoCalc for the first time this year to teach my classes, and it's not clear what advantages this would have, since CoCalc gives you complete control over a full Linux environment and has collaboration set up out of the box.

I learned vim so that ostensibly I could fire up an editor and begin coding on pretty much any linux box I come across.

This is essentially a solution to that goal, multiplied across any device with a web browser.

When will this turn to being able to launch azure instances of your software directly off of the repo page? To connect to db instances running on azure with multiple environments?

this is like docker for software development.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact