We as developers have a special connection to our editors. It's where we work.
Unfortunately (or fortunately?), we have a lot of options to choose from.
Some of the most popular are:
- Sublime Text - simplistic, fast
- Vim - "hardcore", extremely customizable, steep learning curve
- Emacs - Competitor to Vim
- Various JetBrains IDEs - lots of features, expensive
But a lot of the time, I see people coming down to this debate: Atom vs. VSCode
I've tried all the editors above, and I've come to a similar conclusion. Sublime Text was great, but it didn't have the debugging and linting capabilities I wanted, and installing plugins wasn't particularly easy (although I'm sure there are ways to make it easier).
Vim is great: I love the simplicity of having one
.vimrc file that controls how my editor works. (You can check out my current vimrc here).
I use vim especially when I'm navigating around the terminal and want to do some quick edits.
But when I really sit down to work on a big project, I like to have a more feature-rich editor.
One thing you should know about me is, I don't like having to install a bunch of plugins. It's almost an irrational fear.
Vim is cool, but it's a lot of work to get it the way I want it.
So, I came to Atom and VSCode.
And, although I've tried to use Atom many times, I've always gone back to VSCode.
As I said in the title, I really want to love Atom. And there are some things I like better than VSCode.
But VSCode has so many more features out of the box that I feel like Atom is rather behind.
I love GitHub, and I love Atom's GitHub integration. I like Atom's UI and "feel". It feels clean and simple - because it is.
But what I don't like is that almost everything I want to do with Atom requires a package installation.
Some of my favorite features (i.e. linting, great autocomplete, MarkDown preview) require package installations, and many of them don't work exactly how I would like them to.
However, I do like Atom's system of building packages much better than VSCode's. I feel like I could actually build an Atom package pretty easily. VSCode a bit less so.
VSCode on the other hand, comes with a lot of built-in features, especially for Web Development (my primary area of work).
It has great JS linting/debugging out of the box. It has really awesome autocomplete with IntelliSense. It has things like MarkDown preview. It has the code preview on the right. It has pretty good Git integration. ...and extensions for almost anything else, that feel like they belong.
And, the biggest one:
An Integrated Terminal
I know, I know, Atom has a package for an integrated terminal, but frankly I think VSCode did it better.
That's what really does it for me: the out-of-the-box features that allow me to do what I need.
So how do I cope? By giving VSCode an Atom Color scheme, and opening Atom once in a while to stare wistfully at the screen and hope GitHub adds more to it.