GitHub Codespaces vs. Gitpod: Choosing the Best Online Code Editor
hackernoon.com
hackernoon.com
This indicates that your code is free to move about and not so stuck in a "walled garden".
> We are not opinionated. We integrate, don't dictate. Gitpod is an open platform giving developers full transparency over how Gitpod works and allowing everybody to contribute. Our product design integrates with all stacks giving developers full flexibility. We seek to collaborate and partner with other products/companies that share these values.
> Working in open source is in our DNA and everything we’ve created over the past 10 years was built in the open. For Gitpod to be successful we have to win the hearts and minds of developers. Developers (everybody in our team included) enjoy discovering, installing, fiddling around with, contributing to and talking about open source software. This makes open source in the developer tools world unrivalled as a go to developer strategy in terms of speed, cost effectiveness and level of adoption it drives.
---
Both GitHub Codespaces and Gitpod are _wonderful_ products that solve big problems (https://www.gitpod.io/blog/workshops-as-code) in our industry. I strongly advocate for people to build with portability in mind and to not lock into proprietary solutions. See previous comments by myself on this page for some the possibilities (nix/docker-compose) and how it's possible to share between local, gitpod and codespaces the same source tree. <3
For reasons of personal taste, I just don't like browser based development (not to mention how resource hungry it can be), and I get antsy when relying on third-party hosted services for day-to-day work. I like to treat my laptop as a fully-integrated, offline-capable *, cheap, almost disposable development environment. If I accidentally destroy my filesystem or whatever - which has happened at least once :) - I want to be able to stand it up again and get to productivity within the day.
I appreciate that hosted services are appealing because they "solve" exactly this problem. But I want a locally hosted solution, thanks.
Is it just a matter of code storage (git repos, backups, whatever) + VMs/containers + IDE? Is everyone cobbling together their own solutions? Are there recognised standard approaches, or are they specific to the orgs within which they evolve?
My personal case is as a solo web developer, but I'd be interested in hearing from individuals and teams of any size.
* Edit: By "offline-capable" I more mean "offline-first". I'm occasionally nomadic, and use my laptop on a long train/plane journey where internet is unreliable or unavailable. Plus I have a hardware off-switch for radios to save battery. I'm also slowly implementing local caches of software installed with apt/pip/yarn/whatever so I can pop-up and tear-down virtual environments without necessarily needing an internet connection. (This is a work in progress.) So I'm not interested in cloud-based environments, but thanks to those who have suggested them.
I think that GitHub Codespaces are built on this technology. It should allow you (or any of your team mates) to start coding almost instantly, you need to install vscode and docker on your host machine and that's about it.
Rent a server in the cloud, install docker there, point your local docker to this cloud server and your laptop turns into a thin client.
That's a theory at least.
The upside being that you still have little to no "contamination" between projects dependencies, files and configuration, each project being entirely self-contained.
[1]: https://towardsdatascience.com/how-to-create-your-own-vs-cod...
https://nixos.org/manual/nix/unstable/command-ref/new-cli/ni...
https://news.ycombinator.com/item?id=28184068
nix develop nixpkgs#emacshttps://github.com/gitpod-io/template-nix
Personally I run all my software via nix, in a monorepo with a layout similar to google3, that generates/serves docker images via https://github.com/google/nixery, supports x64/m1, local development, codespaces and gitpod.
1. https://www.youtube.com/watch?v=VqwEnd_2Vzk (sorry for recording quality but it is worth watching and it'll change how you think about what is possible)
2. http://github.com/ghuntley/ghuntley (see .devcontainer/devcontainer.json and .gitpod.yml for codespaces / gitpod isomorph)
4. Come find us and hangout https://tvl.fyi/ <3
I have my laptop configured in powersafe profile (battery improvement and lack of annoying fans is a plus) and I get noticeable delays when working within my IDE on certain workflows.
I also from time to time travel and I'm aware of spotty internet.
Nevertheless I'm more and more enamored with the idea of owning cheap Pinebook Pro notebooks and renting a cheap server to run my IDE over VNC.
I can't focus on work while on public transport so that setup might work just fine for me in the future. Spend that time instead reading a book, win-win
As for cloud9 they closed their source and license when they moved to v3, but there is still a v2 descendant called Pylon IDE[3].
[0]: https://coder.com/ [1]: https://github.com/cdr/code-server [3]: https://github.com/pylonide/pylon
edit : https://theia-ide.org
https://www.gitpod.io/screencasts/continuously-prebuild-your...
Being able to resume from anywhere without thinking twice and having to checkpoint the code is also great. Off-loading compilation and editing to the cloud is the future of programming and already done at scale at large companies like google.
This link gives a 404.
Pull up a chair for a moment and consider that in this moment of time you are an open-source maintainer or a team-lead who has to review the pull-requests in the video below. Each browser tab is a brand new development environment, the git branch is automatically cloned, all dependencies are restored and your software has already been compiled.
Good? Now you understand what Gitpod is all about.
Clarification edit: cost/risk vs reward weighted is what I meant
Of course if you roll this out to the entire company to replace regular workstations, you probably want something with an SLA. Not sure what Gitpod's answer is, but Microsoft seems to sell Codespaces outside GitHub via Azure and there's probably a story for the enterprise version addressing this need.
I don't see a way of committing to use this service without also maintaining the capability required to operate as you are now on a moments notice. The SLAs won't be cheap either I imagine.
Don't get me wrong though, I think it's a cool service and I can see it going places. It just seems impossible to justify for small to medium sized shops, especially considering you can get the exact same benefits from containers and images right now (and even run your own centralised VSCode server).
> $ nix-shell
ie. https://github.com/gitpod-io/template-nix
or
> $ docker-compose up
ie. https://github.com/gitpod-io/template-docker-compose
ps. Did you know Gitpod is open-source and can be self-hosted on your own infrastructure?
Been using internally-managed reproducible environments for a while now, so I'm fully aware of the major benefits.
Will have to look into Gitpod more, thanks!
When maintaining an open source project, there's often a little bit of tension between making the development experience more productive for you, the maintainer, and more convenient for new contributors. Using a more complex toolchain might make things nicer for you as someone who works in the codebase every day, but adds overhead to anyone who just wants to make a single contribution related to their own work. I could imagine having a "click here to develop" option would help ease that tension.