Hey everyone!

I was just wondering why one would use any of the programs I mentioned above instead of VS Code to write Code.

Can someone give me a brief overview of the advantages?

Thanks in advance!

35 points

If you frequently work on remote systems you frequently only get command line access, where you can still use vim/nano/emacs but not a full IDE like VS Code. In that case you might find it more convenient to learn one text editor well and forgo the IDE.

permalink
report
reply
5 points

you can use vscode over ssh, without installing anything on the remote system.

permalink
report
parent
reply
13 points

There’s a long list of caveats when running VS Code over SSH. By comparison, text editors:

  • Work on Alpine remotes
  • Work on older distributions, and other *NIX systems
  • Have no problems with SSH key passphrases or security keys
  • Only require a few MB of memory
  • When run in tmux are largely resilient to SSH connection issues
permalink
report
parent
reply
5 points

Yea, no. It doesn’t work with ssh agent and it cannot read includes and other configuration options. I believe it also tries to install some components remotely which is bad enough, but causes additional issues in environments with proxies or without internet access at all. Iirc also plugins must be installed remotely to work.

In a normal professional context it just does not work and it is a hassle to deal with. It might work in a home lab, but nowhere beyond that.

permalink
report
parent
reply
23 points

From the perspective of someone who uses Visual Studio Code, but also knows how to exit vim, there are a couple reasons that most developers who prefer one of the three, at least those I’ve spoken to.

  1. VS Code is a Microsoft product, and while “open source” it isn’t really open source. The core utility is but Microsoft ships the final application with some proprietary features. If this is your main gripe, then you can try VSCodium instead, which is a “fork” that doesn’t have the Microsoft additions.
  2. VS Code uses Electron, which is essentially browser emulation and isn’t exactly optimized. CLI editors like the above take up far fewer resources than a Visual Studio Code instance would. Unlike point (1), I don’t think there’s really a way around this in all practicality. It’s just an unavoidable fact. You can chose to still use VS Code of course, most personal computers can easily handle the load. But many see that as unnecessary when they get the same amount of “power” from a CLI editor.
  3. Plugins for the CLI applications are very powerful, and the ability to navigate using only the keyboard is by design. Many swear by keyboard-only operation of a computer because it’s faster and promotes more optimal methods of doing tasks. It forces discovery of new features and hotkeys by making things annoying to do otherwise. VS Code (and most editors) include a “vim keybindings” specifically for this reason. You’ll find that it’s a very popular method of working.

Really it comes down to personal preferences and what you “grew up” using. It’s really hard to transition into something like vim and it takes a concerted effort to switch by most users. You have to want to switch, otherwise you’ll find it too difficult a learning curve or find yourself wandering back to more “featured” applications.

There are likely more reasons out there, but these are, in my experience, the primary reasons.

permalink
report
reply
2 points

I like VS Code, but it regularly takes up 3-5 gb of ram on my systems to edit 2-3 text files.

permalink
report
parent
reply
20 points
*

They work in terminal. To me a more interesting question would be, why VSCode over PyCharm for Python for example.

permalink
report
reply
11 points

Vscode with plugins works for many many languages good enough and the git integration is good. So if your job is like mine where you support many systems then having a common tooling is nice. Also you can setup containers with different configurations all ready for various projects.

permalink
report
parent
reply
5 points

Vim/neovim with plugins does exactly the same but uses less system resources. Lunarvim is a good place to start for a preconfigured neovim IDE.

Emacs will also be similar but I’m not as familiar with it.

permalink
report
parent
reply
3 points

There is also LazyVim which I personally am loving

permalink
report
parent
reply
1 point

But does actually work like an IDE? I for example love PyCharm understanding type annotation. Not only it highlights errors, but also improves autocompletion and makes big refactoring less scary.

The integration with data grip (unfortunately that’s available in paid version) allows for similar behavior with SQL contained in strings. Which IMO fixes the impedance mismatch that created the need for query builders and ORM frameworks.

permalink
report
parent
reply
2 points

VS Code has some pretty good ide features for python, including understanding types, highlighting errors and warnings, linting, navigation features such as go to definition or go to references, and basic refactoring capabilities like rename symbol. These features are enabled by the python language server (pylance, in this case, which is Microsoft’s proprietary one).

You can also get the same features in other editors that support the language server protocol. For example, I use neovim and my setup supports those same IDE features I used to use in VS Code for python.

permalink
report
parent
reply
8 points

+1: ed/vi/vim is on every system with a shell, if you can ssh into it, you can edit files using those tools, it’s worth knowing them.

Nano is adorable, and EMACS is notoriously huge, both in capabilities and learning curve.

permalink
report
parent
reply
14 points

Because Microsoft is The Debil.

permalink
report
reply
2 points

*the gerbil

permalink
report
parent
reply
13 points

Different tasks. VSCode is littered with half-baked spaghetti code from various projects. My terminal window is for system-level non-project interactions.

I stick with terminals and vi for various day-to-day administrative things, because you never know when you’ll have to log into a different machine which doesn’t have all your software and preferences set up. I would prefer not struggle to recall keyboard shortcuts I last used 100 years ago when that happens.

It’s bad enough having ADHD and long covid to completely obliterate my working memory, without the added irritation of googling “man vi move to section”, knowing you have definitely used the command many times in the past.

permalink
report
reply
2 points

Exactly, I think it just comes down to being good practice. There’s a 99.99% chance that any unfamiliar system has one of vi, vim, emacs. Not bad to be familiar with one or each.

permalink
report
parent
reply
2 points

I do this too. I refuse to change the keyboard shortcuts in any application I use, except to mimic the shortcuts of a more popular application

For example, I use GNOME Terminal’s keyboard shortcuts in kitty

permalink
report
parent
reply

General Programming Discussion

!programming@lemmy.ml

Create post

A general programming discussion community.

Rules:

  1. Be civil.
  2. Please start discussions that spark conversation

Other communities

Systems

Functional Programming

Also related

Community stats

  • 171

    Monthly active users

  • 351

    Posts

  • 631

    Comments