Hacker News new | ask | show | jobs
by rco8786 954 days ago
> the text editor

This is...not a super accurate way to describe VSCode

7 comments

It’s in the same feature family as emacs, Sublime, Notepad++, etc — all of which are called text editors.

They all have extension architectures that expand on what that means, but they all cover the same kind of use cases and they all stop short of traditional Integrated Development Environments.

Unless you’re saying that none of the others should be called text editors either (a daunting uphill fight against history), it’s an exactly accurate description.

VSCode is far superior to the actual Visual Studio in so many ways. It's definitely closer to Visual Studio than it is to Notepad++.

On personal note: my company pays for Visual Studio Ultimate + Jetbrains for me and I rarely open it these days and use VSCode 99% of the time.

I don't agree. Visual Studio Code lacks the actual 'visual' part, like the form builder.
That is a good point about the name, never thought about it. And if I ever wanted to write gui code that only worked in windows, I guess I'd consider it? But that has never been a use case for me, and everything else about vscode is better.
Yeah, it's superior to Visual Studio because it's more like Emacs, a text editor.

Emacs users saw the benefits of a single text editor a long, long time ago. Back when I started programming it was common for people to use a different IDE per language. There was VS, Eclipse, Dreamweaver etc. I thought that was insane. It's been funny seeing people finally realise the same a decade later.

counterpoint:

JetBrains IDEs are the sweetspot between absolute single purpose IDEs (like Eclipse) and text editors that require plugins to be useful (broadly speaking).

I am all in on JetBrains, to be perfectly transparent, but I have yet to see anything come close to the seamless experience I've had with their IDEs

Eclipse a single purpose IDE? Back when eclipse was the dominant java IDE, it almost felt as if a language did not exist before it had its very own eclipse plugin.
Yeah, didn’t they market themselves as the framework for IDEs? I can remember in the late 2000s Eclipse was very popular in the php community. The C/C++ plugin was also widely used.
For Windows development Visual Studio is still more powerful. People who have developed solely on Macs or juniors who started in 2020 with only web dev experience won't understand and they're usually the ones that have the "VS Code is better" opinion.
I've developed in .NET, I've even worked with a large .NET monolith ( > 100 devs). Even in that circumstance while visual studio was installed by default, most devs used vs code. It's not just them young ones anymore.
As someone who's used vs code occasionally but still primarily uses visual studio what are the big benefits you see of vs code of the traditional visual studio?
For me personally the use of vs was only during my studies. A comparison by me between the tools I've actually used extensively would be between emacs and code.

Someone mentioned the visual aspact of vs. That I've literally used once, at the very start of my bachelor. Vs is confusing, huge, and densely feature packed. I think I just never took the time to enjoy the features vs has.

This isn't weird when you consider my top choices: vs code and emacs both share the characteristic that they get out of the way when I'm doing my stuff. I usually want the bare bones, vim keybinds enabled workflow when I'm working, because it's fastest and it's what I know. I can use smart features like var renaming, autorefactoring etc. in all of these options, but in vs code and in emacs I feel less like they're butting in when I don't want them to, and when I'm changing settings or executing commands I'm not traversing a dense jungle of menus, settings and options like in vs.

In short for me the experience is easier and therefore more flow like.

More like juniors who started in 2016.
Try publishing a .net webforms project in vs code. Or jetbrains Rider for that matter.
The gauntlet has been thrown! I respectfully decline the challenge, as I am no longer a gentleman of the ViewState society.
What can VS Code do that Visual Studio can’t?
>> What can VS Code do that Visual Studio can’t?

Run natively on Linux:

https://code.visualstudio.com/docs/setup/linux

