Hacker News new | ask | show | jobs
by heavenlyblue 2965 days ago
All arguments about computer languages will always end up in disagreement, since every person in that argument does programming in an entirely different context.

Short is good when the average half-life of your code is less than a month.

When you're writing something for 10 years and beyond - it makes sense to have something incredibly sophisticated and explicit.

Otherwise it doesn't since the amount of time it takes me to comprehend all of the assumptions you made in all of those nested for loops is probably longer that the lifetime of the code in production.

List comprehension has a nice, locally-defined property in python: it will always terminate.

2 comments

Only if you iterate over a fixed-length iterable.

    [x for x in itertools.count()]
will never terminate.
It will terminate as soon as it runs out of memory.
By this definition, python has a nice locally defined property that it will always terminate ;)
No; this will never-ever terminate:

    (x for x in itertools.count())
Obligatory Dijkstra: "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."
That's actually Brian Kernighan. Dijkstra would have never advocated debugging to begin with.