I once had a Java job which required me to use an IDE. What I noticed is that I became dependent on the auto-lookup features and didn't really learn the codebase until at least a year in.
I use vim, and whenever I need definitions from other parts of the code base I put them all up in multiple panes or tabs. Its not as immediate as the pop ups, but it forces me to go look at that part of the code base. I find I learn the relevant parts of the code very quickly and even remember the most common definitions.
Yes, there was a time when I took pride in that too. Then I realized how much more effectively I could use that cognitive capacity if I was applying it where it was best used rather than where my tools forced me to spend it.
Any tool or technology requires an investment. It just depends on how much you want to spend on it. You do not need to be an emacs guru to use emacs. Just learn the basics,downloads some pkgs, use what other people already built for you. Hell I never ever wrote a line of elisp but I am able to glue things together so It does what I want.
But you are right if a tool is just as good in its default configuration then it's harder to justify the investments to learn another one.
On the other hand Emacs has been here for dozens of years and it still mostly works and behaves the same. )
That's quite an exaggeration, there's already written packages in emacs for lots of programming languages. Just need to add the package to your config.
The flipside is, I can change a method name across 100 files with 1 click in IntelliJ, and be confident that it did not blow up the world. How are you doing that with VIM, grep and then editing 100 files at once? No thanks.
Many IDE features (e.g. code completion) excel at letting you use code that you don’t understand well, you can jut jump right in and get something to work. But ya, it’s a just-in-time mechanism that can be used as a crutch for actually learning the abstractions of the code you are working on.
It is great if you don’t work on the codebase enough to justify learning it completely.
I use vim, and whenever I need definitions from other parts of the code base I put them all up in multiple panes or tabs. Its not as immediate as the pop ups, but it forces me to go look at that part of the code base. I find I learn the relevant parts of the code very quickly and even remember the most common definitions.