Set breakpoints and step through rust code running remotely on a microcontroller?
And so is emacs, but nobody has an issue calling it a text editor.
Does Emacs also have text editor?
No, it's an operating system. Sadly they left out the text editor.
There actually is a text editor in there somewhere at least if you believe some of the MIT neckbeards. But you have to sort of tease it out with the proper meta key what-have-yous
You can install vi into emacs, and vi is the best text editor.
You can however use a facsimile of Vim called Evil.
i once had a fax machine running on emac
You can always open eshell and run ed(1), as it is the standard editor. ;-)
It's no Acme but it's still pretty good. For me at least it's a sight better than modal editors like Kakoune, those just don't mesh well with how my brain works; Emacs' keyboard chording is far more pleasant.
No, but some people insist in use it for this purpose.
It does, but it's a pretty mediocre one.
I think the point at which you have integrated intelligent breakpoints, seamless in situ data inspection, call stack tracking, proper lexical scoping of variables, etc, etc.. you've left the realm of "text editor"
What on earth would VSCode need to add to be classified as an IDE? It does so much more than Sublime/Notepad++/eMacs out of the box. It’s not even close.
Vertical integration with the toolchain, for one. Most text editor extensions rely on least common denominator integration with tooling through an adapter layer like LSP.

And that works pretty darn well, but struggles to integrate all of the toolchain's development opportunities into the workspace environment.

Horizontal integration across workspace modules would help too. Most text editor extensions rely on a least common denominator UX language through command palettes and button arrays and human-editable config files.

And that also works pretty darn well, but struggles to integrate all of the workspace environment's features into coordinated development workflows.

There is no slight being made against VS Code to say that it's not the same as a more fully integrated development environment. It's a very powerful tool in itself, capable of meeting most developer's needs and is far more extensible and adaptable than IDE's aim for.

LSP was literally developed for vs code. Using it as an example of what text editors use to approach ide's is in the context of that fact rather odd in my opinion.
The line has become fuzzy now that vim has solid LSP support for auto complete and highlights errors in real time.
They cover all use cases of traditional IDEs, but you need to edit files instead of clicking through endless menu hierarchies. They also don't tell you what your compiler or build system should be.
> It’s in the same feature family as emacs,

I resent that emacs is a full on OS that just happens to have a less than stellar text editor.

Categorizing VS Code as akin to Microsoft Word or Google Docs seems...profoundly weird and more confusing than elucidating. I'm gonna stick with "IDE", personally.

[EDIT] It seems folks won't classify Word/GDocs as "text editors" due to their additional features. Great point! I'm getting deja vu...

Word and Google Docs are not text editors [0], they are word processors [1].

[0] https://en.wikipedia.org/wiki/Text_editor

[1] https://en.wikipedia.org/wiki/Word_processor_program

Yep. I didn't call Word/Docs/Code text editors, and all for the same reason. That's the joke. Guess I was too cute by half.
You're missing that IDEs have additional functionality not built into text editors or source code editors.
Indeed I am. What universal IDE functionality is missing from VSCode? My vanilla install is aces for full-stack TypeScript work, but I'd love to know what I'm missing!
Microsoft Word and Google Docs are _Word Processors_ which are technically for editing text but are now much closer to desktop publishing software, especially with the emphasis on styling and graphics.

emacs, vim, and VSCode are _Source Code Editors_ which are a type of text editor. You can make a source code editor into an IDE by adding integrated compiling and debugging tools.

That would indeed be weird given the fact that the text editor does not edit rich text like Word does
From the crappy bolt on things required to make it anywhere close to a decent IDE, it is essentially vim with tons of incompatible plugins that continually conflict one and other.
Can you provide an example of a crappy bolt on or a set of incompatible plugins? I’ve not had that experience and I’ve used it for six or seven languages.
Calva and vim plugin. Anything that adds custom shortcuts.
It is a text editor. People treat it as an IDE, because it can be made that way with plugins, but fundamentally it is a text editor.
A fresh VS Code install has all the usual IDE tools I need for my job (editing, debugging, symbol parsing, etc). Is it still not an IDE? Suppose it was missing something for someone else's workflow. What if we bundled all the extensions needed for most developers into the install? Is it an IDE then? We just need less modularity/more bloat at install?

Distinguishing VS Code from IDEs seems so forced and unintuitive to me. What's the point?

