For some that may be true. Others have other interesting reasons, pains, feelings, thoughts, and assumptions.
I was too glib. Let me unpack this further.
I see two distinct views of a program. On one side you have people who regard the actual program text, its representation as characters in a file, as the fundamental construct they are manipulating. On the other you have those who regard the program text as an authoritative representation of a data structure that they are manipulating.
If you regard the characters in a file as fundamental, you begin with a text editor and integrate capabilities based on running that text through a program. This is what Thompson had in mind for Unix as a programming environment: manipulate text streams. Some tools like ctags are going to build a cache of information about the program, but the idea of setting up a big, memory hungry cache of everything about the program seems wasteful.
If you regard the data structure as fundamental, then having to work with it as text streams feels like sorting an array in your program by serializing it and running it through the sort command. This is the world that Smalltalk programmers inhabit.
Today most of people live in some netherworld in between. Turbo Pascal and much of Visual Studio were on the unix side. Eclipse was a rewrite of VisualAge (which was Smalltalk) in Java, and was still on the Smalltalk side. IntelliJ kind of sits in the middle, a very comfortable place for people to get work done but a very uncomfortable place intellectually.
Thank you for pointing out this fundamental difference in the approach to programming! Even though I’ve never done Smalltalk in production, I’m absolutely on that side right now.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.