My peek on Atom

People who know me already know: I’m a tool maniac. I can spend hours searching for the perfect configuration of keys, plugins, colors, themes, debugging tools and so on, and unfortunately this is how I waste a lot of time every now and then. Text editors and IDE are one of these big tools that I cannot stop searching for the perfect one. The real problem, though, is that I cannot find satisfaction for more than a month on a particular editor, so, during my life as a coder I used with a certain degree of experience tons of editors such as Vim, Emacs, Sublime Text, GEdit and much more. Honestly! Look at this! If  I had spent less time on tweaking my editors and more on coding, now I would have more side projects completed for sure. Anyway…

I have a certain envy for those developers that are able to stick on, for instance, Vim for more than 20 years. They are happy and enthusiastic of their editor! Lucky them! But I’m not in this way. Maybe I find the exploration more rewarding. I don’t know.

So, coming back to the topic, when I used Linux I was happy too and my favourite editor was by far Vim. Yes, the learning curve is steep as hell but this thing has never scared me (I try to learn too many newborn and cryptic programming languages to be scared by a text editor, complex or not that may be. Then, a couple of years ago, I moved back to Windows and I started to work on bigger project. For some reason, my pleasure and muscle memory in using Vim began to disappear.

Now, there is a long story made of IDE and text editors but I don’t want to spend too much time talking about my evolution (or devolution, your call) in the world of programming editors. The real goal of this article is to explain why, for now, I’m happily landed on Atom, the text editor mad in GitHub.

First Round: the disappointment

My story with Atom started at the very beginning of the Atom editor: when it was in closed beta. When I learned that GitHub was developing a new text editor, you will certainly not be surprised to know that I was very interested in it! So I signed for the beta and I started waiting.

Unfortunately, you may remember that the first months of Atom were a full of uncertainties and, in general, disappointment from the developer community. First of all, Atom was available only for Mac OS, leaving us Window users looking at the editor from the “window” (ahahah, very sad joke!).  Then, it was not clear the licence of the editor. The community was hyper-hyped for an open source version of Sublime Text, but from the GitHub team arrived only uncertain words. Not only there was no claim that Atom would be open source but they also spoke of “payd features”. An huge low blow to the excited community.

I was disappointed too, but I tried to install the editor anyway. Than, a bigger disappointment stucks me in the middle of the face. Atom was a complete bloatware. The startup time was terrible and the reactivity of the interface was a complete disaster too! The editor lasted on my PC for less than a day.

Second Round: the rebirth

About a month ago, I decided to give to Atom another chance. I was still marked by delusion for my last experience but I thought that it deserved another possibility. I’m a good man after all. In the meanwhile the destiny of Atom was made clear by GitHub: Atom is open source (and always will be, I think). This was a nice point, indeed.

When I started the editor I was really surprised: the startup time was fast! And also the interface looked much more fast! That was a nice surprise! In short, it was usable and so I started using it. Now, after a month I’m still using it! This is the best thing! :D

The good things

Atom has a lot of good points:

  • APM. The Atom Package Manager is nothing more than a slightly modified version of NPM, the package manager of Node.js.  Nevertheless, it is the best package manager I’ve ever seen in a text editor. It works from a command line, it has a lot of command, allow you to star and synchronize installed package between my PCs and a lot more.
  • Plugins are powerful. Atom is, in practice, a stripped version of Chrome. As a consequence, plugin developer can do almost everything. The plugin system for atom is powerful like the Emacs one and for sure more than the Vim one.
  • GitHub Integration. You don’t say? From an editor made by GitHub I did not expect less. This is a nice thing. It can be replicated in many other editors but in Atom is “free” and also nice looking.
  • Appearance. Atom is very polished, customizable and nice looking. This is not the most important feature but I enjoy some good appearance for a software I will look for several hours at day each day!
  • It works. I don’t know how to describe this, but there are a lot of small things that make my workflow more natural.

The bad things

Atom Memory

Unfortunately there are still a lot of bad thing behind Atom. The biggest problem of Atom is called “Chrome Syndrome” and it is the direct consequence of the Atom’s essence to use Chrome in order to run its JavaScript core. Look at the image! This is Atom, freshly started, with two tabs. We have 5 processes and more than 130Mb of RAM! Just for this!

This is an huge drawback which can really penalizes the use of Atom in several systems. My fortune is to have two powerful PCs with 8Gb and 16Gb of RAM, but I understand that this is not the general world situation.

Conclusion

For now I’ll continue to use Atom. I’m sold. Probably this will not last forever, no editors last forever on my PC! :D But it is a good candidate.