I've always described VSCode as a text editor with IDE capabilities. I would personally call it a text editor and not an IDE though. If you do a fresh install of VSCode you may notice that almost everything is a plugin. Even basic language support for popular languages like python are technically plugins. Everything you add from there are as well. A true vanilla install of VSCode is truly a text editor.

However it was designed really well in that it has a lot of good integrations which make plugins feel almost integrated and natural. Not to mention the plugin process is the smoothest i've seen of any text editor so for many people it is transparent, they just think they are enabling features and don't realize they are actually just downloading 3,000 plugins.

I'm not trying to argue a no-true-scottsman here. If people want to call it an IDE they can.

But download something from JetBrains and give that a go or something like xCode or the real Visual Studio and you'll see how deeply "integrated" it is, so that it feels like a full featured developer environment from the start, hence the IDE moniker.

There's nothing wrong with VSCode. You can do your whole job in it i'm sure. But compare it to something like JetBrains and it is really really hard to put them truly next to eachother. With enough customization you can get VSCode close, but it sure isn't like that without a lot of customization and plugins from 100 different developers with varying levels of support and reliability.

Fwiw, the Wikipedia page for Visual Studio calls it an IDE and the wikipedia page for VSCode calls it a "source code editor". So maybe as a "source code editor", thats where it bridges the gap between IDE and Text Editor.

What new feature(s) must VSCode implement to gain the moniker of "IDE", in your personal opinion?

VSCode feels pretty bog standard in the pantheon of IDEs that I've (ab)used over the decades. By default VSCode searches symbols/references, formats code, debugs, has an integrated terminal, handles source control, has smart autocomplete and snippets, etc. I've never harkened back to my days with PhpStorm/PyCharm/VS/Eclipse/CLion/etc and thought "gosh, I wish VSCode did <this-feature>".

To me, if VSCode is closer to Notepad than to NetBeans, then the "text editor" vs "IDE" distinction is virtually meaningless. Ditto for the term "source code editor." I guess it's just personal preference though.

To me the line between editor and IDE is you don't have to leave the IDE to do anything if you don't want to. Including the thing that VS Code lacks in most cases: projects and compilation. For example, in Visual Studio you can go from "New Executable" to an actual compiled executable without leaving Visual Studio or using a terminal.

Not that I want those things in VSCode, and if I did there's likely a plugin for that. This is just where I happen to dilineate the two.

Plus, each plugin is maintained by an independent developer and you don't know what the quality of their code is. When I tried VSCode on a Mac, the C/C++ debugger plugin panicked and terminated the process whenever I tried to set a breakpoint, because it didn't understand the format of the debugger for some reason, even though that is the same debugger that the plugin itself bundled (so they should have been verified to work together).

AFAIK there were at least 2 of such plugins available, but this was the more popular one, and I don't remember what I tried before giving up, but I do not want to be playing Linux with my IDE. I need it to actually work.

But isn't Visual Studio the same? You still have to install the relevant Workloads[1].

If I suddenly want to do C++ development - I need to install it. And it's not easier than it is in VSCode.

[1] https://learn.microsoft.com/en-us/visualstudio/install/modif...

If VS Code is not an IDE then I don't know what an IDE is
It is not integrated, so it is not an IDE. Text editor seems like the best description for it.
It does have an integrated debugger, build systems, code intelligence, refactoring tools, and version control.

What other things need to be integrated before it can be blessed as an IDE?

This is what I'm saying! At the risk of ad hominum - I feel like a lot of the comments classifying VSCode as merely a text editor haven't really used it for development - at least not directly or in a long time.

Though this whole thread could really be considered off-topic since the original post is about Visual Studio for Mac!

Does it or are they available as a plugin?
Yes. These features are directly supported by VSCode. They aren't added via plugins.

Support for specific languages/debuggers/build systems is provided by extensions.

Look up how LSP and DAP work for example. A hugely successful extensible IDE system.

