Atom is a text editor published by GitHub since 2014. It’s based on Electron, a technology that allows desktop applications to be made with web technologies. In recent years, it has established itself becoming a widely used tool despite criticism.
Atom’s specificity is its rendering system that is the same used by websites. It comes with a lot of freedom for developers, but also the heaviness. The version of Atom 1.26.1 weighs about 140 Mo. That’s massive for that kind of tool.
What is in this package? Atom’s code of course, some of its extensions, but also the web rendering library. That why when you run Atom, it is almost as slow to start as a web browser.
Atom can update itself using a quite common Electron tool: Squirrel. It regularly check for updates on a dedicated to ensure you have the latest version. If it found a new Atom version, it downloads it and installs it without any user interaction.
Let’s face it: UX is perfect. New features are available quickly, bugs fix arrives quickly. However, this system bothers me because :
- its logic is bad: it is a backdoor, even by publishing the server code, it does not provide any guarantee its not compromised
- it conflicts with the package manager. Instead of reinventing the wheel, why not contribute to packaging?
If you are interested by Squirrel, you can check how Squirrel works in detail.
Hopefully, we can disable this system.
My usage of Atom
Of course, with such a start-up time, it is not very comfortable to use it as a main editor. Vi is obviously much more reactive. However, it becomes an interesting candidate as an IDE. Customizable at will, with a system making writing an extension really simple, Atom is a good choice in this context.
GitHub already realized this. I think that’s why they are developing Atom IDE.