There are languages and environments that are more prone to requiring IDEs.
For example, when I write React and I use the Foo component, either it is defined on the same file or it is in one of the imports.
On the other hand, with Angular, the foo component is not imported anywhere. In fact, there is no foo component, just one or many Foo components which declare to use the foo tag, and one or another may be loaded depending on the context of the current component. Good luck getting anything done with such an obfuscated environment without tools to deobfuscate it.
And then you have the heavy enterprise frameworks that make a science out of obfuscated code, so that you don't know what code is being executed, because it is hidden behind several layers of inheritance and interfaces, and the instance to create is choosen via xml-configurable meta-programming based dependency injector. Working with such code is guaranteed insanity without heavy IDEs. I would say it's also insanity with heavy IDEs, but people tend to find that opinion controversial.
For example, when I write React and I use the Foo component, either it is defined on the same file or it is in one of the imports.
On the other hand, with Angular, the foo component is not imported anywhere. In fact, there is no foo component, just one or many Foo components which declare to use the foo tag, and one or another may be loaded depending on the context of the current component. Good luck getting anything done with such an obfuscated environment without tools to deobfuscate it.
And then you have the heavy enterprise frameworks that make a science out of obfuscated code, so that you don't know what code is being executed, because it is hidden behind several layers of inheritance and interfaces, and the instance to create is choosen via xml-configurable meta-programming based dependency injector. Working with such code is guaranteed insanity without heavy IDEs. I would say it's also insanity with heavy IDEs, but people tend to find that opinion controversial.