DEV Community

Cover image for Why I switched from Atom to Visual Studio Code
Ben Halpern
Ben Halpern

Posted on • Updated on

Why I switched from Atom to Visual Studio Code

I recently bought a new dev machine (after much deliberation, I went with a refurbished 2016 MacBook Pro). This was a great opportunity to reconsider the applications I use for my software development. I had been writing code in Atom on my old computer, and I was happy enough with it to not bother switching... for the most part.

I like the idea behind Atom, that it's super customizable with widely-known web technologies to ensure it's on the cutting edge in terms of packages written for it and fast adoption of new technologies. But it was slow, and not all that advanced in any special way. I was open to change.

I dip around between technologies in, mostly, the web development space, and I did not want a full-on IDE. There are a few options for basic code editors out there, and the idea of moving to something like Vim never really appealed to me. Atom and VS Code both lose badly in performance to Sublime.

So why did I go with VS Code?

People fucking love it. Between features, performance, use cases, etc. you can make a case for any editor, and I can't take two months to immerse myself in each one. I took the community for insights. In this thread from a few months ago "Which editor do you use and why?", the verdict was clear to me. Nobody raved about any editor like they did about VS Code. I read through most of the whole thread and the positive feelings towards this editor stood out above the rest.

Here are a couple examples.

VS Code. I Loveeeeeeeeeeeee VS Code, well it's been nearly 6 months with vscode. In this time period i used many other editor/IDE also like atom, sublime which i previously used too before Code, I recommend this to everyone, Please have a try once....

The main keys to use VS Code:

  1. Peek View
  2. Intellisense
  3. Integrated Terminal
  4. Built-in Git
  5. Task Runner
  6. Built-In Node.js Debugger

These all features are built-in
Highly Recommended for all the JavaScript and NodeJs Developer's

There are many more awesome features...

Have a try once,
You can ThankMe Later!

VS Code for sure! Absolutely love it! The Intellisense for TypeScript especially but excellent support for JavaScript as well as many other languages! So much faster than Atom particularly when opening very large files. Also I found Atom had far too many package errors too often, something I haven't ever seen with VS Code. I also prefer it over Sublime Text for several reasons: It's totally free, I don't have to pay $70 for it. Also I find it to be a far more modern experience. It also has monthly updates that significantly improve the experience each time, and there's a fantastic extension community. And all of those editors are better than Webstorm, which is far too clunky and slow of an experience for me.

I've heavily used Sublime, Atom, and Webstorm in the past so I based my decision very much off of experience.

People have different reasons for liking different editors, but people love this editor. It has now been a few days for me and I can see why people like it. The git integration is very convenient, and it seems well-designed overall. I'm not one to really fanboy over any piece of technology, but in my entire time using Atom, I never really felt like I was using an editor that was giving me all that much.

I still can't make a strong argument for any editor over another with regards to features and metrics, but the passion for this editor stood out and that was enough for me to buy in. In order to feel good about the choice, one also has to be confident not only in the present product in the direction of the project. I like what Microsoft is doing these days and I trust them to support and lean into VS Code and I am happy with the switch. Ultimately the editor only matters so much as it gets out of the way and lets you write software, but I'm happy with my current situation.

Update: Still using VSCode, and now everyone else is it seems.

Discussion (84)

prodigalknight profile image

I still use Sublime 3 because I've figured out what plugins to use to get a similar (if not better) experience with it compared to Atom/VS Code. I tried VS Code a few months ago, but I was too used to the Sublime Text keyboard shortcuts (Ctrl+Click for multi-cursor in particular) and I couldn't re-bind all of them due to bugs in VS Code itself. If they ever fix those issues, I may switch over for all but very large files.

johnbwoodruff profile image
John Woodruff

Have you seen the official Sublime Text Keymap extension? Microsoft released it a couple months ago (as well as an Atom Keymap extension). I have a co-worker who, once he got his hands on the Sublime Text Keymap extension, has never gone back to Sublime. He had used Sublime for years and kept talking about how it was the best, but VS Code won him over big time.

