> Yes well, my point is if you want to make a piece of code
> incomprehensible, I don't think there is a language that will stop you.
indeed. but i now realize the counterpart is not true because everyone
has something different in mind when it comes to readability.
last example was yesterday: i wrote this in raku:
my %final_pairs = @*ARGFILES.words.hash
i asked for code review for the python counterpart and we got:
import sys
def words():
for s in sys.argv[1:]:
with open(s) as fh:
for l in fh.readlines():
for w in l.split(): yield(w)
w = words()
final_pairs = { k : v for k,v in zip(w,w) }
i don't need the perl version but it would something like:
my %final_pairs =
grep length,
map { split /\S+/ }
map { chomp; $_ }
<>;
for me, readability score is: raku, perl, python but someone gives
arguments:
* there is no reason a list could be considered as a hash by order
of appearance
* there is nothing more unreadable than implicity (split on what?
what is $_?, <> iters on what?)
i strongly disagree but this is a valid opinion. i know that many
people struggle with side effects for example so $x++ is convenience for
the one of us that are used to iteration but it's hell for lot of
newcommers.
> It's a choice of the writer to write code that's hard to understand.
> Perl is a very expressive language, and can be used to write very clean
> and maintainable code.
that's it. and some of us hate expressivity because it means: learn how
the langage behave when it's preferable to describe the same patterns
again and again ...
> I think the "there's no right way" mantra helps: it allows you the
> latitude to choose the style that makes the most sense for the problem
> being solved.
yes ... but "it could be a default way because experience shown its
convenience or ability to solve the most common problem" (which is what
perl and raku do, i guess), is something that can be loved or hated.
regards
marc
No comments:
Post a Comment