> 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
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.
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.
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.
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).
If Gitpod (!) or GitHub Codespaces is down (!) then if your team has successfully migrated towards reproducible environments then mitigation in disaster scenarios should be as simple as
So if our workspace environments are fully reproducible and trivial to deploy already, what additional benefits do these services bring to the table? (circling back to my original question :) )
Been using internally-managed reproducible environments for a while now, so I'm fully aware of the major benefits.
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.
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.
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.
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.
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.
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.
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.
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
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.
42 comments
[ 2.3 ms ] story [ 102 ms ] threadThis 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
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.
https://ghuntley.com/the-office/
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.
https://www.youtube.com/watch?v=j7BINiu_Rbo
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.
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
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
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.
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
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
https://www.gitpod.io/screencasts/continuously-prebuild-your...
edit : https://theia-ide.org