Why I Switched From Visual Studio Code To JetBrains WebStorm

Michael Hoffmann on February 15, 2019

As I started my first JavaScript project in 2015 I used JetBrains WebStorm which is an IDE (integrated development environment) for JavaScript de... [Read Full]
markdown guide
 

Good comparison, although I wouldn't agree with you that VScode is not as well suited to large projects. I can do all the things you mentioned VScode lacks. (Eg running karma tests in IDE with wallabyJS)

To me it comes down to preference between "out of the box" functionality versus building your own feature set with plugins.

 

Refactoring, search/replace, widening selection, and regression testing, in jetbrains IDE (whether webstorm or pycharm etc) blow the doors off vs code. But you have to experience these features first-hand in jetbrains IDE because just comparing "on the page" feature for feature misses important differences that have huge impact on productivity.

The only real advantages of VS code are startup time, memory and price, ie I have yet to find a feature that I use daily and that is truly better than jetbrains product. Im guessing most of us start our GUI once every few weeks, so for quick edits and minimal UI I use vs code or even vi. Re price: Most can afford the cost of quality (ie a jetbrains IDE) but don't want to out of some strabge notion that free is best. Memory is the biggest problem for me jetbrains IDE, when GUI stays open for weeks, but after using vs code for 6 months I'm going back to pycharm as I'm just missing its Ferrari features too much, on a daily basis. I'll keep VS code for quick edits.

 

Thanks for the write up! Here are my thoughts.

It isn’t fair to compare Webstorm and VSCode out of the box. Both use many extensions and you always install more in both (or uninstall some of the defaults). If the end result is similar functionality, then there is no practical difference.

The above notwithstanding, Webstorm is a far superior IDE than VSCode when it comes to coding for many reasons but there is one major one that you also mentioned: Refactoring.

VSCode doesn’t hold a candle to Webstorm when it comes to refactoring which is such a big and important part of coding. Its refactoring is the #1 reason why, despite spending a month using only VSCode to give it a fair shot, I came back to Webstorm.

One thing you didn’t mention that I think is one of, if not the biggest feature differentiator, the “Find/Replace In Files” modal. It was a GAME CHANGER when it was released a couple of years ago. I simply cannot live without it. I've never seen a tool like it. VSCode's "Find/Replace In Files" panel is significantly worse than Webstorm's previous Find/Replace in files panel, which was great in its own right.

In Webstorm, you can rename folders and files and they will update throughout the project. You can drag files and folders to new locations and your entire codebase will update every reference to them. There is an extension in VSCode that is supposed to do this, but it's buggy and doesn't work as expected. One of its worst bugs is it changes all of you node_modules imports into their full paths like "../../../node_modules/path/to/the-libs/file.js" in every affected file. It's unusable.

A lot of other nice features make coding in Webstorm a much better experience, as well. Unused function dimming, automatic import injection on paste, import autocomplete, automatic conversion of HTML class to React’s className on paste, and numerous small but useful features that make working in Webstorm a joy.

However, to be fair VSCode has some really great extensions that Webstorm does not.

The biggest feature is VS Live Share, which keeps getting better and better with each release. However, I can use it and still code in Webstorm. I host a Live Share session, and the changes automatically update in VSCode so the person on the other end sees those changes. It's not perfect because you can't take advantage of the "follow along" features, but it's still useful.

The Git extensions are simply better. Gitlens and Git History are full of great features that Webstorm does not have. I primarily use Git on the command line, though, so I don't miss these that much.

This might seem minor, but the customization that you can do to the application frame is much better than Webstorm. I tried installing the Webstorm Material Plugin and it made Webstorm run like molasses and it took a fair bit of googling to figure out how to completely uninstall it because it left all kinds of changes in its wake. Webstorm is stuck with the Darcula color frame. Not a deal breaker, but VSCode has a more cohesive look to its themes.

The clear winner is Webstorm. I just don’t see VSCode getting feature parity with some of Webstorm’s most important differentiators, and so I’m sticking with it. My only feature request is something like VS Live Share, but honestly, everyone else I know seems to use VSCode so there wouldn't be anyone to share with. #lonelywebstormer #worth

 

