DEV Community

Cover image for VS Code vs Atom - how to decide?
Arek Nawo
Arek Nawo

Posted on • Originally published at areknawo.com

VS Code vs Atom - how to decide?

This post was taken from my blog, so be sure to check it out for more up-to-date content.

I think we can all agree that there's one thing every programmer needs, and no, I'm not talking about the computer - it's too obvious. I'm talking about software - the text editor. Whether it's a GUI-based or terminal-based, IDE or not and etc. it's always a necessity!

In my case, as I'm mostly doing web development, I don't need anything special. In the JS ecosystem, all tools are just enough intuitive and easy to use, so that I don't need any kind of special IDE or any other layer of abstraction over them. Now, when it comes to comfort, it's a whole another story. Maybe I don't need an IDE, but it didn't stop me from trying more than 10 different text editors - simple ones, IDEs, VIM-like and more... - just to find the most comfortable one for me to use. And man! - it took me quite a while...

Long story short, I settled down upon VS Code, yet I still have the 3 others of my favorite code editors installed, these are WebStorm, Sublime Text, and Atom. As the first two are paid ones and provide a similar set of features to extendable editors like VS Code and Atom, most people will be deciding between these.

Some background

Because your reading this post I bet you already know at least something about Atom and VS Code. For those of you who don't know - here's a little info.

Both the VS Code and Atom are open-source code editors, originally created by Microsoft and GitHub respectively. Each of these editors is based on Electron - a framework for creating "native" desktop apps with web technologies - HTML, CSS, JS - with the addition of Node.js. By "native" I mean pre-bundled with Chromium - the more Chromiums the merrier, right? The editors are considered suitable for use with different programming languages, but it's a no-brainer that they work best for web development, especially given the way they were built.

The editors also feature modern-looking UI, advanced syntax highlighting and well-developed extensions and theming system. Which we'll talk about in a moment, to compare the two, but first...

A bit of History

From the historical standpoint, Atom came first. Released in 2014, Atom was the first piece of software built with Electron (which at that time was named Atom Shell) and also the one that Electron was originally created for. It was and is marketed as a "hackable editor for the 21-st century". After a short amount of time, the editor took off in terms of popularity, and became fully open-source (at the beginning only some parts of the code were), together with Electron.

Open-sourcing Electron led to the creation of a lot of different apps, that are now used by many people every day. One of those apps was - you guessed it - VS Code. A code editor meant to "redefine" the overall development experience.

Even though the two editors are pretty similar at their cores, VS Code proved to be the superior one - especially when considering the performance. As time passed, more and more users were choosing VS Code over Atom. It's becoming increasingly more popular and thus developed a greater community and user base.

From the more recent history, VS Code was considered the most popular development tool in all categories, in the recent Stack Overflow Developer Survey from 2018. With that said, Atom is still widely used. But, with the acquisition of GitHub by Microsoft, things aren't looking good for the Atom editor. Although it's an open-source project developed by its community, contributions from the creators from GitHub were definitely forming a significant chunk of the entire code-base. Even with Microsoft becoming lately a more open and FOSS-supporting company, it doesn't make much sense to maintain two very similar tools, when one is better than another... or is it? Well, it remains to be seen. As for right now, Atom is still kicking and we're going to have a brief comparison of both of these editors.

Design

Let's start our comparison from the most "controversial" category - design. Now, I know that personal preferences may vary in this category, but I'll try to provide at least my own perspective.

So, both Atom and VS Code look arguably nice out of the box. The use of HTML with CSSunderneath makes it easy to pull it off. They both feature nice, dark or light, minimalistic design, together with vast theming options. Again, thanks to CSS, you can easily create your own custom themes for both editors or use ones provided within the extensions registry - there's a ton!

In my opinion, the well-designed UI is the one that doesn't distract you or make you think about it even for a moment. That's why, whether I use Atom or VS Code I always use a similar-looking theme, based on Google's Material Design. It's not hard to find one, as the best options for both editors are ones that are the most popular, and have the highest download counts.

With all that said, I always have a feeling that Atom's Atom Material UI looks nicer to me than VS Code's Material Theme. Combined with Atom's general UI layout, it just has this cleaner look to it, even when compared with still awesome VS Code. Also, while it rather applies to themes rather than code editors themselves, Atom Material UI developers have done a much better job with contrast, especially when considering the light version, which I use very often. Still, I remind you that it's a matter of preference and you don't have to agree with me at all. Anyway, here, the point goes to Atom.

Performance

Different people say different things about the performance of Electron-based apps. That they're slow, that they consume a lot of memory and etc. And, while I can deny that there's some truth to that statements, different apps don't necessarily have the same performance issues as the other ones. Of course, if you only care about raw performance, my recommendation would be to go with the paid Sublime Text, which is one of the fastest code editors on the entire market right now, but, as we're comparing only Atom and VS Code, you can take that as kind of a reference point. Generally, both of these fall between Sublime Text and WebStorm (a full-blown IDE) on the performance spectrum. But where exactly?

