11 ms·
Why I Switched from Visual Studio Code to JetBrains WebStorm
- skrebbel 8y agoTldr: nothing fundamental but WebStorm has a few features that the author likes that VS Code doesn't have.
- irth 8y agoalso, VS Code has those features, but is an extensible editor and not an IDE so you don't get them out of the box but that's by design
- v-yadli 8y agoAgreed. Nothing fundamental but js sugars. For me the IDE is more like a text editor bundled with extra goodies. E.g. multi-window (thus multi display), more elaborated software hierarchy (not just for code editing) vs. a main panel as editor and side panels as auxiliaries, automatic window management like Eclipse perspectives (or in VS, when you debug, it switches to the different window layout). It’s not black and white unless you go with nano or notepad.exe. You can also roll your own ide with tmux, i3 etc. btw have you guys ever tried to hack gvim window handles into Visual Studio? :-)
- ashnehete 8y agoI can understand that people may perceive VS Code and WebStorm as alternatives. Though, as rightly pointed out by the author, the former is an editor while the latter is an IDE. The whole post just says that in 10 different redundant ways.
- matharmin 8y agoWhat's your definition for an IDE that does not include VS Code? Just because VS Code feels lightweight, doesn't mean there is any fundamental limitation preventing it from supporting all the features mentioned in the post. In fact, as the author and others mentioned, you can achieve many of the same features with plugins in VS Code. Yes, WebStorm is better in the points mentioned by the author, and the JetBrains IDEs are amazing in general. But saying it's because one is the editor and the other an IDE is completely wrong.
- carlmr 8y agoPeople like VSCode so much that they write extensions that mimick some of the more useful IDE functions. But an IDE comes preconfigured for one language/environment. I almost don't code JavaScript/TypeScript, it's not very useful in embedded work. I use VSCode, but I have no use for this IDE. This article is meaningless if you're not in the same niche as the author. While VSCode is an editor that is made for any language.
- stephenr 8y ago> But an IDE comes preconfigured for one language/environment. I can’t count all the languages IDEA Ultimate (also JetBrains) supports via plugins.
- fgonzag 8y agoany text editor with sufficiently powerful plugin capabilities can become an IDE, but AFAIK you can't turn any IDE into a Text Editor (there is no way to disable everything but the editor by default)
- cheerlessbog 8y agoIt's less of a distinction then it used to be, but IDE's tend to be workspace/project first, and editors tend to be folder/file first. You would typically point an IDE at a metafile that described the source files, build settings and so forth and it would discover the editable files. All this in a semi opaque manner, bootstrapped by some menus or templates. In contrast in an editor, you might generate the metafile only when your project becomes too big for the defaults to be sufficient. You're right that the distinction is much more blurred now. For example you can do a lot in Visual Studio now without using a "project" file.
- Illniyar 8y agoYou can debug inside VSCode. That is an IDE. Practically by definition. A text editor is Sublime text.
- stephenr 8y agoDebugging isn't the only thing - I used to use a standalone debugger years ago. The key factor for me, is the ability for the tool to understand the codebase at some level. It needs to be able to tell me where a symbol is used, let me refactor that symbol (e.g. adding a new mandatory argument, or changing the argument order, or renaming the symbol) with as little extra work from me as possible. Jetbrains tools allow me to do all of that (in PHP at least. I write about as much JS as I eat mud) where no others I've seen do.
- Niksko 8y agoWhile VS Code presumably can do almost everything Webstorm (and other Jetbrains products) can, my experience in my fairly large software company is that most of the people that use VS Code don't actually bother to install the plugins to bring it up to feature parity. Out of the box functionality is underrated, even seemingly among devs who have the skills and knowledge to tinker.
- eridius 8y agoVSCode has a ton of extensions but very frequently there's no good information about which extensions you should actually use, and whether you need to configure them to get the best behavior. For example, the other day I went to install a GraphQL extension for syntax highlighting and there was something like a half-dozen competing extensions, with no good way of figuring out why I should use one versus the other. I eventually ended up picking the one that looked the simplest, because all I really wanted was syntax highlighting and nothing else.
- kkarakk 8y agoMS's attitude towards package managers has always confused me. even in vs2019, typing in Microsoft.something sometimes brings up paid extensions as the first result but not always. no way to rate an extension with an explanation in nuget(or vscode) means i'm usually googling "good extension for [x]" instead of using the package manager search
- cheerlessbog 8y agoThe VS Code extensions manager shows a star rating, download count, extension description, a list of the commands they expose, often the popular extensions have animated gifs showing how they work. What else are you looking for? For example when I installed VS Code I needed a Git extension. There are zillions but only two or three that are clearly ahead of the pack and it only took a few minutes to try each one.
- eridius 8y agoWhat I'd really like to see is "date this extension was last updated", and ideally a full changelog. If I see 2 extensions that claim to do the same thing, with similar star ratings, where one isn't being maintained anymore but the other is, there's no way to tell from the extension browser that one of them is still under active development and the other isn't. Download counts are nice but they're also totals, they don't tell me about recent activity, so e.g. if one is an old extension and one is a new extension, the old extension is going to have a higher download count regardless of the relative quality of the two extensions. So "date this extension was last updated" as well as a "recent download count" would go a long way toward making the extension browser easier to use.
- hansflying 8y agoVery biased article and by the way, tslint will also warns you if you don't use promise: https://palantir.github.io/tslint/rules/no-floating-promises/ https://palantir.github.io/tslint/rules/no-floating-promises...
- hansflying 8y agoABSOLUTELY EVERYTHING in this article is wrong. I just opened a typescript project in VSCode, created unused function and a class method and I immediately get warning that they are unused. So the author can't even check the facts before writing an article...
- steve_taylor 8y agoTypeScript is definitely a first-class citizen on VSCode. I’m considering TypeScript in my next React project and will definitely consider using VSCode instead of WebStorm. I’m a long time WebStorm user and ES6+React developer. TypeScript looks like it can solve a lot of my pain points and it supports JSX syntax (TSX).
- CaptainMarvel 8y agoVSCode has Local History?
- tom_ 8y agoOf course it's biased, it's a "Why I XXX" article ;) - what did you expect? Regarding the floating promises warning, this setting is off by default, so you have to know it's there to activate it. Additionally, VSCode's integration with tslint output is mystifyingly poor, and I assume it is this that the author is referring to. There's clickable output in the build output window, but no popups in the text editor. I like to run the compiler and linter manually, so I can see all the issues in one list. Popups in the editor are handy but clickable output in the build output window is good enough. Some people prefer to work with file watchers, so the error/linter output is not as accessible. They probably need to be able to see everything in the text editor. But even if you work the way I do, you may well wonder why you don't get tslint editor popups. I've certainly wondered it myself. I can do without, but they're certainly handy.
- founderling 8y agoWhen you guys think about all the developers you know, do you rather see a positive or a negative correlation between the usage of high level tools and developer productivity? In other words, is your experience that developers who use an IDE are more productive then developers who only use a text editor? In my experience, the (very few) developers I know who only use VIM or Emacs are way more productive then those who use an IDE. The reason seems to be that they tend to 'sit back and think' about the task at hand. And then come up with elegant solutions. While the developers who use a lot of tooling seem to hope that the tooling will kinda force them to do the right thing. But from what I witness, that never works out. I see a similar thing happening with coders who do a lot of tests (test driven development), some tests and no tests. Developers who don't write any tests are often the most productive.
- tokyodude 8y agoI see no correlation
- not_kurt_godel 8y agoOut of the hundreds of devs I've worked with, I can think of exactly two who use(d) vim to edit code with any regularity. Both are fairly proficient above-average devs overall, but I'm pretty sure they also use IDEs heavily and only use vim for quick things. Beyond a certain level of codebase complexity, there is simply no way to do the job with a text editor, even with fancy macros. Vim is an elegant tool, but is simply outmoded for many modern development tasks in the same way that a hammer is outmoded by a nailgun. You might always need a hammer in your back pocket, but it can't compete with a nailgun for large-scale repetitive tasks.
- black-tea 8y agoIf I can't do a "modern development task" with emacs or vim and a smattering of standard Unix tools, then I question the sanity of said task. At the end of the day we're editing text. Plain text has stood the test of time exactly because you can process it with tools that everyone knows and have been around for decades. If you find yourself needing special purpose, proprietary tools to handle your code base then you should really reconsider where you're going.
- seddin 8y agoThere also this cool text editor, simple and fast, called Pluma and available on Ubuntu Mate which I really enjoyed using.
- fxfan 8y agoIf we're going to list editors, I think I have a few in mind ;)
- firmgently 8y agoA fork of gedit 2 (for anyone interested in such trivia)
- shakna 8y agoWell that took me down a rabbit hole. Xed is a fork of pluma, and is an X-App included with Linux Mint. (Seems to be under very active development.) [0] Pluma is a fork of gedit2, seems mostly to integrate it nicer with MATE. (Seems to be under very active development.) [1] gedit is also still around, and is still "Gnome's text editor", and seems to be under very active development. [2] [0] https://github.com/linuxmint/xed https://github.com/linuxmint/xed [1] https://github.com/mate-desktop/pluma https://github.com/mate-desktop/pluma [2] https://gitlab.gnome.org/GNOME/gedit https://gitlab.gnome.org/GNOME/gedit
- owenwil 8y agoI made a similar switch from VS Code to PHPStorm and had a remarkably similar experience. When I started using a proper IDE, I really began to get comfortable with the inner workings of what I was doing–debugging the frameworks I was using, jumping directly into methods and doing fairly broad refractors with their refactoring tools. I’ve found it’s made me a better developer by making that process simpler, while being very good at pushing me into optimizing my code, be it through PHPDoc or simply not being consistent in my implementation. I was surprised, but also, came to realize IDE platforms seem to be stigmatized by many developers in the web industry: they seem too heavy or not useful, but I’d argue it made me 10x more productive once I took the time to use one.
- jsmeaton 8y agoI really do think you (probably) need to use an IDE properly, so you can at least make a conscious choice about what you’re giving up, or use other tools that provide similar capabilities. For example, I know a bunch of people that use print debugging, and don’t “get” visual step debugging. But most of those people haven’t used a proper debugger before. I’m primarily a python dev using vscode. Pycharm debugger (and remote interpreter!) blow away the vscode debugger. But I can use CLI tools (ipdb) nearly as well as any visual debugger. It’s a conscious trade off that I make. Specifically, I prefer the editing experience in vscode over pycharm, but can bridge the gap in other ways. Know your tools. Know the capability of other tools.
- revskill 8y agoOn average, VSCode is enough. Consider a Rails project. For Jetbrain, you better use RubyMine for the Ruby part, it's the same as WebStorm, but for Ruby projects. Now you better use WebStorm for the frontend part, right ? In case of VSCode, one Editor to rule them all, both backend (Ruby) and frontend(Typescript) part.
- virtualmic 8y ago> Now you better use WebStorm for the frontend part, right ? All functionality of Webstorm is included in RubyMine and PyCharm (I use PyCharm daily). Ref: https://www.jetbrains.com/ruby/features/ https://www.jetbrains.com/ruby/features/
- steve_taylor 8y agoIt’s available as a plugin, with a different release schedule than WebStorm, so it’s always lagging behind WebStorm.
- virtualmic 8y agoI just tried 3 latest features for Webstorm listed here: https://www.jetbrains.com/webstorm/whatsnew/ https://www.jetbrains.com/webstorm/whatsnew/ All are working on my latest version of PyCharm Pro.
- realusername 8y agoIt's always the same debate, on my case all the features of Webstorm he's listing I will likely never use them whereas the lag issues & the clutter interface of Webstorm just make it a no-start as my main editor.
- foepys 8y agoHow's it cluttered? You can simply hide everything. besides that, the default configuration only shows the main editor and two tool panels (left and bottom), the same as VS Code.
- realusername 8y agoYou got the answer in your comment, "you hide everything", yes but by default there's a good 80% of buttons I will never use including the top bar and a good part of the side bar. The menus themselves are also too cluttered, it "feels Java" to me and that's not a compliment.
- fredsted 8y ago> lag issues & the clutter interface of Webstorm I know a few developers who stick to editors like VSCode for those kind of reasons, but as it turns out, they actually never spent time learning how WebStorm works. WebStorm and the rest of the JetBrains family of IDEs are extremely configurable, and speed is not an issue in my opinion: I've spent a lot of time programming with PHPStorm (including database servers and Web servers running in the background) with a 1.1ghz 12" MacBook. In addition, it comes with batteries included. No need for plugins for what should be standard functionality. Looking at them work, they could save so much time refactoring, jumping between code, clicking instead of using shortcuts, etc. that the investment would be paid back within at most a week.
- realusername 8y ago> WebStorm and the rest of the JetBrains family of IDEs are extremely configurable, and speed is not an issue in my opinion Speed is totally an issue for me with Webstorm, there's a small typing lag, very small yeah but noticeable, no typing lag is my top priority in an editor, above all the other features. > Looking at them work, they could save so much time refactoring, jumping between code, clicking instead of using shortcuts, etc. that the investment would be paid back within at most a week. Every Webstorm user talks about refactoring like a major feature for them but I found it not that useful personally, that's not a feature I would use anyway.
- __m 8y agoI love the jetbrains toolbox. I do unity development with Rider, Android development with Android studio, web development with webstorm, python automation and ai learning with pycharm, java development with idea and I use it as diff/merge tool like the author (additionally you can toggle blame mode, which shows you the last person who edited the individual lines, at what time and with a color coding that highlights recent changes). Having a familiar user interface for all these IDEs and on top of that available on Mac, Linux and Windows won me over. I started with Rider for unity since I mostly use macOS and Monodevelop did not spark joy (vs for Mac didn’t exist yet and I prefer the user experience of the jetbrains IDEs).
- gloggy 8y agoYep, this describes me too. I work on multiple OSs, in multiple languages and I use everything from CLion to WebStorm. The interfaces are consistent on each OS, all the commands are the same, and while not the fastest IDEs in the world, my dev machines are good enough that I can run them comfortably. I think good IDEs make me more productive. I find the whole "you're only a good programmer if you program in ed" line to be really disingenuous.
- arcturus17 8y agoI do Java with IntelliJ and everything else with VSCode but I’m about to switch everything to IntelliJ. Microsoft has done a tremendous job with VSCode - I’m particularly amazed at how fast it’s risen - but honestly every time I switch between Idea and Code I miss the former.
- loxs 8y agoCurrently I use WebStorm, but I also always have a spacemacs window open, to do the things that WebStorm can't do. Fresh example from yesterday: I open a .graphqlconfig file in WebStorm, which is a JSON file. Good luck making WebStrom open it as a JSON file... One minute later, I've opened the file in emacs, M-x json-mode, M-x mark-whole-buffer, M-x json-reformat-region, did the changes I needed to do, carried on with my life. So it's not that WebStorm (or any other fluffy high-level tool) is perfect or "enough". There is always this one thing that will make your life miserable if you are religious with these things.
- abdusco 8y agoYou can assign non standart file types to various languages. https://www.jetbrains.com/help/idea/creating-and-registering-file-types.html https://www.jetbrains.com/help/idea/creating-and-registering...
- lostmsu 8y agoWait until they see ReSharper/Rider/IntelliJ.
- deleted 8y ago[deleted]
- nnq 8y agoMaybe people should realize that the problem is with the JS libraries ecosystem and how most are build in a way that "just jumping into a lib/framework to read its code and see what it does" can't seam to be feasible anymore. For example, in a React app if I'd want to jump from a `Route` import from react-router to it's readable code definition [1], NO IDE or editor around is capable a properly doing the jump, I either get to a Typescript definition (VSCode does this - imo the worst possible behavior) or to some unreadable transpiler outputed code. This creates a huge divide between framework/library/component-author and "lowly" client/user-programmers. Compare this to the Python ecosystem where basically any editor or IDE can help me jump to the right place in a library's nice and readable code, and even in the worst case where the author didn't bother to write either tests or docs I can still make use of foreign code just fine... [1]: https://github.com/ReactTraining/react-router/blob/master/packages/react-router/modules/Route.js https://github.com/ReactTraining/react-router/blob/master/pa...
- intothemild 8y agoOh yeah.. In VS Code, where I wanted to go to the definition, and it took me to the Typescript file.. It's just insanely frustrating. Your right it is the absolute worst possible behavior. I get that information when I hover over the method/class/whatever.. I am looking up the definition because I want to see how this works.
- nnq 8y ago...10x more frustrating when you see that there are >1 y old bug reports about this but it's always delegated as lower priority than smth else and after (I think, not sure anymore...) someone fixed some underlying functionality that was supposed to make this possible, the actual functionality of usable jump-to-implementation is still not fully implemented! And I'm not saying that the devs don't care or not doing wonderful work... just that they've ended up with a codebase where something like this is genuinely hard to do. And when they'll finally get it will still be frustrating as hell because >50% of the time it would jump to some unreadable transpiled code because there's no actual standardized way to jump to the original source the final js got transpiled from. In an ideal world, if some React component was written in OCaml mixed with Clojure and transpiled to JS, I'd want to be able to jump to the implementation into that actual original OCaml or Clojure code. But I get it, whoever would be smart enough to get that working reliably would probably make better use of their time trying to cure cancer or solve climate issues or go to Mars etc. </rant>
- dfischer 8y agoI've used a lot over the years – always in VIM mode. As I have moved to GO recently I was using VS Code but found it bugging out at times. I switched over to Goland (I used to be heavy in WebStorm). It just works. I am happy.
- kmlx 8y agointellij idea ultimate with the golang plugin feels like a swiss army knife for go :)
- Theodores 8y agoOne thing that the JetBrains editors have that isn't found elsewhere is support for SVG. Once you take SVG to a certain level the desktop graphics programs no longer help, they add too much cruft and you also can't do things like have the origin of your drawing in the middle of the canvas. Having the origin in the middle makes things easier to mirror, rotate and so forth, which you might need if building an icon set. Being able to live-edit a SVG opens new possibilities, you don't have to assume that you need the graphic design tools to 'draw a box' and you can keep shapes such as circles as circles, not some huge long list of points specified to 9 decimal places. Right now I am building a SVG drawing that needs to take numbers to draw it to scale, I would never be able to do this without building a prototype in a JetBrains editor.
- disillusion 8y agoI would like to try to switch to a JetBrains IDE. Especially the refactoring tools look to be much more advanced then Atom or VSCode. At my workplace, most developers are either full stack or backend (python). As such, we have a grab bag of PyCharm licenses. However, I am purely a frontend developer, so frontend related tools are much more important to me then python support. Unfortunately, the last time I tried PyCharm the integration with linters, toolchains, different template languages etc. was quite limited. Or perhaps I couldn't find the needed extensions or where or how to configure the right settings. I don't know if this is a JetBrains IDE thing, or simply because PyCharm is so geared towards Python development only. The projects I work on are integrated in different backend systems. So one might be a C# project with Razor templates. Or it'll be some PHP with another templating language. Or it might just be mustache or handlebars. It might be a SPA in Angular, Vue or React. It might be purely Node.JS project. Some projects have Webpack, some have a Gulp toolchain. Linters might differ between projects. Folder structure also differs, one might have the git repository in the root. Another will have it one or two levels down. Some use a python virtualenv. Others use a docker container. Others use no enviroment management at all. In my experience, because of the different nature of the projects, the PyCharm editor offered little extra functionality over Atom/VSCode, while missing a lot of simple extensions that Atom/VSCode does have. I was also quite a bit slower to start up. Is it possible to configure / extend PyCharm to offer the same frontend related functionalities as WebStorm, or is a separate license needed? And is there support, or are there extensions, to support different toolchains, linters, templating languages etc. per project? The backend language support can be limited, as long as the very basics are there, and I'd like advanced frontend support for refactoring, debugging, etc.
- stephenr 8y agoThe language specific apps (pycharm, rubymine?, phpstorm, webstorm) can’t run most other language plugins. Get IDEA ultimate (also jetbrains) and just install the language plugins you need. I use this to write php, shell, sql, javascript, css, html, a little ruby, a little python, makefiles, and hopefully some D-Lang soon.
- arcturus17 8y ago
- Illniyar 8y agoI've used both. Webstorm is definitely slightly better in most things. Little things like better handling of closing tags or more useful context menu. VSCode is massively easier to configure and has a lot more plugins. Most major plugins are covered by Webstorm or plugins, but it's the small things that give you an extra push. Webstorm is more polished. VSCode is faster and more configurable. They are nearly equal rivals in my book, except one thing. Git integration in VSCode is horrendous. I work with git constantly while I code and the lack of proper support is a considerable productivity hurt.
- brownkonas 8y agoWebStorm is a bit of a resource pig. Running the stack plus WS plus browser has exhausted RAM, 16GB mind you, on a lot of our teams laptops.
- vbezhenar 8y agoI can launch AAA game, virtual machine with database inside, Intellij Idea, Android Studio, tomcat with my web app, Android Emulator, browser with bunch of tabs and other insignificant software and I have enough free memory from my 16GB. I have no idea how could you exhaust 16 GB with Webstorm and browser alone. It's not a slim software, sure, but 16 GB?
- Lapsa 8y agohave you found vim in your heart?
- namelosw 8y agoI use WebStorm/IntelliJ/Rider/VS+Resharper at work. And use Emacs off work, occasionally use WebStorm/Rubymine. Recently I picked up VSCode and I think it's good. For most of the functionalities, I think WebStorm still won. But VSCode typescript completion is great. WebStorm typescript completion is somewhat strange. However, the mindset of WebStorm follows IntelliJ, of course. You cannot switch projects or single file as simple as code editors. Although it can be achieved but it still feels weird. IntelliJ is constantly trying to improve this like scratches, but it will be still different from code editors. And something off topic, I found IntelliJ/WebStorm is pretty much following Emacs for a lot of features. Like the VSC system is very alike Magit and they deprecated their RestClient and use an editor-based approach just like Emacs RestClient, or simply scratches. Seems a very good strategy to copy from Emacs community at least for MVP.
- Lowkeyloki 8y agoHaving used both, I can say without hesitation that they're both fantastic works of software. I personally use vscode as my daily driver now because it has all of the features I care about from WebStorm but it's free. (I also have a license for Sublime Text and used that for years. I still prefer vscode now. But a developer's IDE/editor is a deeply personal choice and everyone should use whatever software they're most comfortable and productive with.)
- cheerlessbog 8y agoSublime just isn't able to iterate as fast as VS Code can - it's closed source, and seemingly one or two developers. So I expect the gap to widen. Of course if Sublime already fills your needs, that's not a problem.
- karmakaze 8y agoI use IntelliJ IDEs for statically typed languages (and Ruby/Rails), the refactoring/ navigation is top notch and search is super quick. For web work I use VS Code because it has the best plugins for Vue, React, etc. I would also use it for less popular languages.
- giancarlostoro 8y agoSame here. For D the best thing is VS Code or Emacs (Spacemacs) atm. I also swap to VS Code for when resources are tight on a system (VMs sucking all the juice). And when I need a lighter editor I open up Sublime Text 3 or VIM if in a Terminal.
- xrd 8y agoAs the author points out, refactoring is terrible with Code. I use it as my primary editor but often fondly think about how well Android Studio does refactoring. I'm going to give Web Storm a try.