I'm curious if the userbase of these have tried a Jetbrains IDE (PyCharm, CLion, IntelliJ etc). I've found the Jetbrains IDEs understand the language more thoroughly - this means better code navigation, error-catching, and refactoring. I've also found the implicit project-first focus (as opposed to file-first) to be more practical for most things I work on.
Pycharm is fantastic for code navigation. Jumping into a new codebase can be intimidating but I use Pycharm for the preview windows for function definitions, the option+f7 find all usages of a variable, and a few other features. IdeaVim is also the best vim emulator that I've tried in any IDE. But I'm also too deep into neovim to stop using every feature + plugin while writing and editing code, so I usually have Neovim running in the Pycharm terminal and jump back and forth between the Pycharm editor and terminal based on my context (writing or reading)
I'm slowly learning the Android IDE. Text editors have the following advantages
- One config for all: no need to specify keybindings for each program, and other settings
- Similarly, multipurpose tool: a text editor can help with most of the programming languages out there, IDEs are generally tailored towards a specific bunch of languages and tools, with little variation possible
- Non-programming tasks: I'm doing an MA in linguistics, and plan to be a researcher; while coding is useful it's only a part of what my text editor helps me with (emacs, in my case, but true even for VSCod{ium,e})
- Can VCS configs along with other dotfiles
- Free software
- Deep customisability helps automate away repetitive tasks add some nifty useful features
- Keyboard first: many IDEs have plugins for this and even embedding but it's never as good as the real deal
Personally I like to pick the best tool for the job and I wouldn't really bother with Emacs for Android or Java or C# etc., but when working with many other environments, customisable text editors are pretty advantageous.
And over that most if not all features you list are possible at least in Emacs (IDK how well they are done in the Vim world but I bet they have some great tools for all that, nvim esp.).
I still use IDEA Ultimate for Java but over the last few years I've fallen back to vim or vscode for basically everything else since the language servers for Python, Typescript, Go and Rust now provide most of the features that I actually use in Intellij.
Intellij's performance has never been good but it has continuously gotten worse over the years and it's bad enough now where I'll probably just cancel my subscription when it comes up for renewal.
A small gripe for me was startup time of JetBrain IDEs. Another small one is that they need /dev/null redirection because they spew weird errors to stdout/stderr.
A big one: on Windows, do they have a WSL1 or WSL2 integration now, i.e. cam they run/debug the compiled artifact under Linux? Use Linux-based compiler/toolchain?
The expected workflow is to launch it once — say, when you come to work — and have it running for the rest of the day. The startup time is completely neglible if you do that. And well, running GUI apps from a terminal is likely to flood that terminal with logs (which is why I launch them outside of terminals).
The most significant value of Jetbrain IDEs is that all programming languages have good support. I switched between Java, Python, JS, Typescript, C, Golang, and so on regularly. For example, Java and Kotlin support are miles better than all other IDEs.