[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Auto-closing with loops
- From: Lorenzo Donati <lorenzodonatibz@...>
- Date: Sun, 22 Jul 2018 10:50:45 +0200
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.