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.
The feature where Atom slows down and crashes if I open a big file really helps me keep my code concise and my classes small. π21:44 PM - 09 Mar 2017
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:
- Peek View
- Intellisense
- Integrated Terminal
- Built-in Git
- Task Runner
- 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, code.visualstudio.com/download
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 (85)
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.
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.
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.
They added the ability to change the modifier for multi-select and hyper clicks. code.visualstudio.com/updates/v1_1...
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.
Hmm, I may have to check out VS Code again...
What's the name of those plugins?
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):
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.
I haven't gotten started with intellisense yet, but I love the idea.
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.
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..
Interesting. Why is that? Atom, IMHO, is better for Markdown editing with its GFM support. I keep trying VSC but it only supports CommonMark, which quite frankly sucks. I write all of my notes in Markdown and the task list feature of GFM is very handy and not doable in VSC. I Obviously I can write the syntax ;) but not having that support in the preview sucks.
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: marketplace.visualstudio.com/items...
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.
Nice, installed.
There's also several auto formatting user settings that accomplish the same thing:
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.
UPDATE: Just got a new version of VS Code released today! Now includes auto indentation:
code.visualstudio.com/updates/v1_1...
Helps if you don't want the full formatting, just indentation.
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.
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.
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.
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.
What do you still use Atom for?
The same I use Sublime for, having another editor handy for when I open so many screens I might go insane π.
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. :-)
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.
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!
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
.That's great to know! Thanks Jorin. I just added them both to my vimrc :)
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.
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.
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.
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.
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.
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.
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.
.-.
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
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.
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 atom.io/packages/knightrider-syntax).
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).
Atom is pretty cool, hackable etc...
BUT it crashes like all the time.
Made the switch to VS code, it is awesome. Really appreciate extensions like this one marketplace.visualstudio.com/items..., marketplace is huge.
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.
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
"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 ...
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.
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
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 :/
Not until they have multi-root projects. I can't do it. I loved how fast VSC was but I need multiple projects.
They do, now. It's been on since November. Workspaces.
Yeah. I've since switched to VS Code.
I laughed.
loll
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).
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.
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.
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.
I find myself switching from Webstorm to vscode to Atom. All have their strong points. Currently back to Atom from vscode due to poor intellisense suggestion ordering and limited support for JSDoc tags.
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!