That's unbelievable. Those are just my thoughts when reading the article condensed in your comment. 😳
I would just add that Vim mode is, IMHO, better in VsCode. That's what makes me go back to it from time to time.

Search in sidebar is just unusable compared to Search window in WebStorm.

And themes... OMG. I don't know how many comments, tweets, or emails I wrote to JetBrains asking for better themes or, at least, a better API to build them. It seems super minor but you'll tend not to use something you don't like.

Onr last thing, I'd like to mention is code inference. It's probably just a personal preference but I like more VsCode pop ups VS. WebStorm ones. I find them easier to be readen. Could be its just code formatting, but params, function signatures, typescripts annotations are way better in VsCode.

Im conclusion I like better VsCode but use WebStorm for Search and Refactoring featutes.

 

Update-imports-on-move and find-and replace-in-files work great out of the box for me.
When did you try Code?

 

The Update Imports On Move extension only works properly if you use TypeScript and even then still has bugs.

Have you used WebStorm’s Find In Files?

No, I hoped you'd tell us what's exciting about it.

Maybe I'll try out a EAP. Someday...

You just have to use it. I have never used anything like it. It’s next level. So powerful. I use it constantly. It’s just amazing.

 

Great comment! Although I enjoy using Webstorms's Git menu wayyyyyyy more than that of VSCode's extensions.

 

Yeah, I primarily use git on the command line so I’m not exactly the best judge. I do like the inline blame vs the annotation bar in Webstorm, but no biggie.

 

You can change the color theme back to normal by changing Editor > Color Scheme to "Default"

 

Hot take: If you need a full-blown IDE to refactor your application it probably has grown into such a monolith you should consider splitting the logic to smaller and more focused modules.

 

It can happen though. I'm pretty good at not letting it and enforcing a structure and sure that limits it. That said I've jumped into a number of projects that are so much spaghetti it isn't funny.

That's about the only saying grace of typescript, which I credit more than the ide. I still prefer vs code though.

 

And it happens because they either were not using Webstorm, or they simply choose to ignore the recommendations in the first place.

I may have misread, but are you saying that not using Webstorm could be the reason an app has grown into a monolith full of spaghetti code?

 

My thought exactly.

If you have so many dependencies that you cant refactor a part of your code then maybe there is something wrong with your architecture.

 

Sometimes we don't have the luxury of working on our own code I guess...

 

Majority of my professional career has involved working with someone other's code. Hasn't affected my editor of choice, though.

 

Thanks for the post ! I, myself, also went for the JetBrains products, and never looked back. Though I work in PHPStorm, firstly because I started with Symfony, but now also for Express/ React applications because PHPStorm has integrated Database tab which can work with MySQL and PostgreSQL very well and with almost no configuration. It is quite good for basic tasks with tables.

 
 

if anyone can point to an actual comparable in vscode, i would love it. none of the sql extension even came close.

main reason i haven't fully switched to vscode

 

I pay for WebStorm (and PhpStorm) with a smile on my face. But I do see value in VSCode too.

As Steven Sacks mentioned, when it comes to refactoring a large application, WebStorm really shows its power.

I defend that everybody should use the tool that makes you more happy and productive, in my case it's WebStorm, but I recognize that for others don't, YMMV.

 

Paid by jetbrains to advetise their expensive product? I wouldn't spend a penny for an "IDE".

 

I used to spend 4-8 hours a month to configure or keep updated my VS Code / Atom. That's roughly $100 MONTHLY.

The WebStorm costs my employer $50 YEARLY. I don't waste that time any more.

WebStorm is CHEAPER than VS Code.

 

Honestly the time I spend configuring VS Code is time I spend having fun tinkering, so I'm not counting it as lost money. I don't really change my configuration unless I find new cool extensions here or I want to try a new color scheme.

In 20 years I configured and played with so many code editors and IDEs that I got very tired of all of them. Thus WebStorm is a good suit.

Now that you mention it, I've been using VSCode since it was released (Jesus how time goes by...), while before I was on Sublime Text 2 on Mac (definitely the best option back then) since 2008 or 2009. Just a little bit of Atom between 2014 and 2015. I don't remember really playing with extensions until Code made it so easy, I stuck with Monokai and default before.

 
 

