lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On 20/07/2018 12:23, Soni "They/Them" L. wrote:


On 2018-07-20 05:00 AM, Javier Guerra Giraldez wrote:

[...]

(Code is a language like any other, and can be read like any other.

Sorry, definitely not. Human languages have evolved to allow effective communication between people.

Computer languages are not an *effective* mean of communication for people in the vast majority of cases. Especially in cases where an algorithm is clever enough or the problem is subtle enough.

If they were an effective mean of communication, there won't be countless studies and practices in SW engineering on how to express the *intent* of code in a way *easily* understandable for humans (literate programming anyone).

There is a well-founded rationale behind many corporate guidelines about *requiring* developers to put an adequate amount of comments in their code. Of course *quantity* doesn't always corresponds to *quality* of comments, but you get the point (*effective* code commenting *is* and highly valuable skill for a developer and it is more art than science).


I
find this an useful skill to have, as it helps with reverse engineering
and tracking down bugs, and it also helps with reading my and other
ppl's posts.)



I agree with you on this point and it's good for you if you have such a skill, but don't expect people to have the same fluency in *communicating ideas* through code.

Moreover, the way you express things in code is dependent on your way of thinking, which is not evident in the code (the same *intent* could be fulfilled by a different algorithm when written by another developer).

Computer languages (especially imperative ones) are not designed to express *intent*, whereas in human matters *intent* is sometimes the focus of the discussion at hand.

Coders proficient with a computer language can read and understand *what* a piece of code does and most probably *how*. The big problem analyzing someone else's (non-trivial) code is usually *why* they do that that way.