It is the root of many of our difficulties in programming.
If we create very good "program editor" (not text editors) and store our programs as a data object in a database a lot of our current "problems" automatically vanish.
Every node of the program will have a unique identifier so the editor can keep track of it across the lifetime of a project.
We will get automatic version control. Syntax war will end because you will be able to customize the syntax exactly how you like.
The editor can track the association between tests and documentation with the objects in the program.
And so much more. At the moment we share an ASCII language with the compiler. This creates a fundamental tension between the human and the computer.
On one hand we want to specify lots of things about our programs to make it more maintainable and reliable on the other hand we want to keep things easy on the eyes and parseable.
So we create a strong dis-incentive to providing information about the code to the compiler.
Because all we have is a single layer of text which will quickly become polluted.
We need our programs to be able to have lots of meta-data but have an editor that is capable enough to allow us to view what matters at a given time.
This can only be achieved if we stop thinking about programs as lines of text, but rather as data objects.
This is known as "Intentional Programming" if you are interested search for it on Youtube.
Also see Isomorf.io for a basic demo (https://www.youtube.com/watch?v=awDVuZQQWqQ) (I'm not affiliated with them).