Lunorian

Don’t follow the trends, and why I will keep using the Atom Text Editor

December 20, 2018

So every so often I’ll see a new blog post, or tweet, or video of someone talking about how they’ve configured vim to be the new and superior text editor. While I think that it is very cool to see text editors like vim and emacs making a comeback, I do not think they meet everyone’s use case. I want to be careful about following the vim trend and you should too. This post reflects on a few criticisms of the Atom Text Editor and my use of Atom.

Atom uses too much RAM and/or CPU Cycles so you should use vim instead

Screenshot of the macOS App Activity Monitor showcasing the Atom Text Editor's memory use

Memory utilization of the Atom Text Editor

I agree that Electron based applications such as Atom and Slack tend to use a lot of RAM since they run inside a stripped down version of the Chromium Browser Engine to run their application code inside. You are running a single page web browser with your app inside (it’s a bit more complicated than that, but you get the gist). A future version of Electron could possibly share it’s engine across different Electron Applications with the goal of reducing it’s overall memory use.

Electron is pretty cool as you write your application once and then you can deploy it anywhere, for smaller development teams this matters a lot as they often do not have the resources to test their application for platform specific bugs. It puts small development teams on an even playing field with the big software development companies. Consider the fact that instead of smaller application developers trying to manage computer memory on their own, now the Chromium browser engine is, this reduces many security risks normally caused by bad memory management from smaller and less experienced development teams. JavaScript Applications like any other piece of software are not risk free. This approach to software development simply changes the risks that the application’s developers have to address, potentially risks that they are better prepared to address. I would rather run potentially unsafe, less well tested, code inside the Chromium sandbox rather than on my own user account and memory space.

Consider that modern computers generally have around 8Gb of memory available to them. An app using a lot of memory, while not great, isn’t the end of the world. When I was a child, my uncle made a statement to me that sticks even to me today, “Unused RAM is Wasted RAM”, why add memory to your computer and then advocate to not use it? I am not saying to not be careless with your application’s memory use, optimizations remain important to building healthy applications, but rather that we should embrace the fact that applications are getting bigger and more complicated than they used to be.

Have you tried VS Code? What about Sublime? This other text editor?

Screenshot of the macOS App TextEdit

Yes I have tried VS Code, Sublime, and quite a few other text editors (including VIM, Emacs, and my favorite CLI editor Nano). They are all pretty cool text editors and they each have their own unique features and design. I followed the Sublime and VS Code trends a while ago and I had a lot of fun with each of them. That being said, Atom has always felt like a nicer editor to me and I keep going back to it. It’s just my personal preference (I even wrote this blog post in Atom). You do you, and I’ll do me, everyone is happy this way :)

Atom will be merged into VS Code

Microsoft and GitHub Logos Image Source: https://blog.github.com/2018-06-04-github-microsoft/

While it’s true that Microsoft now owns the company GitHub (who maintains the Atom Text Editor) also maintains the text editor VS Code. The two text editors are, at least for now unique projects with different goals. Perhaps many years from now the two codebases could in theory be merged into one text editor. However problems exist with this approach such as the two extension and theme ecosystems being merged into one big ecosystem while remaining backwards compatible. Merging Atom and VS Code would be a huge and expensive undertaking, contrary to what one would think it would not reduce the development burden on Microsoft and GitHub’s Development Teams and would require massive collaboration among both development teams and their contributors if you were to even hope that such a project would be successful. In my opinion it’s not worth the effort.

Another possibility that I see is that one of the text editors will eventually be discontinued (however I find it unlikely as so many open source developers continue to contribute to and rely on these text editors including Microsoft and GitHub employees). The more likely middle ground that I see happening is Microsoft and GitHub will focus more on promoting one of the text editors. When Microsoft acquired GitHub they stated that it would continue to operate independently of Microsoft, so this type of situation is years down the road, before we have to worry about it.

You just don’t know how to exit vim…

Screenshot of the VIM Text Editor, saving and exiting

Haha, very funny - but closing vim and saving your changes is easy, just type ESC :wq! into your vim terminal. If you are having trouble learning how to use VIM the man pages are a great place to start along with basic web searches. People are even selling special keyboard covers to help you remember how to do various tasks in VIM. Occasionally I’ll have to use vim to write a Git commit message and I understand the basics of vim.

What’s your point?

In closing there’s a few things I hope that people will take form this. You don’t have to switch away from Atom to vim, it’s a matter of personal preference, don’t feel pressured by the trends. Take a look at all of Atom’s unique features, it may use up more system resources than vim does, but it also provides so many more unique features. Finally consider all of the choices you have for your text editor, it’s taken many years but we have several choices of text editors, take a look at all of your options and make the best possible informed choice that works for you the best.

Suggestions or Feedback?

I’m always open to your suggestions and/or feedback, if you have suggestions or feedback on this blog please send an email to me@lunorian.is I’d love to hear from you :)


Blog of Nathaniel Suchy. I write cool stuff in Ruby & Ruby On Rails :)