Facebook has released the code of its native Atom-based tool called Atom in Orbit. The latest development is aimed to provide developers a remote development environment that can run right in a browser.
Based on Nuclide IDE, Atom in Orbit gives a standard user base and some extensions to help developers examine their code without any integrated development environment (IDE) on their desktop. The tool has the same keyboard shortcuts that were previously supported by Atom. This gives a cosy experience to developers who are quite familiar with the open source desktop editor.
Facebook product manager Roy Zhang lists several advantages of the web-based Atom. “While web apps in general offer several advantages for engineers — for example, automatic backups, remote access and server-side processing, Atom on the desktop still enjoyed several features that were not available in the browser, such as synchronous access to the filesystem, access to local resources, natively implemented dependencies, access to native APIs and unrestricted access to the internet,” Zhang said.
“During the hackathon, the engineers found workarounds to these obstacles and contributed a set of scripts that repackages Atom’s source so that it runs as a web app,” he adds.
Facebook is not the only tech giant that has brought the concept of cloud-based development environments for browser access. Google integrated Eclipse Orion within its Google Cloud Shell, while GitLab recently brought a similar IDE through Koding cloud-backed IDE.
Challenges against desktop version
Facebook’s Atom in Orbit is certainly an advanced solution over a tradition Atom on the desktop. However, it comes with some challenges in the initial stage. Synchronous access to the filesystem via the fs module is not working on the browser version. Additionally, there is no access to native APIs and unrestricted access to the internet.
You can access the coding of Atom in Orbit from a GitHub repository. It also includes necessary documentation to enable easy customisation of the original tool.