Earlier quoted context omitted.
> When you write on a terminal, you are encouraged to make good choices so that your code is clean, with a well-thought-out structure and conventions And then you realize you have to refactor 25% of it, or the requirements change, or a newly incorporated library suggests a naming convention change would be wise... IDEs not only show the code, you can pick a function argument, rename it, and get it renamed across all…
You don't even need a terminal editor to do that; sed will do it fine. If you want to be pedantic about the mechanism by which you achieve the result, you can just use ctags, which even plain vi and emacs support. What really set IDEs apart from text editors was integrated build tools and the ability to directly consume (and act on) build errors and the like. Search-and-replace long predates IDEs, as does 'code compr…
sed absolutely cannot rename all the occurrences of something like a class method, since it would require deep dependency graphs to find all the class instances.
In an IDE, I can do something like this:
# All three classes have a do_thing() method.
my_instances = {
1: Class1(),
2: Class2(),
3: Class3(),
}
my_instances[1].do_thing()
my_instances[2].do_thing()
my_instances[3].do_thing()
In the IDE, I can rename the do_thing method for Class2, and it will correctly change the line "my_instance[2].do_thing()" to reflect the new name, leaving the others alone. This is not possible without something mostly indistinguishable from an IDE.