Things I love:
- Intellisense is immediately superior to anything I've used in EMACS.
- Goto definition.
- Good typescript and Flow integration
Things I miss:
- IDO Mode (FML I hate Finder for moving through directories)
- Creating files with just the keyboard (probably possible but I haven't figured it out yet).
- Kill ring
- Moving around the code with just a keyboard (ctrl-v and the sort).
- Non-intellisense completion. When your caret is at the end of a word, Command-\ in EMACS completes to another word from the same buffer that has the same prefix and continue to swap through words on subsequent presses. Very useful in a dynamic language.
There is a bunch of annoying bugs waiting to be fixed, e.g. the one about the imported types .
In the other hand, I don't blame the maintainers. The Flow team is a really small team and the VSCode extension is obviously not the priority. :)
If you guys see this message, thanks for the amazing work on Flow!
I actually like Flow slightly better but the community created type libs for TypeScript convinced me to go that direction.
By the way, the Flow extension for VSCode is a port of Nuclide, so it's almost the same end result I guess.
For JS maybe. Irony with irony-clang is the best C++ autocomplete I've found. VSCode's C++ Intellisense is crap.
EDIT: On trying it out, it seems to have reasonable support for most of the editing functionality, but the shortcuts for handling split buffers (C-x 0, C-x 1, C-x o, etc.) is completely non-existent. I'm unsure right now whether I'd be able to define them on mine own or whether I'd be willing to stick with it if I couldn't.
For anyone interested:
> Moving around the code with just a keyboard (ctrl-v and the sort).
That is something I have missed in pretty much every IDE I have ever used, except OpenWatcom's, which allows to use vi-keybindings. (Okay, so Eclipse supports Emacs-ish keybindings, too, but it felt really weird using those.)
I think, there is a plugin/package for VSCode that implements emacs-style keybindings, but I could not get it to work properly. :-(
For completion: Ctrl-space will force a completion at your current location.
The only environment that I've been in where it was critical was large Java projects. I would have been lost without being able to goto def though maven dependencies. Having to read XML to figure out where stuff is would have driven me insane.
Anyway I like how low-memory-on-the-disk and low RAM usage VScode is, so I probably wouldn't enjoy intelliJ and webstorm for those reasons. I felt like even sublime was too bulky for me. Maybe they're good for other people and that's fine, but vscode just ticks all the right boxes.
Once you figure that if anything makes your days better by spending $10 or so a month, not choosing the best tool for the job sounds simply dumb.
I have a friend who sticks with plain vim uncustomized because he doesn't want to deviate from the default in fear of not being able to seamlessly use other environment sounds utterly stupid wasting productivity for 99% of the time being on his own machine.
I am very fortunate in my means right now, but I come from a poor family, and spending money is emotionally trying for me. I gain pleasure from pushing my monthly expenses down as tight as I can. It seems melodramatic but paying for webstorm might just stress me out - I'd constantly feel a need to justify it, like when I tried subbing to World of Warcraft - I'd catch myself calculating fun per dollar. Euck.
Anyway I'm a simple front end dev so I don't think it's necessary for now. As I branch out into Python perhaps Webstorm's tools will add tremendous value, I have seen some cool stuff but I just don't need it for now.
Yes, js devs use debuggers and have for years. Firebug was created and popularized for browser js 10 years ago. Node.js was released 7 years ago, got a debug option one year later using node debugger. It was CLI based and a bit shit. Tools which leveraged Node's debug protocol and Chrome's developer tools (node-inspector) for example were started 5 years ago. Most recently some group associated (maybe on?) the Chrome team started creating a cleaner debug protocol and integrating directly with the Chromium project. That's become the gold standard and is the standard way of debugging for Node 7+. VSCode uses that protocol to offer debugging directly from the editor.
One common need that is a sad state of affairs in the Node world is performance tooling. It's available and competent professionals should invest in it once it becomes necessary but is a pain in the ass to setup and run.
Some of the best programmers advocate for printf over debuggers...
And some of the crappiest programmers run around the debugger for hours with no idea what could be wrong in the program, stepping blindly here and there...
And, come to think of it, with hot code reloading, printf can be just as immediate, but more direct and focused, than
using the debugger. Shame that few languages/environments offer hot code reloading...
Debuggers are a valuable tool that nowadays should be standard.
Just because someone advocates taking a step back in some particular issue (and for specific reasons they argue about) doesn't mean it logically follows that they advocate going all the way back.
Two things: "slippery slope" fallacy and "marginal returns".
I'm pretty sure we can find some ways in which you yourself advocates NOT using some modern language feature in favor of an older practice (e.g. you might be against visual programming languages). Does that mean you are ultimately in the same "punch cars" camp as you suggest I am?
Firebug quickly became the defacto later on. But telling your average web designer about breakpoints, stepping over and stepping into would cause their eyes to glaze over.
Maybe there was some way I didn't know about. There's the 'inspect' flag in node 6 now that prints out a link you can copy into your chrome browser to debug server node code.
EDIT: Just saw this on twitter: https://vuejs.org/v2/guide/typescript.html
> vue core, vue-router and vuex 2.0 all have TypeScript typings shipped in the npm packages
- It a little faster for Typescript (but no better TS features from what I can see).
- A lot of people are trying it because it's new, or because they like MS tools.
- It's free
On the other hand WebStorm still has more functionality overall, a few less rough edges, and a more standard UI (some people don't like how MS Code doesn't have a tabbed doc UI).
My personal calculus is that WebStorm is so cheap, I would not allow my primary tool to be even 1% worse to save money. Also I like those crazy guys - they have been pushing out features very fast for years now.
From my experience, I would just add that while WebStorm is indeed far more powerful in terms of features that it has, it:
- is actually slower even than VS Code for many operations (both of which are, when compared to a native editor like Sublime or TextMate 2, objectively slowww at basic operations like launching and opening windows)
- it comes with a shopsack full of shit enabled by default, that most people will need to scale back, adjust, or turn off before getting productive. E.g., on the Mac, all the text editing keyboard shortcuts are wrong, drag and drop doesn't work like any other app, some windows can only be docked or floating windows (wtf!) and can't be put in the background, and all sorts of spurious code-linting and annoying popup suggestions are enabled by default. It's the UI equivalent of somebody shouting all sorts of commands and suggestions at you, while when you first open VSCode its a fairly minimal rectangle of text that you can work with right away and gradually learn the advanced features when you are ready to.
So one answer to "why people use this instead of WebStorm" is probably that, especially on Mac, many people's first response to WebStorm is to groan "bleeeccch! yuck!" and close the window and drag the app to the trash.
(I did that a few times, too, but in the end the WebStorm the code completion and intelligent navigation was so much better than anything else that I decided to endure the UI atrocities and stick with it.)
That "full of shit", which is useful to some, I just go to plugins and uncheck them, once.
VS Code has had tabs for over half a year now, since the 1.3 release in June. Beforehand, the "active documents" acted more or less as nerfed tabs, but I agree the real tab support was desperately needed before 1.3.
> they have been pushing out features very fast for years now.
WebStorm gets major updates 2-3 times a year, VS Code gets major updates 12 times a year. I'm pretty sure you can't really call WebStorm "very fast" on that front given that metric.
I've never used WebStorm so I can't really comment on the other points, but you're also being very vague. What are some examples of more functionality and less rough edges?
When I had to work on a Java project, using IntelliJ was a dream. The same environment, but with sturdier refactoring. Plus it taught me Java idioms by whispering gentle suggestions while programming.
In Rails, when you rename your controller it renames your routes. It has a great debugger integrated that just works. It has support for your rake tasks, at par with the deep integration into all environments it support.
When they changed their subscription model to an yearly fee, I was happy to be giving more money from my limited paycheck to this company. It is the kind of software I'd write love letters to. I make tools for developers, and one day I want them to be of the calibre of JetBrains' products.
- source is on github
Stuff like Atom, I dig a dozen plugins only to keep 3 or so in the end, because they're written by random people with random quality, which is not much of use.
Boot up times are important for me because sometimes I'm in the terminal and I want to open a file, work with it, then quit (`cmd+q` or `:q`) when I'm done. WebStorm is not my friend in those cases. Vim is. Surprisingly VSCode is as well.
So for me, VS Code is a lot faster, not just a little bit. Also command invocation is faster via F1 key.
Apart from that, VS Code just feel a bit more "modern", for example in the areas:
- git integration is more straightforward, or "just better".
- settings are also better organized, no more browsing various dialogs, everything is in one json file.
PHPStorm on Windows ships with 32-bit Java. You have to install 64-bit Java yourself and change your Windows shortcut to point to the 64-bit PHPStorm exe. It also has it own vmoptions file.
If you install Jetbrains Toolbox App you can tell that run 64-bit for you and also set java heap size.
My best guess for your downvotes is that your comment isn't only nonsense and inaccurate, but also pretty churlish.
How is it mean spirited to post observations about something people were asking about?
And if something is incorrect why not just say what it is?
Are you accusing me of secretly living in the Czech Republic while hanging out HN to astroturf for WebStorm?
Was there a mistake in the comment?
Or, I hate to even ask, is this some sort of childish fanboy thing?
From one member: "VSCode has a relatively small team compared to the size of the product" - https://github.com/Microsoft/vscode/issues/13138#issuecommen...
Before, everyone would've been stepping on each others' toes because only two out of ten people would always be rated top performers and two more would be forced onto "performance improvement plans" (aka "you're about to get fired").
And here's me writing code that creates csv files, that get copied from one server to another server (on another continent) - without anyone reading them.
Especially with await / yield-promise type stuff, I could imagine this will make debugging much nicer.
There is an issue though that I find so annoying and I just hope they fix it.
I set up the external terminal to git bash on windows and sometimes when I'm deleting commands with the backspace it doesn't really delete the full word, hard to explain but as an example if I type "nani" and then press backspace "nani" stays but I know it has been deleted because it kinda flicks so I type "o" now I have in the terminal "nanio" and sure enough if I now type the name of the file it edits it.
Hope this makes sense, I put up with it because I'm really enjoying the product and the speed of development.
Big congratulations to the team.
You guys are fantastic
See link for suggestions how to mitigate. I use the tip from the person named sysrpl. VSCode is unusable with that blue color for me.
Sean - VS Code Team Member
Does that mean we don't need those extensions anymore?
- Path Intellisense: https://marketplace.visualstudio.com/items?itemName=christia...
- NPM Intellisense: https://marketplace.visualstudio.com/items?itemName=christia...
(I have not updated yet)
I work on the VSCode team on JS and TS support, so please let us know if you run into any problems with the new path intellisense feature or have ideas on how it could be improved.
e.g. if I start typing './c', it suggests me every symbol in the current file starting with 'c'.
I would love to have only the paths available in the project (like the "Path Intellisense" extension does).
I will post my feedback on GitHub, in case you don't see this message. :)
Going by feature set alone (plugins included) it appears like a good choice, though I've yet to try it myself.
Sometimes, however, autocomplete doesn't work. (If the file is too big, or if you use macros, both of which are very common in rust.) I found the type info tooltips to not be super precise. There's no live error checking, or at least I couldn't get it to work. I also couldn't get auto formatting to work, but I didn't try much. (Since I can just do it from the command line, anyway)
I wish it had more documentation-related features.
Haven't really tried debugging yet, but should work fine. (I believe it uses GDB)
Racer (intelligent auto complete) has always been a bit flaky, but other than that it's been great.
Now I only hope they add in hot-disk support.
Sublime Text 3 checks to see if the currently opened version differs from the file system. If it does, it prompts the user to keep the current version or replace it with the disk version. VS Code just replaces the current version with the disk version and doesn't retain history so you can't undo this.
I lost about an hour of work yesterday because I had a file open in both VS Code and Sublime Text. Pressing save in Sublime Text wiped out all changes. :(
VScode and Atom are constantly receiving new features. So we can say that they are still in beta too.
Beta is just a word.
BTW, really awesome job VSCode team :) I love what you're doing!
(I use it to edit a very large JSON test fixture file)
Also, I did not know how much I needed Zen mode in my life.
Though I've been trying vim again, maybe I'll finally jump into it.. I mean I jumped into Arch linux + i3wm(tiled window manager), moving into the console for everything seems next logical transition toward becoming part computer.
I can then properly refactor my code. I can 'go to definition' and it actually works! Also the editor automatically telling me a 'variable is unused' being switched on by default without some plugin? This should be standard.
Having been a C++ and Java dev before this Node gig, these things were essential for me.
This and the fact that it has lots of tools built in persuaded me to make the switch.
I still keep an eye on the VS Code releases hoping one day I can hop back.
Over 1500 people, monthly, contribute to the project!
I use Notepad++ today and it looks good enough for me. So I wanted to ask more experienced developers: a more powerful tool at this early stage of the learning curve help or confuse?
I'd think that it would work better for you though.
I was interested in using it but noticed the last commit for Monaco was in October.
I have high hopes for a sublime-style "whole document" scroll bar in future releases.
Maybe there's some config I'm unaware of, since VSCode's site does mention "words" as a type of completion, but I've never seen it work for js files.
I might have to make a few actions to do it, and I'm too busy being productive with the go toolchain tools so nicely integrated with the extension.
The vim extension (https://marketplace.visualstudio.com/items?itemName=vscodevi...) also supports vim macros
I worry that it will eventually be a bloated IDE.
Never used it on sublime text. Genuinely curious.
I'd use method listing which is visually more distinguishable.