The only thing I’ve ever gotten to debug Meteor (Server Side) has been node-inspector… which is pretty much ChromeDevTools. About a month ago, I tried VS Code, and then it’s big brother, Visual Studio with all of the JS plugins enabled. Here’s my take on the matter:
- VS Code (and probably VS itself) are on a track to become the best js IDEs (I’ll explain why below)
- VS/VS Code have very immature ES6+ support. If it’s Stage 0, I’m probably using it. VS & VS Code do not support many things that are integral to projects I’m working on. This is a deal breaker, my code is constantly marked as invalid, I just can’t use it.
- I’ll be using WebStorm in the meanwhile. It’s got nearly full compliance with es6/7, I don’t really run into any issues with it invalidating valid code at all. However, It’s intellisense/autocomplete sucks (but is getting much better)
- My short term memory only lasts about 12 seconds so …hey wait what were we talking about? so I rely heavily on autocomplete.The WebStorm interpreter does not do a very good job at coming up with the autocomplete results you expect. When autocomplete comes up, the options are either A) 1000s of random methods from anything in your node_modules B) the right function, but duplicate (or triplicate) results. And when it finds “multiple definitions” it does not provide any of the parameter/documentation like it should. C) just reserve words. nothing else.
- So, I’ve resorted to JSDoc’ing literally everything. It’s a huge pain in the ass, I have to define a lot of
@typedef for any type of object I pass between functions/classes/files. But, it works. I get the right results (at the top of a list of wrong ones) 98% of the time. In addition WebStorm has better mouse-over-to-view-documentation support than any JS IDE, period. Atom doesn’t have any packages that do this and atom-tern, it’s only autocomplete provider that does type analysis is stagnant, as is much of atom from what I’ve seen. So in the end, I guess there’s the benefit of my code looking like it’s from some huge opensource library… its not, I’m just very particular.
- It’s going to take VS Code a while to get there. Only last month did they release JSX/React support, something WebStorm and Atom have had for quite a while. I spent about a day digging arround the internet trying to get things working for es6/7 and noticed that blog posts and releases were about 1-2 months a part. So, I’m not that optimistic about how long it’ll be until it’ll be usable. I’ve been following the WebStorm issue tracker, and their blog. There’s a new EAP for download each week that does contain fixes to many of the reported issues.
- Why VS/VS Code is awesome
- plugins available are very robust, I haven’t looked at how they’re developed, but they must give you easy access to some pretty fundamental parts of the apps inner workings. I haven’t kept track of how frequent their (VS Code’s Plugin’s) updates are, but more than half of the two hundred or so plugins for jetbrains’s suite of IDEs are from like 2007 and broken as hell.
- it feels like home. The two IDEs i’ve like the best are Eclipse, then VisualStudio. The workflow just feels right to me, both have always had outstanding intellisense/autocomplete. It doesn’t feel clunky like WebStorm. And Atom makes me feel like a T-Rex trying to drive a semi-truck (wtf? idk that simile makes sense to me) It’s too dependant on keybindings. VS Code suffers from this more so than just VS, but its better than atom.
- it has an extensible api for how to create your own intellisense resolvers. This seems pretty exposed, havent tried it, but I believe it’d be way easier to develop one for what I want than it would be to dig my way in and hijack WebStorm’s lexer.
- VS has always been top notch imho, given time, I think it will get there for JS.
JS is not a statically typed language, it’s not easy to interpret ES5 code, let alone a constantly evolving standard like ES6+ so I’m not saying all the IDE devs suck, they’ve done many amazing things.