| I programmed exclusively with text editors for a number of years. Of course you can do anything in a text editor that you can do in a modern IDE as long as you have patience. I would even go so far as to say that having the experience of using a text editor instead of an IDE is a valuable one; certain types of edits really can be done much more efficiently in vim than an IDE so it's an excellent tool to have at your disposal. But text editors simply can't match the sophistication and efficiency of a good IDE that is built to interact with your code programmatically from the ground up. For example, here is a list of refactoring operations that IDEA provides as atomic operations that can be done in a few clicks/keystrokes and instantly, safely undone with a single keystroke[0]: * Change signature * Convert Anonymous to Inner * Convert to Instance Method * Encapsulate Fields * Extract refactorings * Extract constant
* Extract Field
* Extract interface
* Extract method
* Extract Superclass
* Extract variable
* Extract parameter
* Extract into class refactorings
* Find and Replace Code Duplicates* Generify Refactoring * Inline * Invert Boolean * Make Static * Migrate * Move and Copy refactorings * Pull Members Up, Push Members Down * Remove Middleman * Rename refactorings * Replace Constructor with Builder * Replace Constructor with Factory Method * Replace Inheritance with Delegation * Replace Temp With Query * Safe delete * Type Migration * Use Interface Where Possible * Wrap Return Value Meanwhile, merely performing a simple pure-text find-replace across multiple files using vim and emacs is a chore. And better hope you don't screw it up because there's often no easy way to safely undo such a change, especially not with a single keystroke. The idea that even master-level users of vim/emacs could begin to hope to replicate the operations listed above with the depth, accuracy, and user-friendliness that IDEA offers is simply laughable. Any granddad worth his salt is perfectly capable of understanding that advancements in software have yielded tools that are by far and away objectively superior for a wide variety of development tasks. [0] https://www.jetbrains.com/help/idea/refactoring-source-code.... |
It is not, i do that fine in emacs. Half of your list can be done with regex replace. Things like extract and refactor needs language specific tooling that can be done with text editor too(see LSP). And some stuff on your list doesn't even apply to other languages that they have community support for e.g. Rust.
But sure Jetbrains has put lot of effort on these tools for a few languages that you can certainly benefit for a large project. Outside of that good luck using it for any other language.