3 ms·
> I think the Ruby solution is more readable. I disagree and I’ve used both professionally for about the same amount of code.
by empthought 4y ago
> I think the Ruby solution is more readable.
I disagree and I’ve used both professionally for about the same amount of code.
- nickjj 4y agoI think this is purely a personal preference but I also think there is a bias towards list comprehensions being more difficult to mentally parse. I do a lot of contract work and chatted with a ton of folks ranging from beginners to veterans. A lot of them (well more than half) avoid list compressions, especially when working with teams because it's such a mixed bag of either being able to instantly understand them or it requires more effort. Personally I don't use them in my code (for both reasons). Both Ruby solutions are much more clear to me even though I have no functional programming background. I have no preference towards functional styles either, I would say it's the opposite. I struggled with Elixir long enough that I stopped using it.
- empthought 4y agoI disagree about list comprehensions, as do more than half the people I’ve asked over the years.
- eternalban 4y agoI don’t use either, and also have an admittedly irrational dislike for Python. That said, the Python variant is more readable imo as well.
- michaelteter 4y agoAnd yet, in the production Python codebases I've worked with, list comprehensions are rarely seen. Usually it's typical loop iterations. I wonder why that is?...
- deleted 4y ago[deleted]
- empthought 4y agoThis says much more about you and the developers and codebases you work with than anything to do with Python list comprehensions. Coming from a point of zero knowledge of the codebase, I picked Flask. I picked the cli.py module in Flask. And what do I find? https://github.com/pallets/flask/blob/main/src/flask/cli.py#L46 https://github.com/pallets/flask/blob/main/src/flask/cli.py#... https://github.com/pallets/flask/blob/main/src/flask/cli.py#L141 https://github.com/pallets/flask/blob/main/src/flask/cli.py#... https://github.com/pallets/flask/blob/main/src/flask/cli.py#L142 https://github.com/pallets/flask/blob/main/src/flask/cli.py#... https://github.com/pallets/flask/blob/main/src/flask/cli.py#L821 https://github.com/pallets/flask/blob/main/src/flask/cli.py#... https://github.com/pallets/flask/blob/main/src/flask/cli.py#L1016-L1019 https://github.com/pallets/flask/blob/main/src/flask/cli.py#... https://github.com/pallets/flask/blob/main/src/flask/cli.py#L1023-L1025 https://github.com/pallets/flask/blob/main/src/flask/cli.py#... https://github.com/pallets/flask/blob/main/src/flask/cli.py#L1027 https://github.com/pallets/flask/blob/main/src/flask/cli.py#... https://github.com/pallets/flask/blob/main/src/flask/cli.py#L1031 https://github.com/pallets/flask/blob/main/src/flask/cli.py#... The keyword "for" occurs twice as often in comprehensions and generator expressions as it does in "typical loop iterations!"