DevOps also includes development!
Modern development should not be bound to any client attributes (it should not matter if the client is a RISC-V Linux machine, a locked-down Windows workstation or an Android phone)
Development should be possible from any platform, for any platform
The only truly cross-platform application framework is the web
PWAs make it possible for web apps to have all the features native apps have
PWAs work offline by default
Why not make our development environments PWAs?
Virtual machines and user-friendly hypervisors and containers make it possible to run the editor’s backend locally too
Source code can for example never leave the company’s system
Development environments can be quickly updated and tightened to prevent supply chain attacks and increase reproducibility
Imagine: You find a Free Software project, and all you have to do in order to contribute is press “.”!
Onboarding new developers becomes much easier
Independence of client choice enables the use of much cheaper or constrained client devices
Open standards and web technologies enable the adoption of new client and server hardware (i.e. RISC-V chips) easier and enables the easy use of and testing on multiple architectures
Autoscaling, ballooning etc. can be used server-side: There is no need to provision lots of development servers if no one is using them, and if there is a need for a lot of resources (for example if someone is compiling say a C++ project) the provisioner (i.e. Kubernetes) can dynamically decide to scale up the container or VM
There is no need to trust a project’s build system, everything can be sandboxed!
There are already multiple “cloud IDEs”
Most are based on VSCode (or, to be more precise, VSCode’s API specification)
VSCode (or its libre forks, like VSCodium) is already based on web technologies (Electron), so adapting it to run in the browser is possible
Theia is an example of an alternative implementation of VSCode’s API, which serves as a vendor-neutral implementation of VSCode
Cloud-Native IDEs can either be self-hosted or public SaaS, so let’s take a look at some of them!
GitPod: Live demo
Codespaces: Live demo
pojde: Live demo
But what if we want to develop things that one can’t normally develop remotely?
Apps which require Android devices as a target, require a programmer, USB or Bluetooth and are not using Web Bluetooth/Web Serial (i.e. Android apps, smart home projects, IoT devices, Arduinos)
Apps which require a Wayland compositor/a screen (i.e. desktop Linux apps, GTK/QT apps)
Apps which require public ports
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4