Hacker News new | ask | show | jobs
by gobookdev 1805 days ago
VS Code is my favourite software of all time, no need to use the menu bar with the command pallete and the excellent custom keybinds. It completely gets out of the way it is still more feature rich than any IDE through extensions. A blinking cursor is a small price to pay, I haven't even noticed that. I know it's not meant to be good being written in mostly TypeScript, but it just is.
3 comments

VS Code has some of the worst product quality I've seen from Microsoft in quite a while. It doesn't hold a candle to IntelliJ or Visual Studio. Even directly comparable "lightweight" editors like ISE are far superior.

Random examples of bad behaviour in commonly used parts that would affect just about every user:

If you try to search & replace, it'll refuse to remember "replace in selection". It'll reset every time, destroying your entire file instead of replacing just in the selected block.

If you do enable this feature, it'll change what you've selected, because... why?

Even with the feature enabled, the "search preview" will highlight matches outside the selection block! WTF?

There's no memory for recent searches, so if you've just spent ten minutes carefully crafting a regex and you accidentally click the wrong thing, then it is gone forever.

The recent files list isn't a list of recent files.

The console overwrites itself sometimes, resulting in gibberish output. It's particularly bad with PowerShell that uses Write-Progress. I've sat around for nearly an hour waiting for a process to complete, when in fact it was prompting me to continue. I couldn't see the prompt because it had overwritten it (incorrectly).

Someone thought that manually editing JSON files is a suitable GUI for configuring basic settings.

Ctrl scroll up/down doesn't change the zoom (or font size).

Unlike most Microsoft editors like the PowerShell ISE or Visual Studio, MS Word, and most third party text editors, block select isn't alt-drag but middle-button-drag instead. No middle button on your mouse? No block select for you!

It's unfortunate that many new Microsoft languages are supported in VS Code only. It feels like a huge step backwards that's being forced onto an enormous community.

Every tools takes getting used to and learning it's quirks. Where there are problems within VS Code, there will be different problems in IntelliJ. I quite like VS Code while disliking IntelliJ. Same old story of differing preferences.

> Someone thought that manually editing JSON files is a suitable GUI for configuring basic settings.

There has been a GUI editor for settings for a while now, as well as the JSON editor.

> Every tools takes getting used to and learning it's quirks.

There's necessary differences and quirks, and there's just... unfathomable hubris by the developers, to the level that it's almost an insult to their user base.

Why not alt-drag? EVERY Microsoft tool uses that shortcut EXCEPT for VS Code!

Was it not written by Microsoft developers? Is it conforming to a standard I've never heard of, a standard that nobody else at Microsoft has ever heard of either?

Why didn't they most simply and most trivially just copy the default keyboard shortcuts from Visual Studio? Wouldn't that have been easier for everyone?

Writing something "new" doesn't meant that you're forced at gunpoint to change standards, ignore commonalities, or just do a bad job. It takes the same coding effort to configure "alt-drag" as it takes to configure "middle-drag"! There is no time saved by being sloppy, or lazy. This isn't a corner being cut to save time, this is a reversing of the direction that the steering wheel has to be turned. That doesn't help you manufacture the car faster or cheaper, and it doesn't help drivers.

