It's good for new, unrelated stuff. For example if you're just starting to work with python, or just want to test some project, its much easier to setup than nvim or emacs. I also like intellij idea. I think in terms of just works, it is much better. But it is more resource intensive
Programming
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities [email protected]
I use neovim. But if I had to choose between vscode vs. JetBrains stuff, I much rather vscode. It's far cleaner.
I do a lot of c++ and c# stuff. That feature where it opens a list of all the member functions and or variables of a given class or data type, the part where it underlines incorrect code as well as the thing that adds tooltip type documentation with comments to everything you hover your mouse over is invaluable.
The idea that there are people who program without that type of thing blows my mind. I can't just memorize the entire code base myself 🤷 if I had to search the source code to verify every little thing every single time, it would take ages to get anything done.
I only use Linux and I don't know what I'll do when Microsoft eventually takes vs code away from us, whether by making it paid or dropping linux compatibility. I guess I'll have to pirate the jetbrains software or something.
If you're already doing vim an tmux then vscode is not be worth it. The main draw of VSCode is LSP but you can get that from either COC or nvim+lspconfig. Those will still take more effort than vscode but it'll be more familiar.
I used vscode for a few years, but I eventually went back to neovim/tmux. It's a lot less resource heavy, and it's easy to just ssh and jump in from home. I also much prefer a modal editor and I don't want to have to touch a mouse.
I used Sublime Text for YEARS, then they kept changing the license and pricing model, so with everyone at work going to VSCode I finally gave in for scripts and web dev. For Java (which is a decent chunk of my day) I use Intellij.
What's even the point then?
The point is that you can enable each separate extension you want running on your code editor or uninstall them if you're unsatisfied. This makes it as light as you want it to be - or as heavy as you need it to.
I was doing fine with just vim and tmux
VSCode is like vim
without vim controls and in a browser. Seen that way, it makes more sense. With Vim, you have to hunt for obscure Github repositories and follow arcane installation instructions for hidden extensions that you may or may not need and you have to learn a whole-ass keyboard-shortcut-based programming language just to use any of it.
With VSCode, you click on Extensions, search what you want and it'll probably be there unless it's a toxic ecosystem like PHP/C# or some niche ecosystem that no one heard about.
Vs codium, which is based on vscode but spyware is stripped out
Since no one told me this, I will trek people:
If you go for codium, be warned that one of the big points of vs code, extensions, gets a lot more of a hassle.
One of the things you lose is access to Microsofts extension store, and they've added their own instead, and that one is missing a lot.
If you want extensions from the Microsoft store, you need to download them manually from the website, and keep them updated manually.
This includes the Python extension, so no Python for you (or at least no Pylance ;_;)
VSCodium > VSCode
I use VSCodium instead of Visual Studio Code. Visual Studio Code is a closed source distribution of "Code - OSS". The names get a little confusing but Code - OSS is like Chromium, Visual Studio Code is like Google Chrome, and Codium is like ungoogled chromium. I use this because Visual Studio Code masquerades as being Open Source while hiding most of the functionality behind extensions in the marketplace while not letting other tools access the marketplace.
VSCode isn’t an IDE, although you can kinda make it work like an IDE with extensions.
I use Visual Studio Professional as my IDE at work, but we do a lot of C#.
Like (Neo)vim, it's a PDE: Personalized Development Environment
Props to TJ DeVries for coming up with that term.
With these modern extensible text editors the line between IDE and editor is too blurry to really tell. Many things people would agree are IDEs (like Eclipse) are entirely based around a plugin architecture too. I don't think it's worth it to split hairs over whether Visual Studio Code and similar programs are or aren't IDEs. With enough plugins, they're IDEs. With too few, they aren't. Where that line is is entirely subjective.
You also run into different sets of tools that define an IDE. And especially with language server protocols giving almost any text editor access to the only things that were ever strictly the domain of IDEs, I think it's safe to say we live in a golden age of being able to write things with as much or as little assistance as you want
VS Code is a great text editor for me. I write Markdown documents, manipulate bulk strings, and diff files with it. Aside from small scratch projects, its consistency and reliability as an IDE is varied for me. It's far from "just works", at least for the types of things I do (C, C++, C#, Rust) and isn't really on my list of editors I'd recommend for those workloads.
You can make it work, but it's going to require extensive time spent figuring out what extensions to use (and their quirks), ensure that you have a working setup to the language server, and learn how each environment wants you to setup its tasks and launch configurations, if applicable. Unlike larger IDEs like VS or Rider, it doesn't have a consistent "new project" process either, so you're on your own for that.
I wonder what troubles you had with rust in vscode. In my experience. I just install the rust-analyzer extension and it works every time.
Plus some (optional) extension to display the available dependency versions in the Cargo.toml.
Maybe debugging can be a bit tricky, but other than that it's just installing 1 (or 2) extensions.
It's exactly that: the trickiness around debugging is the main thing that feels like it's got some barriers compared to a turnkey solution in an IDE. I heard VS Code and Godot was available until I realized that the LSP and debugger for Godot 4.x was unusable for months until the recent refactor.
Don't get me wrong though, I am totally using VS Code for my Rust projects. It just isn't a turnkey solution that I'd recommend to someone if they just want to hit "New project" and do the whole write-compile-debug loop without needing to understand anything. (I had also used it a while back prior to rust-analyzer being the main go-to extension, I think...)
I mostly use VS Code as a simple text editor with some of the CSV plugins. Though with JetBrains coming out with Fleet I've started to use that more. It doesn't have plugin support yet so it's not getting a lot of use.
For everything else I use whatever JetBrains IDE fits. For work, it's mostly IntelliJ, DataGrip, PyCharm, and DataSpell. At home, it's IntelliJ DataGrip and CLion. I guess I've kinda drank the JetBrains KookAid, but to me, it's worth the subscription to the all products pack. Especially if you are a polyglot since you keep a consistent IDE experience.
As @[email protected] says VS Code is ok for simpe text stuff but I prefer Goland and PyCharm for development. As a Child of TP6 I miss the simplicity of the IDE and the color scheme :)
Check out Pulsar
It's basically the continuation of Atom. It's got rough edges though regarding plugins but it's good enough to allow me to avoid VSCode.
I use it because I'm switching between different projects and frameworks a lot. I found that me aligning with expected use patterns was easier than constantly adapting things for my magic setup.
I'm also not a config hound.
Hell no, Emacs and nvim UX is far superior. I won't ever go back to clicking.
Do not use Microsofts Telemetry Studio Code but Code-OSS or VSCodium.
See: https://github.com/VSCodium/vscodium/issues/267
Regarding your question Code is not powerful enough of what we do at work. There we use IntelliJ IDEA. Our frontend guys use Code as it's enough for them and they usually are not that quality oriented, be it their tools or their product. Sadly mediocre is enough.
Honestly I don't care about telemetry. I'm not trying to start an argument about it, I'm just explaining to readers that there are still reasons to use VSCodium over Visual Studio Code. Visual Studio Code (the build available) masquerades as open source while having a non-FOSS license. https://code.visualstudio.com/license Also, Microsoft does not allow other programs (like VSCodium or Code - OSS) to access the Microsoft Visual Studio Marketplace. Being plugin based, that essentially means all useful functionality in Code-like editors is gated behind a proprietary website you aren't allowed to access except with a proprietary editor (Visual Studio Code). https://open-vsx.org/about
could you give a couple examples of how vscode degrades quality?
Well it may absolutely suck, but they'll tell you
- it's everywhere
- once you learn a few tricks it's great
- you'll get used to a non-intuitive macro and command setup
- adapt your entire workflow around it and you're fine
- it's ... fast?
- it has such power
The last two are lies. And I was talking about vi here, in the hopes you'll get it. And like when I first used vi, the best thing was learning there were alternatives.
I use jetbrains' PyCharm. Work paid for it. It does the things I want it to do (works with docker, git integration, local history, syntax highlighting for every language I use, refactor:rename and move, safe delete, find usages,.find declaration, view library code, database integration, other stuff I'm forgetting)