Hacker News new | ask | show | jobs
GitHub Codespaces vs. Gitpod: Choosing the Best Online Code Editor (hackernoon.com)
50 points by okikio 1749 days ago
7 comments

It's nice when there are two winners that you can hop on and off of and move to the other as you please - as hackernoon indicates he is doing.

This indicates that your code is free to move about and not so stuck in a "walled garden".

Heya, Geoff from Gitpod here. From Gitpod's values at https://www.notion.so/gitpod/Brand-Values-2ed4c2f93c84499b98...

> 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

Dumb question, from someone who doesn't use web-based instant environments like these: what are some popular "locally hosted" alternatives?

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.

You can use nix to provision a dev environment from a package derivation:

https://nixos.org/manual/nix/unstable/command-ref/new-cli/ni...

https://news.ycombinator.com/item?id=28184068

  nix develop nixpkgs#emacs
Nix is <3. Here's a template where you can take it for a spin on Gitpod.

https://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.

That sounds interesting, do you have a link?
Yes!

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)

3. https://code.tvl.fyi/tree/

4. Come find us and hangout https://tvl.fyi/ <3

Some people do everything in local containers, with one container for each project, the same way others do it with a vm on a server[1]

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...

Not sure fully integrated and cheap/disposable go hand in hand. Depends on what type of integration you have.

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

Check out https://code.visualstudio.com/docs/remote/containers

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.

Warning though, it's ram hungry. Not gonna run well on a $5 droplet.
Thanks for this warning. My local environment is an old ThinkPad t420 maxed out at 8.9Gi RAM. I do as much as possible in the terminal. If VS Code won't run well on a Droplet, it's unlikely to be an option for me.
I wonder why coder.com[0] is not mentioned, the ide is also open-source[1].

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

I didn't mention coder because I haven't actually used it, so any comments I make on it wouldn't be based on my experience, and my goal with the article was to give you a realistic view of what its like to use both Github Codespaces and/or Gitpod.
There's also Theia (from Eclipse Foundation) who have a self-hosted version, and is compatible with VS Code extension.

edit : https://theia-ide.org

Which was created by Gitpod [TypeFox] btw (same story with open-vsx as well) :)
I have to assume that neither of these services has invested in high-end hardware that would help to reduce compile times. If they did have high performance machines, compile time savings would be clearly promoted from landing pages. Fair assumption, right? What kind of solutions are people using for remote dev for this?
Heya! Gitpod deploys Kubernetes nodes with 64gb of ram and 16vCPUs. In additon to this we precompile your application (CI/CD style) so you don't need to wait for compilation when reviewing co-workers work.

https://www.gitpod.io/screencasts/continuously-prebuild-your...

Wait I'd like to update the article with this info, do you have a link I can reference in the article?
Let's chat over at https://www.gitpod.io/chat. I'm Geoff.
Why would anyone use an online code editor?
> why?

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.

https://www.youtube.com/watch?v=j7BINiu_Rbo

What is the benefit over pulling an image or container though?

Clarification edit: cost/risk vs reward weighted is what I meant

It just works and attacks such as https://www.trendmicro.com/vinfo/au/security/news/cybercrime... are greatly mitigated :-)
It "just works" with no local setup.
What if you weigh that against the cost and, perhaps more importantly, the risk of laying dead in the water due to third party service outages?
The moment these have an outage, you just switch back to the old way of doing it - on your local machine.
The code is still in git and on GitHub, the workspace is ephemeral. You can always clone the repo and work locally. I think the idea isn't to 100% replace all local workflows necessarily but to supplement them and to enable working in situations where you don't have access to a developer workstation otherwise.

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.

It’s great to be able to bang out some code on a tablet or a Chromebook without Linux access.

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.

So our computers are getting more powerful every day for nothing but Electron?
My laptop definitely doesn’t have server grade hardware in it and the battery grinds to a halt when compiling larger projects.
Computers are getting more powerful every day and _how we use them is changing_.

https://ghuntley.com/the-office/

> What happens if you get in a van accident and that results in you becoming homeless once again? <https://ghuntley.com/how-long>

This link gives a 404.

I'm not a user, but I have experience with one use-case where I'd imagine they're very useful:

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.

Here are some reasons that motivated github devs for example https://github.blog/2021-08-11-githubs-engineering-team-move...
Sometimes one just needs a terminal running remotely. Otherwise, code-server is good enough and works well without much marketing fluff.