Nope I am not sponsored and currently using the EAP version

 

Expensive? 89$ per year? You better get a better job lol! Would you use VSCode if it wasn't free? Jetbrains makes great software and you're probably working twice as hard as you need to if you never use an IDE.

 

To be fair, you should spend a few hundred extra dollars on your computer to enjoy a snappy JetBrains IDE experience, because you will need a few extra gigs of memory, fast SSD and i7 with lots of L3 cache to speed up code indexing...

You might need to invest every 2-3 years into your machine too keep it up with the hunger of your IDE (and the wasteful projects you might be working with...), so that cost amortizes quite well, IMHO...

I was paying for IntelliJ Ultimate monthly for 2 years but last year I've upgraded to the yearly All Pack version, since they offer substantial discounts for continuous subscribers and they do a really great job! It cost me 190 USD/year, which is ~16 USD/month. That's pretty reasonable for a tool I use daily for work...

 

Pricing, startup time, extensions and open source, easy configuration are the reasons I use VS Code. But I like to try new tools that make job easier.

 

I am too lazy to read configuration options and search for good free extensions so I am switching back to an expensive ide that has everything preset for me because I am lazy that way /s

 

Really don't understand the flaming here. I like vscode a lot but y'all are taking this personally in such a silly way

 

I wouldn't call it flaming as in my daily work I use both of them. Just felt that while your article has it good points against vscode and for webstorm, it kinds of feels like a comparison that should not have been there in the first place. I understand where you are coming from, and that the other comments may me too harsh, personally it is just some naughty jab at the actual flaming comments. Sorry if you felt like I was flaming

just FYI but I didn't write the article. I'm just commenting on the story.

Oops I though you were op, wasn't really awake yesterday but well comment still stands

 

WebStorm comes helpful with a lot of small bits of intelligence where one would assume the work has to be done manually. Not only does it have a separate menu labeled Refactor, packed with all kinds of extractions, moving, etc. but it also watches your coding and helps you (like for example when working in Angular/TS) to keep the file name in sync with class name. Most of renaming jobs can be done without using global search/replace without turning your app crashing be it for a second.

But WebStorm has also a great set of code inspections, some of them simply amazing. One time I was using .scrollTo(leftPos, topPos) where topPos was passed using a variable called lastYPos. When the thing was refusing to work as expected, in my desperation I became interested in squiggles that appeared around the statement. WebStorm politely asked me whether I was sure passing lastYPos as leftPos was a good idea. It knew that Y could probably mean something vertical. Turned out, I inadvertently mixed the order (blame CSS conventions for that!) and WS got me covered.

For those who are not so fluent using Git in command line, WebStorm has a great UI, allowing you to select files that should be included in a commit. But not only files - you can also select individual changes through checkboxes! During rebase interactive that UI is just a time saver. You can view changes of each and every commit in a diff mode.

I really encourage everyone to at least give WS a spin.

 

I haven't used VSCode much at all, but for speed, I've found the IntelliJ products to feel quite a bit faster than VSCode on my MacBook.

IntelliJ is quite RAM-hungry though, I've got 16gb of RAM and IntelliJ chews through a good portion of that. If you are using a computer with less RAM, that might be the main cause for slowness you're seeing with WebStorm.

 

Nope. Macbook Pro 13", 8GB RAM, WebStorm flies like a bird, even for huge projects. VS Code is also there, front row on the dock, for quick hacks. IntelliJ-based IDEs have years of real-world knowledge behind their weight (because of IDEA and the Java ecosystem).

 

I think ppl struggle with 8GB (macOS) setups, because they have shit load of browser tabs, like whatsapp, gmail, github pages open, along with lots of electron apps, like slack, discord, telegram, gitter, notion and those "steal" a lot of memory from the IDE.

There are a lot of things which are loaded but not very actively used during coding, like GoogleDrive/Dropbox/Box, Evernote/Joplin, Mail, Skype. It's tedious a bit to stop them it worth it, because you also reduce distractions. Lot of ppl feel FOMO though because not being connected...

