One use case I forgot to mention and I want to share. In some scenarios, engineers need to work on more than one project and they have completely different set up, which would be difficult for them to maintain multiple environments on their laptops. Back to our docker example, if project A requires docker desktop 4.1.0 and project B requires 4.7.0 it would difficult for the engineers to manage that. I know this is an extreme example but good enough to make the point. This scenarios happen a lot in consultant business where one engineer need to work for multiple clients at the same time.
In terms of desktop codebases, do you mean native desktop application development? I think that is a tricky one as well for similar reasons as mobile development because you need to run the apps on a specific OS for testing. But if one finds a workaround for testing, then writing code on Nimbus environments should be as good as on your local environments.
About the concern the big brother can always slip a timeclock in there: haha~ as an engineer I feel you. That is never the goal of Nimbus and I would not want my boss to stalk my every single keystroke.
Actually the larger the organizations the more necessary a cloud-based dev environment solution. That is why all the tech giants have a solution internally like Nimbus and all organizations with more than 500 engineers that I have talked to have something like Nimbus.
> To me this seemed like a novel way to enforce strictness in SDLC for junior devs writing javascript-like code...
The key is not to enforce a strict SDLC. The key word is `Consistent`. I can see some exceptions where teams want to have inconsistent environments but I believe vast majority of the teams want to have consistent environment within their eng org. It means easier onboarding, fast recovery, and better collaboration.
> ... but never came close to having the real IDE on your machine.
If you are doing iOS development or something similar I would agree that IDE on your machine is a necessary. After all, you still need XCode. (even that, I see technologies are catching up...) But other than those native apps, I don't see real difference between a local vs cloud dev environment.
Can you share some examples? What can you do on local but very difficult/impossible to do on cloud dev env?
> If you need reproducible builds? Why not just use docker?
Here are some of my thoughts:
Of course, there are various solutions to those different problems. I believe we are one of them. Moreover, I believe we can integrate with other solutions to solve the bigger problems.