Even if Atom was the first, everyone who has used both of these editors, at least to some small extent, must agree - VS Code is just faster. Everything connected with it is fast, smooth and performant. So, how is Electron faster than... Electron?! Well, the answer comes in the form of optimizations... and extensions. Both editors feature an impressive amount of 3rd-party extensions, themes, and tools available, to help you customize them to your own needs. But, as these extensions are generally very heavily used, they definitely have some impact on the overall performance of the app. The best example of this is a little label in the Atom's extensions center, indicating the amount of time added to the load time, by the given extension. People behind the VS Code has just done a much better job with making all these extensions (or rather the architecture behind them), less performance-hungry.

Of course, Atom's developers recognize the problem and are constantly improving their product. Most recently they were working on the Atom's file explorer with some impressive results! They drastically improved the search speed (especially seen in large projects) with the help of Rust-based regex library (and most likely some WASM). So, I only hope that these performance improvements will continue, eventually match VS Code's offering...

Ecosystem

Now, as both the VS Code and Atom have extensions and theming systems of their own, let's make a brief overview of those too! If raw stats are what you care about, then I think you'd be happy to hear that both of these editors have around 11K - 12K published extensions and themes, with VS Code having only a tiny little more.

Both extensions registries are available through the editor or on websites - for Atom and VS Coderespectively. You can easily install an extension with a simple click of a button and no reload at all (only recently added to VS Code) in both the editors. The same goes for the removal process.

As you can see, the extensions system is as simple as possible from the user stand-point. What about the extensions developers tho? Both official docs (Atom, VS Code) feature detailed and in-depth guides and API references. When comparing the two, I think Atom's one is a bit more beginner-friendly than VS Code's. Maybe it's because of VS Code's more complicated architecture when it comes to extensions. But, all in all, if you want to create your first extension, maybe first go with Atom, to get a glimpse of what it's all about, before heading to VS Code...

Configuration

With tons of extensions and customization comes a lot of configuration. And, whether you agree with me or not, it represents an important part of the overall user experience of the editor.

Configuration of VS Code involved only a simple JSON file... up until recently. Now, whenever it's possible, a GUI interface is available. It's fairly simple, but it does its job, and it does it well. It's just a small abstraction over what we had already available with JSON and TS-based autocompletion.

On the Atom's side, things look only a bit different. Instead of having a singular JSON file to edit, you have GUI everywhere! The editor settings themselves are completely separated from the extensions, as each of those has its own, dedicated page. I consider this a pretty good approach. Sadly, some users report lags and other performance issues, during the configuration process. Maybe it's because of them having just too many extensions installed? Personally, I haven't experienced similar issues, maybe because of my fairly small number of installed extensions, but who knows?

Experience

Now, let's analyze what has been said once again, with some additions, to determine what the general experience of using the given code editor is.

While Atom looks gorgeous with its minimalistic UI (for me at least), the performance of VS Code is something that cannot be shaded by good design. Besides, VS Code still looks cool! Both editors have a vast collection of extensions to choose from and fairly simple way of configuring them.

Something that I haven't yet talked about is the overall "development comfort". What I mean by that is just how pleasant it is to write code in the given editor. As I cannot talk for languages other than JavaScript, here's my web-development-tailored opinion - VS Code nailed it! I think it isn't a surprise to anyone. As one and the same company - Microsoft - created both the amazing code editor and productivity-enhancing JavaScript subset - TypeScript - these products are destined to work well together! And work well together they do, with TS providing autocompletion and all so-called "intellisense" features you can only dream of without TS. Atom still has its own extensions to do the job, but they still have a long way to achieve the same results as VS Code is currently offering.

But, Atom also has a few tricks in its sleeve. What I consider the biggest one is its GitHub integration. Because of Atom's previous affiliations with GitHub as a company, this feature is kind of... predictable. Up until this point, VS Code has a fair number of GitHub-related extensions, but none of them were able to replicate what Atom has to offer. Yet, because of the latest Microsoft's acquisition, things might start to change...

Decision-making process

So, these were just my both subjective and objective opinions about these two editors. Now, it's your time to choose! Especially for beginners, it might be a very time-consuming process, so I recommend you to just try out a little of both, to finally pick the one. And even then, remember that your choice doesn't have to remain unchanged. If you've already made up your mind - good for you! Consider letting me know in the comments, what's your editor-of-choice?

I hope this post provided you with at least some interesting and useful information. If it indeed did so, think about showing your support by following me on Twitter, on my Facebook page, or just by checking out my personal blog. Again, I hope you liked the reading, and wish you a nice day!

Top comments (14)

Collapse
 
georgecoldham profile image
George • Edited

I moved from Atom to VS Code just to try it... not looked back.

There was nothing wrong with Atom, but everything about VS Code just feels a little smoother, more polished, less clunky. Not really sure how to define it. Just fits my way of working better somehow.

Collapse
 
andrewbrooks profile image
Andrew Brooks 👨‍💻

I'm definitely a VSCode fanboy. I have used atom but had trouble with the speed and VSCode is very snappy, although it consumes quite a bit of RAM being electron based.

I also think the extension library is one of the best you can find.

Collapse
 