( I'm not being flippant, the VS Code team literally flips things for no reason. See: https://news.ycombinator.com/item?id=27807085 )

VS Code has improved so much in such a short period of time, if people are comparing to a 6 months ago there has been endless improvements. I really like Intellij, think it's great as well, but it makes you do things in certain way depending on what language you're using. After learning how VS Code works you can use it however you want with whatever language you want.
I'm on the absolute latest build. All of those issues are from this release.

The previous releases were markedly worse, and absolutely unusable for PowerShell. I've never seen anyone switch from ISE to VS Code willingly. I'm forced, because I'm using some modules that are core-only and required PS 7.0, which works with VS Code only.

It doesn't matter if it has "improved" a lot if it is still by far the worst text editor slash IDE on my computer. I have five others, including two free editors that are better. And faster...

Ah, there is so much wrong with this comment.

Comparing VS Code to ISE is next level of wrong.

You mention mostly few search and replace bugs as a proof, but those are just bugs. There also is search history just behind a hotkeys.

While I agree that search needs some love, its hardly a show stopper.

My experience is exactly the opposite - VSCode has some of the best product quality I've seen from Microsoft ever, period.

> There's no memory for recent searches, so if you've just spent ten minutes carefully crafting a regex and you accidentally click the wrong thing, then it is gone forever.

It has this now, although the click target is some teensy text.

(I also find the search very frustrating, like it replacing the search with your current selection sometimes)

Up arrow within the textbox also works to restore previous searches.
This function is handled by the DOWN arrow in other text editors!

I just tested a bunch:

   VS Code:       UP
   Visual Studio: DOWN
   Notepad++:     DOWN
   TextPAD:       DOWN
   IntelliJ:      ALT+DOWN
   MS Word:       DOWN
Sigh... I have no words. It's just so sad that I expected this. I literally pressed "DOWN", it didn't work, there's no drop-down GUI indicator, so I just assumed it was a missing feature.

Instead, it's yet another feaure where the VS Code team picked something at random without apparently ever having used any other text editor or IDE in their lives. Ever. Ever before. Of any type, from any platform. Certainly not Microsoft products on Windows.

It boggles the mind. Are they all JavaScript front-end developers with no previous IDE experience other than notepad.exe or something?

Wait... Electron. Ah. They probably are.

I think VS Code in this case is just trying to emulate the behavior of terminal history. Another commenter mentioned that Vim was the same. Up and down arrow navigating history seems to be a more common thing in the Unix-y world, which VS Code is trying to appeal to.
FWIW, it's up in vim. So maybe the VSCode guys all used vim before? :)
What I love about VI and vim is that every time it comes up, I can't help but bring up this little bit of history:

"Joy used a Lear Siegler ADM-3A terminal. On this terminal, the Escape key was at the location now occupied by the Tab key on the widely used IBM PC keyboard (on the left side of the alphabetic part of the keyboard, one row above the middle row). This made it a convenient choice for switching vi modes. Also, the keys h,j,k,l served double duty as cursor movement keys and were inscribed with arrows, which is why vi uses them in that way. The ADM-3A had no other cursor keys. Joy explained that the terse, single character commands and the ability to type ahead of the display were a result of the slow 300 baud modem he used when developing the software and that he wanted to be productive when the screen was painting slower than he could think."

Yeah. Let's copy what a specific terminal did in 1976. That doesn't actually fit any modern keyboard layout. Brilliant. That's the standard to aim for! Not the most popular computer system on earth, by any metric. Nope. That's not the standard. The standard is the ADM-3A terminal, which probably fell into disuse before any of the Windows Terminal developers were born...

Did I mention the 300 bits per second terminal being the key design constraint? Oh, I forgot to mention that while entering this text on my gigabit fibre connection.

You're reading this on a phone? Is it 5G? Then it's faster than my fibre.

An example of why it matters: hit command-S to save your file. Native apps confirm the save by highlighting the menu bar until the save is complete.

VSCode does not indicate to the user when the save is complete. I've had saves require 15+ seconds, and they are not atomic, so you must be careful to not use the file (compile, git, etc) until the save is finished, which is hard to know. I've personally lost data this way.

I agree that command palette is great and is clearly a point of convergence among new apps. I wish Apple would embrace it!

A tab in vscode has a dot in it if the contents are modified since last save.

If a save is complete, that dot will go away. If there is no dot, the file is unmodified.

Speaking of which, it also changed the decades old symbol for unsaved files (an asterisk) for no discernable reason. Given that it also doesn't save on loss of focus it led to my many WTFs when I first started using it.
> VS Code ... is still more feature rich than any IDE through extensions.

Not sure what you program in, but that has not been my experience at all. C# (Unity), Golang, Python have pretty mediocre support at best in VS Code. What JetBrains' products do there is miles ahead, and tacking on countless extensions doesn't get you close to the out of the box experience, so I fail to see the point.

If I'm quickly editing a single file, sure I might fire up VS Code or Micro. For actual work though, the JetBrains products can't be beat (for me at least).

I program mainly in Go, Python, TypeScript and some C/C++. A year ago I would have agreed with you, but one extension for each language now gives you almost everything you need. I bounce back to Goland, Webstorm, CLion and PyCharm occasionally as they have much more reliable refactoring, and have some really nice features missing from VS Code, but being a Polyglot VS Code makes it so much easier to use similar keybindings and processes across languages, I don't have to fight the IDE to get it to do what I want. Both great tools but my daily driver became VS Code a few months ago, it's pulled ahead in my opinion despite being free.
You could always install additional language support in your main JB IDE too. I could see some point if you're constantly working in 3+ unrelated languages for sure, but I don't think that's the typical day to day workflow of most people.

The refactoring, intellisense, and bonus features are hard to give up once you get used to them. A good Go debugger, actual Unity integration that inspects the scenes, references, usages, etc, or Python type hinting actually helping the development effort, are just some things that come to mind.

It's cool there's an open source editor that does most things quite well for sure, but a hundred dollars or so is extremely worth it, if you're even 1% more productive. I'd estimate the real boost I got from JB products is much higher, particularly when it came to Go and C#.