I have not used an IDE since I ditched Turbo Pascal in middle school, but now I am at a place where everyone and their mother uses VS Code and so I’m giving it a shot.
The thing is, I’m finding the “just works” mantra is not true at all. Nothing is working out of the box. And then for each separate extension I have to figure out how to fix it. Or I just give up and circumvent it by using the terminal.
What’s even the point then?
IDK maybe its a matter of getting used to something new, but I was doing fine with just vim and tmux.
Idk where you got the “just works” idea from, but maybe you’re looking for something more like the jetbrains IDEs?
I still use the terminal all the time with VSC.
Yeah, I guess the idea of VSCode isn’t to be a “ready to use” IDE, but to be configurable — which it is.
The main thing that makes it popular nowadays is the ecosystem of plugins around it. Ex: when Copilot was released, I believe the VSCode plugin was the best one.
Also many frameworks docs have instructions on how to use it with VSCode and which plugins to install, such as some web frameworks and Flutter.
On top of being super bloated, Intellij’s Rider is far from “just working” in my experience. Not only is it super slow to boot, but it also changes asmdefs in my Unity project unprompted, in a way that prevents my project from working (creates cyclic dependencies). The debugger also sometimes doesn’t trigger breakpoints 😵💫
I absolutely despise it, viscerally.
I don’t think VSCode’s mantra is that it “just works”. It’s definitely a “platform” IDE like Eclipse was.
What do you mean fix it? I haven’t had an issue with vscode or extensions unless I was going against established patterns.
For an actual recommendation, if you were fine with tmux and vim rock em yo. Don’t forget vim has panes as well.
Platformio maybe?
That thing just sometimes won’t work on some PCBs unless you explicitly specify a build option (I had it once that I had to specify a build option that was already specified in that board configuration)
Installing pycom stuff too. All of their software is crap (hardware isn’t amazing either) so their released version simply didn’t work by default on a fresh installation and the fix was to roll back to the previous version manually.
The problems you’re facing aren’t very clear. Can you expand a bit?
Lots of things in VS Code just work if you use the non-FOSS version and don’t need to install any system dependencies. For example, there are a ton of code formatters that you can install and run without tuning (eg I installed a SQL formatted last week with nothing else to do). There are also some that you need underlying dependencies for (eg if you want Rust extensions to work, you need the Rust toolchain; same for LaTeX); however this is true in any editor based on my experience (although some editors eg JetBrains might mask that through their GUI). Across both options, you often need to tune your extensions based on your use case or even hardware in some cases (eg setting up nonstandard
PATH
items).YMMV for VSCodium, the FOSS version, primarily because it relies on a different extension registry per the terms of use. You can get around this as a user; as a vendor they cannot. Outside of tweaking the registry I’m not aware of anything else you need to do for parity.
Edit: forgot to tie all this back to my opener. What do you mean when you say it requires all sorts of work? Are you experiencing other issues than something I called out?
VSCode seems to have fun ignoring my “don’t guess encodings and assume this one” on files.
VSCodium respects that setting.
I was doing some Jinja templating in a Flask app the other day and VS Code would not respect my explicit file typing through the GUI over restarts. I had to change my file extensions and install an extension for Jinja syntax highlighting to get that to work.
I feel that pain.
I do. I used to juggle between Code::Blocks, PyDev, NetBeans and others, depending on projects. I find VS Code kind of fulfills the promise of Eclipse of being an all-purpose IDE, without the bloat Eclipse became synonymous with. It really clicked for me when I started using devcontainers. I am now a big fan of the whole development containers concept and use it in VS Code daily…
Code::Blocks
This still exists? I played around with it’s portable app eons ago.
development containers
How does that compare to Vagrant?
Code::Blocks is still chugging along, albeit at a glacial pace.
The rise of Docker has made containers very popular in the last 10 years or so. Nowadays you can run a single WSL2 VM on Windows with a Linux distro, and run any number of containers inside it. Vagrant is useful if you need full-fledged VMs for your environments.
I just read about it, apparently Vagrant has now tooling for containers in their VMs.
I’m currently using VSCodium too, why did you switch? What’s the appeal? Would you recommend them?
I would like to know, too.
Not the OP, but I switched to helix, because I always wanted to learn something vim-like, and helix is just perfect for that. It’s simple, working great without any configuration, and has nice keybindings.
Maybe he’s just a hipster
Well I guess I can give my opinion as a former VSCode and Vim user that migrated to Helix. @shadowedcross@sh.itjust.works was curious too.
Way back when, I used Sublime Text and got proficient with those keyboard shortcuts. Then VSCode eclipsed (pun unintended) Sublime, so I switched and I was thankfully able to keep using Sublime key bindings. I was also productive with VSCode, except it wasn’t popular at the company I was working at, where most people used Vim. I ended up learning a bit of Vim for pair programming, but I still clinged to VSCode, even though it lacked proper support for connecting to a VM via SSH (which was a very common workflow).
At some point I realized that it was important to have a totally keyboard-centric workflow to level up my productivity and ergonomics, and being able to use a mouse in VSCode was hindering my progress. So I tried NeoVim, and it was kind of a nightmare. I know many people enjoy tinkering with Lua to get NeoVim working as they want, but I found it more of a barrier to productivity than anything else.
So then I learned about Helix, and it seemed like a love letter to devs that just want a modal in-terminal editor that works out of the box and has modern features like LSP support, DAP, etc. Also it’s written in Rust by good maintainers. I haven’t looked back, because the Helix + Tmux combo is incredibly versatile.
Not the OP, but I switched to helix, because I always wanted to learn something vim-like, and helix is just perfect for that. It’s simple, working great without any configuration, and has nice keybindings.
if you want even more frictionless experience and save a few megs of ram check out wezterm, it does a pretty good job of integrating multiplexing into terminal. also it’s very extensible as it’s configurable with lua.
on a side note, I had some stability issues with vscode-neovim where it’d crash it in worst cases.
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
Nope, at work, we use JetBrains IDEs and for my personal stuff, I’m using Kate.
Seeing the hype wave for VS Code was so bizarre, like millions of people discovered features that were just bog standard in IDEs for a long time. Two colleagues tried to sell it to me and the features they chose to do so with, were the commit GUI and the embedded terminal.
My best guess is that if you weren’t a programmer, then you didn’t use an IDE and there just wasn’t many good editors on Windows. Like, Notepad++ has been there since forever, but it doesn’t have that many features. And Sublime has been around for a long time, too, but never made it big.
The problem with Sublime is that it’s a paid one, and not everybody wants to pay for something that is perceived by the community as something that should be free and open source.
It’s paid like WinRAR is paid.
Sublime was pretty big before Atom. Atom just had absolutely abysmal startup speeds. Using Atom like an IDE was fine because it stayed open but using it like an editor was awful. Code fixed those problems.
The thing about VSCode is that it was lightweight and modular with the extensions. At least for me.
Lightweight compared to a full-featured IDE, sure, but it starts a whole bloomin’ web browser to render a text editor. That is not lightweight at all, compared to Notepad++, Sublime, Kate, Vim, Emacs etc…
And yet, they don’t have the same features, which make the comparison pointless
Depends on the language. C/C++/C# I never manage to make it work. Rust works incredibly well. Python needs some small fixing on the paths but works good too. Java needs a lot of fixing, sometimes I make it work, others not.
C# and java are both much easier to set up in an IDE (VS and eclipse (ew)) respectively. C/C++ are just hard to set up, I don’t think it’s much harder than CLion.
So except java and C#, every language is as easy to set up as any other editor/IDE.
I only use vim to edit config files through ssh, so I don’t know how it works for actual development. However, I doubt it is easier than vs code.
For C++ I found the clangd plugin to be the secret. Just install that and get your build to output a compile_commands.json in your build folder. That is easy to do with cmake but most other setups can do it too. The plugin will find that after a clean build. Then it will magically index your whole project.
I use vscode everyday with gdb and gcc (and gdbserver.) it works well, but does require some set up.
lazyvim is enough for me.
I’ve not had any of these issues with VSCode and i do use it just for the seamless Remote Development over SSH abilities.
The learning curve for it is a lot less than Vim even if Vim is likely a much more powerful tool imo
This post reads like going to a Linux forum and asking for issues with the GTX660, which absolutely does not work on Linux: your concerns are legitimate and it’s reasonable not to buy all the good comments on VS Code based on your personal experience. However, it works on my machine. And it also works for many others.
You also mention to have been doing fine with “just vim”. I’d argue that you should face VS Code with the same humility you faced vim. If you’re up to the task, take your time to learn its quirks just like you did with Vim’s. Otherwise, you’re better off ending your career with the toolsuite you know for now.
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#.
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
Like (Neo)vim, it’s a PDE: Personalized Development Environment
Props to TJ DeVries for coming up with that term.
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 do Rust and Go and VSCode has been fine for both so far. I put off trying it for ages out of a hatred/distrust of MS products, but I’m quite happy with it.