prodigalknight profile image

Yeah, I tried the Sublime Text Keymap extension, but as I mentioned, due to bugs in VS Code itself it can't remap multiple cursor selection to Ctrl+Click, and that killed it for me. I'm far too used to Ctrl+Click and from what I read, that sometimes (or all the time, I can't remember for sure) causes VS Code to try to run some or all of your current plugins on whatever word you're hovering over in the file you're currently editing.

Thread Thread
mapleleaf profile image

They added the ability to change the modifier for multi-select and hyper clicks.

Tons of issues and requested or "missing" features often get added in the next few release cycles, if not immediately. Better indentation for languages like Ruby and Lua was just recently introduced as well, for example.

Thread Thread
prodigalknight profile image

Hmm, I may have to check out VS Code again...

rubenmoya_ profile image

What's the name of those plugins?

prodigalknight profile image

Over time the list has changed depending on what I'm working on/with, but the core plugins (typically) consist of the following (not all are strictly necessary, some of them are just for [better?] visual effects):

  • Package Control (obviously)
  • CodeFormatter (mostly for when trying to decipher copy-pasted code I didn't write)
  • EasyDiff
  • Git
  • Github Tools
  • Jade Build (building Jade/Pug templates immediately for testing)
  • JavaScriptNext - ES6 Syntax
  • Monokai Extended (I like the additional syntax highlighting colors)
  • Open Folder (probably one of the handiest plugins next to SideBarEnhancements)
  • PackageDev (for additional syntax highlighting)
  • PackageResourceViewer (for when I want to make tweaks for my own personal use)
  • Pug (formerly Jade)
  • Seti_UI (I like the flattened theme, but I customized it heavily to look more like the Monokai Extended colors)
  • SideBarEnhancements
  • SideBarFolders
  • SublimeLinter (and contributing projects)
  • SublimeSVN (never did pay for a license though)
  • TypeScript
risingsungames profile image

I must be in the minority.

I use both VS Code and Atom, but I much prefer Atom. I have heard the argument that it is slow, but I have never found this in the many many months of using it. It opens within seconds, just like VS Code, so there's no reason for me to switch.

In fact, the only thing I use VS Code for is writing markdown files..

alsoicode profile image
Brandon Taylor

I switched from Sublime Text to Visual Studio code and never looked back. I mostly do TypeScript and Angular development, and the built-in TypeScript support plus a few plugins like npm Intellisense, Path Intellisense and angular2-inline make it my go-to IDE.

ben profile image
Ben Halpern Author

I haven't gotten started with intellisense yet, but I love the idea.

alsoicode profile image
Brandon Taylor

It makes a huge difference.

The time savings alone are worth the investment, not to mention being able to do things like peek at classes, navigate to other files using Ctrl + click, etc.

I like the idea of Atom, but found it a bit slow, even on machines with i7 processors and plenty of RAM. VSC runs really fast, even on my slightly older Surface Pro 4, and even faster on my new Surface (5).

For JavaScript / TypeScript based projects, I really wouldn't want to use anything else. I still do some Python development, and that's one area where VSC could use some help.

If VSC could recognize which virtualenv is active without having to start it from the command line, that would be really convenient, and if someone would port the Anaconda plugin to VSC, I wouldn't have to use Sublime at all.

stephenjbell profile image
Stephen Bell

I love Git integration. Highlighting the changed lines in the document and the scrollbar makes it easy to see where you're working when you're scrolling through your document.

One of the sore points for me with VS Code was a lack of "paste and indent", but that's easy to fix with an extension:

moopet profile image
Ben Sinclair • Edited on

Hasn't that sort of git integration been available in every IDE for years? I seem to remember NetBeans doing it with an option to use its own internal revision system as well as git, svn, cvs, etc, and that was several years ago. Even vim has had plugins to show git changes with little coloured markers in the gutter for that long.
Not that I'm saying it's not good in VCS, I haven't tried it - I'm just saying that what you're describing is not something that would make me think it was anything special.

ben profile image
Ben Halpern Author

Nice, installed.

johnbwoodruff profile image
John Woodruff

There's also several auto formatting user settings that accomplish the same thing:

Enter fullscreen mode Exit fullscreen mode

Note that this will format the whole document as opposed to just the pasted lines. However, if you like a cleanly formatted document, that won't be a problem. It may, however, take some tweaking to get the formatting rules to how you like them.

Thread Thread
johnbwoodruff profile image
John Woodruff

UPDATE: Just got a new version of VS Code released today! Now includes auto indentation:

Helps if you don't want the full formatting, just indentation.

aghost7 profile image
Jonathan Boudreau

I don't think popularity is a very good reason to use a specific editor. Editors are a very personal thing and should make sense for your workflow. Whether people like it or love it shouldn't matter, it should be about you anyways.

ben profile image
Ben Halpern Author

I'm not sure where the threshold would be, but at some level you need some popularity to ensure the best tools get written for the editor.

aghost7 profile image
Jonathan Boudreau

It isn't something to directly factor in. People will not use an editor which doesn't have good plugins so its more the other way around. It has more to do with how invested the developers working on the editor are.

edm00se profile image
Eric McCormick

On my new machine, I realized after a few days of work I hadn't installed Atom yet, but VS Code was on it day 1. Everything I felt could be better with Atom is in VS Code. I still use Atom and Sublime, but VS Code is where I default to now.

ben profile image
Ben Halpern Author

What do you still use Atom for?

edm00se profile image
Eric McCormick

The same I use Sublime for, having another editor handy for when I open so many screens I might go insane 😆.

soundstruck profile image
Dina Gathe

Okay, okay, okay! See what you made me do....I'm downloading VS Code now. Of course, right around the time I have all my Atom plugins stable and I'm super comfortable. But now you made me curious. :-)

tribex profile image
Joshua Bemenderfer

I kinda feel alone...

I started with Atom, tried to switch to VS Code but found it lacking so many times, then recently switched from Atom to Sublime Text 3 and am loving it. It has just about everything I loved from Atom, including packages, and is way faster.


mohessaid profile image
Mohammed E. MEZERREG

I too work with VS Code. I was working with Atom, but when it arrives in mixed content apps, Atom goes nuts. Sublime as well. The only company that provides product with full support for RTL and bi-directional languages is Microsoft. From MS Office suite to VS Code.

diogorg profile image

I'm trying to switch from Atom to Code. But is not that simple for me.
Atom have so much worst performance, but I didn't have any problem with that.
And I miss a lot of features from Atom. Like

1- The linter is so much simple in code, it doesn't have any highlight in the lines.
2- Can't highlight the changed files at explorer. (git changes)
3- A lot of miss packages/extensions.
4- All the laravel extensions made the emmet get wrong.

I like the interface. I think it is in a good way. But both Atom and Code have huge bad points. They looks like good choises in the future, not right now.

johnlukeg profile image
John Luke Garofalo

I just switched from vim to try out VS Code. I really like the file auto complete part of intellisense. I always have to guess what the relative path of files are when I import them and so it saves me 0.3ms a day not playing that game. The Git diff is really nice as well. I will make a pull request just to see the visual diff UI so this makes it so much easier. Great article Ben!

jorinvo profile image

For me deoplete does a good job at completing file paths in vim.
fugitive does a great job at Git and amost many other things shows pretty diffs with :GDiff.

johnlukeg profile image
John Luke Garofalo

That's great to know! Thanks Jorin. I just added them both to my vimrc :)

pluscubed profile image
Daniel Ciao

I recently got into web development. Coming from an Android/Java background using Android Studio/IntelliJ, I naturally switched to Webstorm. The key bindings, menus, syntax highlighting, etc. are the most familiar to me (+ Jetbrains' entire line is free as student). I've tried VS Code, and it is definitely much less CPU/memory intensive, but I don't know if the benefits are worth the switching costs.

weswedding profile image
Weston Wedding

I tried to get an old Java project up and running in VSCode and found myself having wasted a good hour before giving up and switching back to my IDE.

I can't imagine VSCode beating any of JetBrains' IDEs.

rdmihov profile image
Radoslav Mihov

For Java and C# (both .NET and .NET core) the IDEs are definitely better (I do wish I could use it for Java but the support and features are not there yet). VS Code is the best option you have if you want to develop .NET core on Linux (because it's much lighter than JetBrains Ryder).

JavaScript, Python, scripting languages and DevOps software scripts (Docker, Ansible, Terraform, etc.) is where VS Code truly shines.

jsalvador profile image
Juanjo Salvador

I used to be an Atom user like you, then I took a Microsoft in the knee.
Seriously, I love Atom. But VS Code has a lot of useful tools for web developers, and the Angular community is supporting VS Code, a lot. I started using it because my work needs it, and now... I'm VS Code lover.

johnbwoodruff profile image
John Woodruff

Fun to see my comment from months ago! :) Happily my love for VS Code has only grown since then! So many amazing features added in that short time, yet without compromising the elegant experience I came to love so quickly.

During the last few months I've gone back to Atom and Sublime a couple times but never lasted more than about 2 hours before I was back in VS Code. Also tons of amazing extensions in the marketplace, many many more than there were when I originally commented.

If you haven't tried VS Code, seriously, just give it a try for a few weeks.

rapidnerd profile image
George Marr

Very interesting read for sure, I was struggling between using a variety of editors for some basic JavaScript apps. I tend to stay within the Jetbrains area of IDEs and Editors seeing as I mostly use them. However I started to play around with visual studio code for a while and found it pretty nice to use. Specifically like the way that it has a built in terminal (most terminals end up hating me).

dmakovec profile image
Dan Makovec

I've been an IntelliJ user (Webstorm, Phpstorm) for years, but it has always had terrible performance with JS. I tried VSC with storm key bindings and finally feel productive again. To tell the truth it doesn't do anything that Storm didn't, it just does it faster, with no random pauses.

sanguine8082 profile image
Aaron Pfalzgraf

I myself also tried using Atom, for no other reason than just to experiment with different editors. I felt the same way, that it was good, but that it just wasn't good enough.

Switched to VSCode and I'm never going back (at least until the next big thing comes out, who knows). I absolutely love the ability for it to handle commit messages, diffs, and (apparently) merges, though I haven't tried that yet. The ability to pair the integrated terminal with Git Bash on Windows is great. I have yet to make extensive use of the Git integration (except for the Git Lens extension!), I like GitKraken too much. The ability to quickly throw a debug environment together (using the Python extension) without having to open another program was huge! (sorry Pycharm)

As you said, the community is very active and supportive. The program gets very regular updates with much needed fixes and requested features.

edwin_r_c profile image
Edwin Ramirez

I started in a new project made in EmberJS at work and everybody here used Atom. I, coming from Sublime, RubyMine, and a little of Vim, had no issue with trying out something new. I totally loved how I could customize Atom but the random lag when switching/opening/scrolling files made me look for better options.
Just like the author says, people just love VS Code with a passion. I had to try it out since it promised to be faster and more stable then Atom. It wasn't, at first. Until I added my tmp folders to the excluded files setting.
Now I really need the VSC team to finish implementing their "Multi root workspaces" so I can replace Atom for good (But I will always miss my favorite Atom theme: Knight Rider

binaryforgeltd profile image
Bart Karalus

Initially I was secretly cheating on Sublime that I had an estabilished relationship with for ages. But one day I just could not take it anymore and even though Sublime is still living in my machine, we do not talk much anymore. It is not a bad tool, it just something... not sure.
VS Code for life!

iape profile image

I used to love atom
Then it started freezing
I fiddled with, it deleted all of it reinstalled it like 10 times
With vs everything just works, have to change some muscle memory but eh
I miss atom functioning :/

tiffany profile image
Tiffany White

Not until they have multi-root projects. I can't do it. I loved how fast VSC was but I need multiple projects.

akashdeepsingh profile image
Akashdeep Singh

They do, now. It's been on since November. Workspaces.

tiffany profile image
Tiffany White

Yeah. I've since switched to VS Code.

Thread Thread
minhtrungaa profile image

I laughed.

Thread Thread
pramanadiputra profile image
Ida Bagus Gede Pramana Adi Putra


yawnyoice profile image
Yawn Yoice

VSCode is Ok... but not terribly Mac-like any more than Atom.
But for Python? Atom is hands down the best editor cum IDE today.
That's after trying them all for extended periods and trying atom multiple times over a few years to see if it was ready.
PyCharm? Well, it's not bad, but it's all very Eclipse with lipstick. Eclipse + PyDev is free and does 99% the same stuff.
TextMate? Hands down, best Mac UI and intuitive as can be. Extensibility is starting to look tired in comparison to others, docs are kind of light. Completion and code intel are weak.
BBEdit? Nice to look at, totally mac-like (a bit 90's) but super limited in terms of code intel and completions.
Xcode? not for most languages.
Most of the Electron crowd? not really there.
Vim? Learning curve, super portable if you don't add any packages.
Emacs? Famous learning curve, famous power, but I want to be productive now.
Atom's really really come a long way. Still lots of customization needed (keymaps are stinky).
Atom's Python tooling is excellent.
VSCode? Just so much harder to manage the packages and limited in the Python space.

For JavaScript-centric development, I think VSCode and Atom can both do a great job.

aviaryan profile image
Avi Aryan

VSCode is the best JavaScript/web programming editor out there. It has great intelli-sense, supports debugging + has an inbuilt terminal. You don't find this in Sublime Text. Atom and WebStorm are slow and resource heavy. VSCode all the way!

akashdeepsingh profile image
Akashdeep Singh

This article really resonates with me. I've used many IDEs since I started development: TurboC++, DevC++, Notepad, Notepad++, Netbeans, Eclipse, Visual Studio Express/Community, Python IDLE, PyCharm, IntelliJ IDEA, Sublime Text 2/3, Atom and vim. For some reason, I always felt the itch to switch because something or the other bothered me. I used Sublime for professional development a long time before switching to Netbeans, and finally to VSCode. This was a year and a half ago. I haven't felt the need to switch, although I tried Sublime Text 3 and Atom again for variety but couldn't make it stick despite putting in effort.

The thing with VSCode has been that there isn't a lot you need to do to make it do your bidding and it does not get in your way.

I like trying out new stuff, so I know I'll keep testing out other editors. So far, VSCode has stood the test of time.

hey68you profile image

Hey Ben - Switched from WebStorm yesterday after reading this post and I'm really loving it - I tried Atom a few times but it never pulled me away from WebStorm like VS Code is doing... don't think I'll never have to go back to WebStorm

nessee profile image
Olly Harkness

There were so many things I didn't like about VS Code that I couldn't tear myself away from Atom. The basic find and replace isn't as good, I wasn't able to open more than one project at a time, and I couldn't find a way to view git history as well as the Git Time Machine plugin for Atom. I still use VS Code on a Windows VM for some projects. Do I think I'll replace Atom on my Mac? No way.

irakli2692 profile image
irakli2692 • Edited on

I am atom user.

there are some features I need in atom and vs code doesn't have.

git diff highlight on files (file names change colors).

git diff highlight in minimap.

selection highlight in minimap.

linter warnings highlight in minimap.

minimap itself and its tools listed above are plugins.

there also some packages that I miss in vs code. for example Sublime-Style-Column-Selection, expand-selection-to-quotes (ctrl and ' . there are plugins in VSCode for selections. but this package is very comfortable for me).

samipietikainen profile image
Sami Pietikäinen

For those how like vim, it is possible to get vim-mode to VS Code with an extension and it seems to work pretty well. It is also possible to toggle the vim-mode so the standard key bindings can be used as well.

pabl0xf profile image
Pablo Frias

I'm still stick to Atom as my main editor.
VS is great but I guess I'm just to lazy to configure some stuff I found annoying like opening a new file is open over my current tab open a new folder is also over the same open project if I don't open another window first. There is not option to duplicate files quickly, find in all files works but I like better the way is display in Atom (similar to Sublime) also I had some issues with indentation.
I totally agree that the performance is better in VS but is not a big deal for me right now at least for my current setup, and I like the console but that's not enough to switch my defaul editor for now. I'll keep an eye in VS improvements though

dalecosp profile image
Kevin Kinsey

"Lacking in many respects" ...

... a BIG one that I can't figure out (I'm not the brightest programmer on the planet, obviously) ... "recent file" history? Every time I open it it only shows recent folders ... dang it, I just edited TEN files, can't I re-open at least one of 'em?

VSC is superior to several offerings in weight ... but I can't help but wonder sometimes if that's 'cause it's not as featureful ...

ocoka profile image
Ivan Ocoka • Edited on

Hello people, last time I posted a comment was 2 years ago I think, but I can't get past that article.
I'm a developer (frontend mainly) for 13 years, for that period I've used a lot of editors (VIM, Eclipse, IntelliJ, Wingware, VisualStudio (not code), Netbeans, JDeveloper, Emacs, Atom, VSCode, a lot of...), yeah, I just like editors, and like to try them all.
Then I met Atom I was charmed, after all that years I just found it, all the features that I want in one editor, of course, not all of them was "out of the box", I'm using about 120 community packages, and of course, some of them I found a much later, some of them I've written by myself.
For people, who stated "Atom so worthless comparing to VSCode", I think they are just lazy and don't want or can to craft the things, they are "consumers", and corporation like Microsoft controls them by that meaning.

  • the main claim over Atom is "performance" and its related to chosen by Atom team plugin architecture (I will talk about a little bit later)
  • Atom team do a lot of work, got many investigations about editors and UI performance, written a lot of articles, and that work, with no doubt, formed the basis of VSCode UI architecture
    • we can't forget that not so time ago Microsoft just bought the Github (Atom developers), and, of course, that played its role in VSCode promoting and improvement

Ok, now about people comparing features amount:
Atom team stated at the very beginning that: "A hackable text editor, for developers from developers"
1. A hackable (you gave all the power to adopt editor for yourself)
2. The text editor (it's just not stated that Atom is IDE, it's not, only plugins can make it a full-blown IDE)

Atom: hackable text editor
VSCode: IDE for people that don't want to hack anything

But, "With Great Power Comes Great Responsibility":
If you do things incorrectly and do it many, then you, of course, should fill that ( because you do it for yourself :) )
Many plugins are written without deep knowledge about Web performance, and who will ever do such optimization from the beginning, where the main thing to provide some functionality in short time (for ex: "GIT log visualization", it's slow but it works, and if you want, you can hack that concrete plugin, change rendering system, make PR, profit)
And Microsoft take it into account and make plugin architecture where all plugin run in the isolated process, and can't access the UI, the API provides the list of capability points, and you can only declare what you want to displays, but not how, and that's the reason why Microsoft has to had to implement many things out of the box
Atom just don't provide any UI API, at the beginning they have something that was called "Pen View", but later it was deprecated with the notation that you can use all power of web technologies, and people do, each start to use it's own preferable web frameworks to form UI for their plugins: React, Angular, Vue ... etc so now Atom UI with plugins it's some Zoo ))

VIM support in VSCode is ugly, comparing to Atom. It's funny I've seen just identical issue, one in Atom, second in VSCode repository, all from different authors, but each about same: "I need feature X in core to implement feature Y in Vim plugin", Atom team: "ok, let's look into the matter and we will fix that" (and they fixed), VSCode team: "ok, let's talk about it", and at that moment M$ manager arrives and close that issue with words like: "We have more priority things to do right now, happy coding" (aha, for example, make some bells and whistles)
p.s: factory always wins over crafters