I've noticed that even my iTerm2 hogs 0.5-1GB... Considering to switch to sw.kovidgoyal.net/kitty/ because of that.

So while I agree that JetBrains IDEs might be a bit wasteful with memory, but so are all the other apps you use... Have you summed up ALL your browser processes' memory usage lately? You will be shocked. I'm battling that kind of waste with the github.com/tabwrangler/tabwrangler/ browser extension.

 

Had the quite the same experiences and thus switched to Webstorm. What convinced me most about Webstorm:

  • its awesome (imho much better-working compared to vs code) possibilities to do code navigation/inspection (i.e. 'go to declaration' or 'show usage' features)
  • Webstorm's quick search improved a lot the last few months and from current perspective it surpasses the vs code equivalent

Those two points represent major aspects of my dev process. As a result the editor switch to Webstorm also led to more fun and convenience during development for me.

 

Thanks for this post, a very well thought out evaluation of both sides I think. I often find myself pondering which app I'm going to use (almost monthly) for certain projects.

I feel it is a wonderful time to be a developer with so many tool options, we are afforded the opportunity to switch tools anytime one 'feels' better than another for particular scenarios.

 

Vscode is an editor;
WebStorm is an IDE;
You can’t compare them directly;
You can compare vscode vs sublime text for example;
or, maybe, visual studio 2017 with webstorm

 

This was exactly what I was thinking the whole read.

 

I think vscode is more of a hybrid because of how robust its plugin scene is. It's a defacto ide once you extend it enough. That's what makes it so good though. You can really pick and choose what you find important.

 

I wouldn't agree to all the points, but in generally from my point of view IDE is always better than just code editor; so in certainly I think WebStorm is a good choice against VS Code.
Thanks for this good comparation

 

I dislike IDEs because there is too much noise and stuff I don't really use. I like my coding environment clean and entirely understandable, as little noise as possible. I get that it's great to have some helpful tools catch those pesky useless methods... But I don't really like using classes so I don't need that, and everything else seems really just something that shines in a very big codebase while I prefer keeping stuff tidy and modular with functional programming and services. So this article does little to convince me to give it a try, but maybe I will just to have some fun. Actually speed is a big factor to me since I have many different projects around so while it's useless to you, that's a big plus for me - VSCode is even a little bit too slow for my tastes these days but I won't find something better and faster unless I'm willing to use Sublime Text as a side editor.

Perhaps I should thank you for letting me know about local history.

 

Well, I've been using Sublime Text as my main editor for many years and I'm pretty happy with it.
I don't really why I should use VS Code or even WebStorm for my coding projects.

 

I don't know! I like both, VS Code just captured me with extensions - which also exist for Sublime Text btw - and the fact that it's just free.

 

Webstorm def has some better refactoring tools and I think their intellisense in general is better but the thing that really keeps me using vscode besides speed is the fact that being open source and being plugin friendly and being written in web technologies it's an absolute joy to hack out customizations. I have a ridiculously ornate set of configuration files, extension settings and injected css and Javascript scripts that allow me to make it exactly what I want. I love it.

This is also the reason I like the hyper.js terminal emulator is because it's super hackable.

I'm also a designer turned developer so I'm not particularly good compared to what some people can do but that's very motivating to me. Nothing makes me want to learn something more than it being a tool I use daily. It's a little self serving maybe ha!

 

What have you hacked in it? And I don't mean just installing/configuring plugins for it. It eats a lot of memory for what it does and quite slow too...

But if you like hacking, maybe you can consider sw.kovidgoyal.net/kitty/index.html too ;)

 

Basically using a code injection plugin you can inject your own custom css and javascript to manipulate or change the UI in ways that no plugins or default configs allow for. I'm currently just using it to style things in ways which the current theme tokens don't allow for, but eventually I'd like to explore actually directly manipulating things with javascript. Though at that point I should probably just fork vscode itself or perhaps write a plugin for it. Though I believe plugins are limited to what the extension API allows for and I don't think code injection has that limitation. Not sure.

You can see if you'd like here: github.com/jcklpe/Configs/tree/mas...

I'm still learning a lot of dev stuff and I'd like to package up the changes I make into their own extension eventually once I have time.

 

