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.
I use VS code, mainly for the jupyter notebook integration.
VS Code is a highly configurable editor that can get really close to being like an IDE, but you should really check out the Jetbrains IDEs. Best in class for just about every language they support.
Funny to read VSCode described as an IDE.
Where I work, I’m the weird one for preferring VSCode over Visual Sudio or Rider.
I prefer using a terminal to run build tasks and execute tests and do version control, and have mostly Language Server stuff integrated into the editor.
Funny to read VSCode described as an IDE.
Why would VSCode not be called an IDE?
Nobody loves arguing semantics more than a programmer. VSCode is absolutely an IDE. Jetbrains is entirely plugin based, Eclipse is totally plugin based, and yeah so is VSCode.
🙏 Happy to see this opinion somewhere else. I feel like I’m taking crazy pills when I see folks adamant that Code-like editors aren’t IDEs while saying other plugin based editors are.
No, it’s a code editor. It can become an IDE with the right set of plugins.
It’s a modular IDE.
Visual Studio Code is a streamlined code editor with support for development operations like debugging, task running, and version control. It aims to provide just the tools a developer needs for a quick code-build-debug cycle and leaves more complex workflows to fuller featured IDEs, such as Visual Studio IDE.
~ code.visualstudio.comThey’re just saying that so that they have a justification for making two IDEs.
What is your definition of an IDE?
I don’t think there’s an exact definition but broadly I would say if it has the majority of these features it’s definitely an IDE:
- Integrated debugger
- Intellisense
- Build/debug shortcuts that start the build in the IDE
- Parsing of error/warnings from the build output into a structured list that you can click on
If you make something with all those then it’s definitely an IDE. Without some of them it’s more debatable. For example the old Arduino editor… I would still say is a very basic IDE even though it doesn’t have a proper debugger - it has other heavily integrated development tools, e.g. the UART viewer.
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.
Been using vim+tmux for the last 8 years and still going strong. Wouldn’t ever give it up. Vscode’s pretty lackluster in comparison.
What’s the tech stack you work with with that setup?
Last 3 years has been working on large backend web services in Haskell and Postgres, with some shell scripting thrown in here and there.
Before that, it was a mix of Python, Typescript (React), Rust, and C++.
I’m currently using VSCodium too, why did you switch? What’s the appeal? Would you recommend them?
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.
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
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.
What issues specifically?
It takes maybe 10 minutes to find good extensions and get them set up
I’m in a love hate relationship with vscode. Used Neovim for a year or two but got fed up of debugging plugin problems after updates. Currently giving vscode a go again but it somehow feels dirty lol. It seems to get better though and it is very popular. Like others have said, if you want something really polished Jetbrains is very good.
nothing is working out of the box
I mean, it cannot fly you to the moon, but depends on what you’re expecting.
If nothing works, did you install it via the manual?
vscode is bloated, switch to emacs
emacs is bloated, switch to vim
vim is bloated, switch to vi
vi is bloated, switch to ed
ed is bloated, switch to cat
on-topic
No, I don’t use vscode, I use mg (tiny emacs-like editor, lighter than nvi) and ed
If you’re already comfy with vim, don’t switch. If anything, I encourage you to try even more minimal editors.
lazyvim is enough for me.
I don’t think VSCode’s mantra is that it “just works”. It’s definitely a “platform” IDE like Eclipse was.
I agree, thought Atom was kind of a fun text editor but silly for being an entire Chrome browser, then it mutated into this intentionally held back IDE where not even developing PowerShell or C# can be done without mucking about first.
There is barely any functionality without add-ins but not because they want to keep the base program light. And it siphons all the data it can get, of course.
It’s pretty clear to me that they don’t want it to be better than Visual Studio proper, so you don’t get a sane menu structure or out of the box functionality. Microsoft made an editor that is somehow more opaque and unintuitive than vi, not because of necessity or for practicality reasons but because it has to be different from the flagship product.
I’d much rather work with Spyder, Netbeans or Eclipse. Or some Jetbrains product.
so you don’t get a sane menu structure
Not saying they shouldn’t have a sane structure, but in 6 years of using VS Code I never cared about menus because everything can and should be accessed through the command palette (F1 / Ctrl+Shift+P).
To me complaining about menus in VS Code sounds like complaining of modes and motions in vi / vim. Maybe the editor is not for you.
vi is the way it is for very good reasons, I don’t really see that with VS Code. Even gVim has menus. You can have both accessibility and flexibility/speed.
I would still try to adapt to it, but the PowerShell experience I had a couple months ago put me off it (and VSCodium) for good. Install IDE, install plug-in, hangs forever until you figure out that the useless error message means you need to install some additional .msi from Microsoft. Blergh.
use linux
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.
There are some things about it which are a bit annoying and not easy to initially work out, but overall I’ve found it to do pretty much everything I want, and a few things I didn’t know I wanted until I found out it did them.