bettercodingacademy profile image
Better Coding Academy

Hey mate, great post! Love your analysis.

I personally have used Atom for nearly two years. I've gotten so comfortable to using it that I had actually developed a few little plugins for personal use, just to make my day-to-day development workflow a bit smoother.

However, I decided to give Visual Studio Code a shot - and I do find VSCode to a be a lot nicer. It's way faster than Atom, and I didn't think that it would be noticeable - but it sure is. Built-in terminal support is also a huge plus.

However, I personally found VSCode's default settings to be a bit meh... however, after thorough configuration I've reached a state where I am quite comfortably productive with it! Been using it for the past 6 months, and I don't see myself going back. :)

Collapse
 
rakeshkv profile image
Rakesh kv

I tried most of the editors and IDE. Finally sticked to jetbrains webstrom as my primary editor. It makes my day to day work much easier. I still use vscode as my secondary editor. I also recommend vscode , if you're not interested in IDE.

Collapse
 
prahladyeri profile image
Prahlad Yeri • Edited

I use Notepad++ editor which almost doubles up as an IDE with the right plugins installed. It suffices my needs so I've never bothered to look at the Atom/VSCode. If I ever felt the need for a "proper" IDE then I'd rather go for something like eclipse or netbeans instead of these electron abominations.

I'm not sure what the future of desktop programming will look like few years down the line but I really hope it doesn't consist of a framework that requires you to ship an entire browser along with your app! Maybe JavaFX/Qt or something from the Microsoft stable like Winfroms/WPF/Core tuned to be OS-independent otherwise we'll soon be needing super-computers to do our daily tasks!

Collapse
 
natonathan profile image
Nathan Tamez • Edited

Remember Atom & VS code are not IDE's, there are text/code editors. and well I do install Notepad++ on every windows computer I use. both atom & VS code are a lot better then Notpad++ for programming. I use Visual Studio and IntelliJ as my IDE's. I use VS Code for most projects, as IDE's are generally bolted and sluggish.

Collapse
 
redoxeon profile image
Michael Harding

I used atom for a long while, but when I tried vscode, the performance made me switch over and get all my configurations set up in it as quickly as I could manage. I'm really hoping that Microsoft combines the 2 teams sooner rather than later, vscode would be even faster than it is!

Collapse
 
tarifa10 profile image
tarifa-man

hello dear - many many thanks for this article it is great

i am pretty new to all that. Question: is VScode only a editor or can we do myore.

i am just diving into Python and i have started to code in Python literally 5 minutes ago. so do not bear with me - with this beginner question. Which is the right Editor for me to start.

Is Vscode capable to run code and to store the output of the code - eg. from the code below!?

I want to be able to export the data I have scraped as a CSV file. My question is how do I write the piece of code which outputs the data to a CSV?

the question is: can we run in VSCode the code below - and have a closer look at the output? does VSCode execute the code - and store the file somewhere on the machine!?

note - this is devinitly no coding question - those would fit on SO - no this is a superuserquestion that is aimed to get the right tool to start...

import csv ; import requests
from bs4 import BeautifulSoup

outfile = open('career.csv','w', newline='')
writer = csv.writer(outfile)
writer.writerow(["job_link", "job_desc"])

res = requests.get("implementconsultinggroup.com/caree...
soup = BeautifulSoup(res,"lxml")
links = soup.find_all("a")

for link in links:
if "career" in link.get("href") and 'COPENHAGEN' in link.text:
item_link = link.get("href").strip()
item_text = link.text.replace("View Position","").strip()
writer.writerow([item_link, item_text])
print(item_link, item_text)
outfile.close()

the question: We now should be able to run this in VSCode ( and yes: i do not think that we need a fully fledged IDE as PyCharm) and besides that we also should be able to run this in ATOM too- i guess that we can now open the py file and run it with the ATOM extension called script!?!?

What do you say -what do you think about this "extension called script or the other one called Hydrogen!?!?

Collapse
 
phillyflip profile image
PhillyFlip

You are not new to python. You've been using it for 7 yrs now and asking the same questions repeatedly under at least 10 user names. Why don't you check the responses you got on neowin, bleepingcomputer, linuxquestions for starters?

Collapse
 
anpos231 profile image
anpos231

I don't know if it's just me but:
Atom is almost unusable on Windows! It's lagging horribly, VSCode on the order hand is very fast and fluid.

It's a completely different story on Linux though.
On Linux it's the Atom that is very fast, and VSCode is lagging behind.

Collapse
 
highcenburg profile image
Vicente G. Reyes

At the start of my dev journey, I was a big fan of Atom. Until the startup took a gazillion years.

Collapse
 
er1ck profile image
Erick

Once you try VS Code, you don't go back - the extensions are also nice.

Collapse
 
larsklopstra profile image
Lars Klopstra ⚡

VS Code! Took me quite some time to get comfortable coming from PHP & Webstorm but it was totally worth it :)

Collapse
 
dowenb profile image
Ben Dowen

I picked VSCode, although I do have Atom installed for good measure!

Some comments may only be visible to logged-in visitors. Sign in to view all comments.