Even though I don't use WebStorm, I completely agree that JetBrains IDEs blow VS Code out of the water all the time. I use RubyMine on a day to day basis.

I once thought of switching to VS Code for Ruby development, mainly because it is free, and I wanted to see if I could cut on the license cost.

I truly found it unusable. I could not get proper code inspection to work, it would refuse to follow function definitions, it would not show me documentation, code completion sucked. I decided it was more trouble than it's worth. I am very happy paying JetBrains for a top of the line IDE, that does everything I need and more.

I do have to say, though, that the Elixir experience in VS Code is far better. I have yet to give it a proper try using IntelliJ and the Elixir plugin, so I can't make a recommendation here.

 

Great post! I had IDE fatigue at one point switching from Sublime to Atom to WebStorm to VSCode. Webstorm worked great for me when I was developing an PHP application. However, the cost is always a factor hence why I'm sticking with VSCode for now. But your post gave me the impetus to consider WebStorm.

 

I'm only a enthusiast in programming and have few experience in big and/or big projects. However, I keep studying some concepts of front and back-end, in general looking to java, android and web environments.

I think is good for you all got noticed about someone with this level. And I say: WebStorm (and any other jetbrains products) are always my first choice! I tried VS Code and others various tools and always back to JB once my productivity is heavily affected by the main tool I'm using.

I think, JB tools are the best to improve speed of coding!

 

Google showed me this when I asked for "vscode vs intellij". For some reason (I blame the hype), I was wondering how vscode stacked up against the IDEA Ultimate I've been using for half a decade.

Thank you for saving me the trouble ♥️

 

Very good comparison.

In the end there is no winner, they are different tools for different jobs.

Like every craftsman with a toolbox full of tools; I use both and Notepad++ and even open up Notepad occasionally.

Hiring a developer with only one tool is like hiring a painter with only one arm.

 

When I was working for an automotive company some of us were using VSCode as our main tool for developing the project. I didn't had a any problems with it, except with some git related extensions that weren't working properly because of the large number of commits we had.

 

@Michale Hoffman, have you tried material-theme.com/ ?
I love JetBrains products and I use them.
Thanks for the cool post.

 

Yes, I mention it in the section below the conclusion ;-)

 

JetBrain's background indexing is the biggest win for me.

VSCode seems to only see the code in currently open file. If you reference something from a different file, it has no idea what to make of it. This works fine when you import all the types you intend to use (a la typescript), but falls apart for pure js with JSDoc annotations which I prefer.

WebStorm has a daemon running in background that maintains knowledge base of all the symbols defined in entire codebase. This makes all the difference in the world if you like intellisense-style tooling.

 

Indexing is also one of the things which makes the typing experience very laggy and it can be really really annoying that you can't do anything responsively when a bigger reindexing job kicks in...

But it's a good trade-off most of the time!
You can also pause it and use the IDE just as a more traditional editor, while still having access to scope-selection expand/shrink (cmd-up/dn), refactoring (shift-f6, cmd-alt-v) and fuzzy search in many places in a snappy way...

 

At work I use WebStorm / other jetbrains IDEs, best for teams.
At home I don't have a lisence, so for my personal projects it's vscode :)
Also I find WebStorm to crash quite a bit, while never the case with vscode.

 

Webstorm has to be one of the ugliest editors I've used. Bloated menus, poor UX, to much stuff I just don't care about. I like editors that give me a base and allow me to configure what I need. Spent way to much time trying to get themes such as Darcula working only to constantly find unreadable text.

I also think open source vs closed source is important.

 

Just to counter a bit. I don't like it use angular. I find the amount of boilerplate I have to write unreasonable for the functionality and the overhead to be too big. I tend to favor react as it lets me keep my controls, logic and workflow simpler. Beyond this I am a very big proponent of discoverable feature based file structure. I've worked in a few very large applications where each developer could choose their own tools and keeping the structure in tact helped more than an ide over vs code.

As you mention there are extensions that take care of adding most of the features you mention. A lot of it can even be done with linting in a precommit hook.

 

Your statement about not being able to mark floating promises is untrue. If you set the tslint rule no-floating-promises and use the the Microsoft official TSLint extension, these can be labeled.

 

