2 ms·
Counterpoint: code is not natural language. It is meant to be read and understood by other humans. However it requires training and education to use and appreci
by agentultra 4y ago
Counterpoint: code is not natural language. It is meant to be read and understood by other humans. However it requires training and education to use and appreciate.
The reason this is important to note is that in similar languages, like mathematics, notation and language make a significant difference in the theorems we can write and in explaining our ideas to others. Computing might not have come along without having first inventing algebra and calculus.
And so it is often worthwhile to build new language constructs: abstractions that provide new semantics and notation to make writing terms convenient in the abstraction.
A lot of the criticisms of this approach offer their alternative: avoid abstraction, use only the primitive keywords available; all in the noble effort of keeping code, “simple.”
I think there is a balance to be struck. Code written without abstractions tends to be simple in “local” terms but it leads to highly verbose programs that are hard to follow. Improper use of abstractions create unnecessary indirection and mislead the reader from the problem. The antidote to these problems is to write, think, and to use sufficient means to convince your reader that the abstractions work.
- prisonguard 4y ago> think this, it's the first step, think clearly without ambiguity, if you can't the compiler should be designed to force you to do this.