This was how the Visual Studio crowd inside of Microsoft described it until VSCode basically destroyed their business. :)
I don't know how good VS Code is now (with regards to all the features VS had) mainly cuz I don't code in .NET, but I still miss the powerful tools from VS that I had nearly 20 years ago (for C#), in Ruby, Elixir, etc (and some other languages).

The amazing debugging, stepping through, etc that Eclipse and Visual Studio has, were leaps and bounds more superior to all the stuff that was lacking in the simple text editors.

LSP has helped tremendously. And there are similar debugging protocols. It's kind of getting there, but again, nearly 20 years ago, I could start up a project and hit the debugger immediately without fiddling around with settings and googling around.

And I feel the lack of such good tooling has enabled a whole generation of "print string" debugging (which I totally do now) because we simply can't easily run and step through.

Is this other people's experience? Hopefully the debug world is better in Go/Rust land than it is in Elixir/Ruby land.

In Node/React/JS land with VS Code I mostly pray for rare function names (miss-spelt words for such names are gold!). There are definitely some things I miss about the Java ecosystem.

But then I debug with console.log (nee System.out.println) so probably I'm some sort of neanderthal.

Have you tried JetBrains IDEs? I use IntelliJ for everything from database work to web development to Python coding and more.
I used to use ReSharper and it became a necessary tool in writing higher quality C#.

I sorely miss its code changing capabilities.

Just simple things like automatically reordering aliases in elixir would be nice.

> but again, nearly 20 years ago, I could start up a project and hit the debugger immediately without fiddling around with settings and googling around

It's working in VS Code now, too. For popular languages, you just have to install the respective plugin (only TypeScript is builtin), but it's just a click on the prompt. I've been doing lots of Python debugging and it's pretty much a seamless experience.

Properly navigating through python modules (clicking through to the module source) doesn’t even work nicely in VSCode (even with the base python extension installed) so I don’t have high hopes for debugging being any better. VSCode is amazing for typescript though, and I had great success doing C++ and Rust. Python seems lacking in my experience though
> Properly navigating through python modules (clicking through to the module source) doesn’t even work nicely

That's weird, it works for me just fine.

Excellent. I remember C# support for .NET Core was really solid even 6-7 years ago.

So for a large number of use cases, they have to be talking about retiring VS eventually too.

This multi-process architecture (with language servers, debug servers, remote SSH mode, etc probably making much better use of multiple cores has to be easier to migrate to)

Yeah. Remote mode is a killer feature IMO (sadly the official implementation is closed source, and there's no support for Docker in unofficial ones – although coincidentally I'm working on this)
Yeah remote mode is amazing. All the visual latency is 0, but the “brain” is on a different server over a low traffic link.

I’ve used it before on a mobile tethered line with Tailscale and it was magical.

I wouldn't use the word destroyed - Visual Studio (Windows) has been a billion-dollar ARR business for a long time, and likely still is. The trajectory is certainly not in favor of it, but there's an utterly massive number of enterprise .NET and C++ devs on Windows who will be using it for a long time.
Indeed. To use the new C# devkit in Visual Studio Code you need a Visual Studio/MSDN subscription too.

JetBrains Rider's a bigger competitor but even then (at least at my org.) most devs have a Visual Studio Professional/Enterprise subscription as a backup.

There are alternatives though. I've heard somebody hooked up Samsung's open source C# debugger, for example.
The crazy thing is that - I worked on VS 10 years before you did - and it was at a (near) billion $ ARR back then. So, it looks like it has been a flat business for a long time.
That's what happens to mature products. Not everything is a brand new startup that grows 1000% every quarter.
It's more that Microsoft lost the cross platform war. .NET lost and electron won. They even use it (or their own WebView knockoff) for their own products now. So there's no more need to give .NET away. They just milk the niche market that still depends on it.
>> the niche market that still depends on it.

That "niche market" likely pulls in billions of dollars from enterprises.

Oh, undoubtedly. When I was there the writing was on the wall -- it's got a decade or two more life to it, but it's long peaked on the ARR curve.
It's technically correct (which as everyone knows is the best kind of correct), it just, uh, omits a few details for the sake of brevity.
Isn't it? I use it daily and that's precisely how I'd describe it.