Yes, but you, therefore, enable type checking which did not always work for me. But maybe it improved meanwhile.

Nevertheless, it is nice to have in the IDE without any additional configuration

 

VS Code can only debug web application on Chrome by using the Debugger For Chrome extension which you then need to configure for your application.

WTF? VSCode has a great integrated debugger!
code.visualstudio.com/docs/editor/...

The whole comparison is a series of uneducated conclusions about VSCode

 

Both are great, but recently there are many extensions for vscode not exists for webstorm, and vise versa many features at webstorm are not exists at vscode. I hope that webstorm lighter and have all missed extensions. I really love it, but see my self using vscode because of missed extensions. vscode is growing for sure because it is free and light weight on PCs.

 

VS Code does not detect unused public methods

Aint the whole point of public method is that it can also be used by third-party code.
How can an IDE predict that this method might be used by something eventually?

 

VScode is just a code editor, it has a long way to be a IDE.
But we may not need a IDE in some light useages.
They are different, i like both of them all.

 

Is WebStorm an IDE or am I wrong?

Vscode is just an editor...

 

Once you include plugins for debug and Git it is an IDE so the comparison is entirely fair. Refactoring, search/replace in jetbrains IDE (whether webstorm or pycharm etc), widening selection, and regression testing blow the doors off vs code. But you won't understand until you experience it first-hand with an open mind because it is almost possible to foresee how small differences in GUI can have such incredible impact. The only real advantage of VS code is startup time and price.

 
 

I've been saying this for years, the git integration is the num 1 feature. Webstorm is like the Mac of IDEAs.

VScode is just plugin and config hell.

 

One thing I'm surprised no one has mentioned is that Webstorm's support for prettier not as good as Vscode's.

 

I totally agree. Prettier in VC Code works just out of the box. But in WebStorm you need to configure FileWatchers which is not very nice.

 
 

I can use vscode to see unused variables and methods using typescript just fine.

 

Great, but I never use Typescript, so it's useless for me.

 
 

For me, ES6 and TypeScript work just fine. as of (1.31.1) in VSCode. I'm not sure about ES5, but ES6+ works. I have used both VSCode and Webstorm, as well as others, and I always encourage people to keep using different ones in your day-to-day work, even if you have a preference. Because VSCode will not always be king, Webstorm will not always be king. I simply prefer VSCode over Webstorm for now mostly due to the weight of each application. VSCode is much lighter and takes up far fewer system resources. That's simply my $0.02

 
 

I am slowly but surely making the transition myself, but oddly enough the steepest learning curve I have to do with is transitioning to new shortcut keys

 

Using VS Code lets me spend $80CAD/yr on Droplets and Dynos. :D

 

I'm copying my own comment from above.


I used to spend 4-8 hours a month to configure or keep updated my VS Code / Atom. That's roughly $100 MONTHLY.

The WebStorm costs my employer $50 YEARLY. I don't waste that time any more.

WebStorm is CHEAPER than VS Code.

 

It would be nice if WebStorm supported Airbnb's linting as a preset...

 

My WebStorm supports. No any configuration/plugins needed. It just pick up my project's ESLint settings. Automatically.

 

VSCode is much faster and highly customizable which is why I love it.

 

I went the other way around, from JetBrains IDEs to VSCode. Never looked back!

 
 

In my first web project, the company bought a license. In my current project, I have no license and use the EAP version.

 

Would you use an inferior product just because the company bought a license?
The article doesn't prove it's worth the price, but it would suggest it's worth at least something.

 

I would try it...which is what I think kicked off the trying it, in the authors case.

Yeah, I agree with the trying.
Just arguing that a sensible person wouldn't keep using it just based on that.

 

I'm copying my own comment from above. It's exactly about worth part.


I used to spend 4-8 hours a month to configure or keep updated my VS Code / Atom. That's roughly $100 MONTHLY.

The WebStorm costs my employer $50 YEARLY. I don't waste that time any more.

WebStorm is CHEAPER than VS Code.

 

I was just being a little snarky about the post's title. ;) I definitely appreciate people trying things and writing about them!

code of conduct - report abuse