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.
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?
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...
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.
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.
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.
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 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.
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.
Any IDE is going to take some getting used to and some setup. VS Code is easy to get started with but if you really want everything to be optimal, it's going to take some effort.
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.
Just to add my two pennies (that's a saying, right?), I do use VS code as my default text editor. Professionally and for other projects in C++/C# I use the full fat visual studio. But for scripting, config editing, hex files, todo lists and such I use Code.
I've never been much of a person who needs to shave off every possible second in my workflow with macros and plugins, my brain is just not fast enough to out pace my hands, and the command palette does pretty much all I could wish for.
I of course wish it was fully open source, but for being the only Microsoft product I daily it isn't too bad.
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 mostly use VS Code for notes and configuration files. Sometimes Python scripts. I agree with you, it requires a lot of setup. It has replaced Vim for me either way.
Most of my programming is done in IntelliJ, which works mostly out of the box. I’ve also used Visual Studio (not to be confused with VS Code).
I can’t imagine working without a proper IDE for any serious programming anymore. Working without IDE is like self imposed handicap.
Sublime Text is much faster to use a quick editor and IntelliJ is much better as a full featured IDE and totally worth the cost. IntelliJ saves me on a ton of time on merge conflicts, it much faster in large projects, code analysis to find unused stuff and issues is better... VSCode can handle merges but it requires extensions and isn't as good / you'll have do to more manual work.
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 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.
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.
I only use vscodium for things that are not that well supported by neovim, in my case it's only Scala basically, but I guess I'm just to lazy to properly configure metals. I use Sway as my desktop and I don't want to go into configuring DPI just for vscodium or switch to gnome to not ruin my vision even further when using it. This is what I like about terminal-based editors - the whole Ui scales with a single key combination. Speaking of which I also consider the combinations provided by many Neovim "distributions" (and my workflow ;p) way more ergonomic than emacs-y finger gymnastics of vscode and the likes, since I just hit the space twice and type a command alias without moving my fingers from where they should be on the keyboard instead of memorizing gazillion combinations working little by little towards giving me a carpal tunnel.
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)
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.
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.
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.
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
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.
No way. I'm happy about the stuff it brought (LSP, remote debugging protocol, maybe other stuff), but VSCode itself is just not good enough and always takes a bunch of configuration to get working. It's better than neovim, that's for sure.
If there were an opensource IDE with a GUI (not TUI) that didn't use web rendering to draw its interface, worked on Linux, weren't bought by yet another tech-overlord, and were comparable to a Jetbrains IDE, there's a good chance it'd get my money. Until then, it's Jetbrains for me. I hope they never go public.
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.
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.
I use Vim, more specifically Neovim with the LazyVim setup. It turns it into a full fledged IDE basically, with LSPs, hotkeys and everything setup. I started a few years ago with original Vim without plugins. I have 2 problems with my current setup: a) I don't understand the complete setup and don't know Lua enough, and b) LazyVim actually updates ton and sometimes things break.
And last time it broke something with my Rust setup, I could not find a solution quickly, but was working on a Rust project. So I installed VSCode the first time, but the Open Source version just called Code in the Linux repositories. But because it is Open Source, it does not come with the VSCode addon repository from Microsoft. I didn't want do that, so I went back to solving the issue with my Neovim setup. Shortly after I found the solution and worked on my (little) project.
All in all, if you just want an out of the box experience without too much tinkering or problem solving, I wouldn't recommend the Vim route. There is lot of stuff you have to setup, or at least change settings and understand how to do this. I assume the VSCode version from Microsoft has a better out of the box experience, from the just works perspective.
I use neovim, with my own built configs. You can literally configurate/program everything in your editor.
I'd say that IDEs are becoming less and less common these days. Vscode is definitely the most popular editor, but through the language server protocol, we have more options than there used to be.
Personalized Development Environments (PDE) are becoming more common. Vscode is one to a lesser extend (it's just a text editor if you don't add extensions), but in my opinion, neovim definitely does this best by far.
It's been some time, but I remember my confusion when I was an amateur and hardly knew the difference between visual studio and vscode. I agree it can be very confusing at the start. Just go get the extension for that programming language or framework and you should be fine. Or maybe ask your colleagues, as they use it already.
If you want a real idea, her brains products are probably best, many of them have a community version, but see about getting a license if you need it.
I use vscode as I develop this model in Scala3, whose language-server 'metals' integrates well with vscode, and when scala3 was new in mid-21 this was the platform they first targeted. But the scala command-line tools do the clever analysis, vscode provides the layout, colours, git integration, search/regex, web-preview etc.. Now considering other options (eg zed) as vscode too dependent on potentially unsafe extensions (of which too much choice), also don't want M$ scraping my code.
Long ago when same model was in java I used netbeans, then eclipse. Would prefer a pure-scala toolset.
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. Or Notepad3 + Terminal and a browser.
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 vscode because it links libraries better than Linux itself, i mean, i downloaded pre made GitHub project, in my case it was "testdisk" and i want to build it, it won't build with gcc even though all required libraries was installed prior, while vscode do compilation from first try