We can sympathize with [Benjamin Cabé]. He has a lot of development boards and it has become painful to maintain the many toolchains for each board. We’ve also suffered from upgrading one tool breaks another tool in some obscure way. His solution? Use Github Codespaces which you can get early access for beta testers.
The idea is that you can spin off a container-specific to a GitHub repository that has all the proper versions and dependencies required to work with a project.
If you sign up for the beta, you’ll be on a waitlist, but it is interesting to see [Benjamin] go through the steps. The service is free during the beta and you get two codespaces. Presumably, you’ll eventually be able to pay for more capability.
The idea is good, but we’ll have to see about the implementation. A preconfigured container might move from machine to machine or even to deep storage for later reconstitution. Flashing the binary image to the device looked painful from the browser. We’ve seen it done nicely with, for example, the online Arduino IDE but it did take some installable software helpers to do that.
We’ll be curious about how many different platforms this will support. However, you can roll your own version of this and avoid the cloud using Docker or even a full-blown VM like VirtualBox. Sure, it is more work, but you control your destiny. Add something like Platform.IO and your choice of development tools and you can avoid having so many competing development tools all in your main computer.
A bit similar to the setup I made around arduino-cli and gitlab ci, all using containers:
https://www.youtube.com/watch?v=-oBBWSjnOVU
Thats why I love NPM. Just share a package.jsom
Ah yes, share the package.json and then run npm and now you’ve got 8GB of node_modules nest 200 directories deep because every package has its own copy of all its dependencies so 95% of it is redundant packages.
Personally, I’ve used the VM approach for a while as many toolchains also have OS dependencies that are unavoidable (thanks full fat visual studio framework!). Longer term I wish the _hardware_ companies that mush toolchains together, typically very badly, would be more open and allow the likes of platform.io micropython and plain old’ gcc/clang to support their devices – fewer toolchains makes for saner devs!
I wish all hardware companies would just make their hardware compatible with Microsoft’s vision of software development.
Until then, Microsoft will help you go there today with CodeSpaces.
And what vision is that? The closed propriatery one? Or the one with outdated language to the compiler support one? How many avr or MIPS compilers do they have?
Do they even do anything low level embedded?
Microsoft doesn’t provide the compiler, you can use any compiler you like including your own (I use a custom gcc fork myself), and VS Code is open source under the MIT license.
Educate yourself. You’re just making the open source community look bad.
“Do they even do anything low level embedded?”
They have an IoT platform, so yeah, they do.
Surely Azure RTOS qualifies as low-level embedded? 🙃 https://github.com/azure-rtos
this is what https://www.gitpod.io/ is for? and they are open source now :)
You can netboot a machine into a minimal Linux install, just enough to run Xen hypervisor then even run your VMs from images on a remote NFS share, this makes your setups totally portable and easy to backup and restore etc. You can do this with a machine that is otherwise a Windows based “games” machine or whatever, or move around from one physical machine to another in a lab or hackerspace.