4 ms·
> Readability counts Almost all Python programmers should be familiar with list comprehensions - this should be easy to understand: parts = [... if isinst
by pansa2 2y ago
> Readability counts
Almost all Python programmers should be familiar with list comprehensions - this should be easy to understand:
parts = [... if isinstance(item, Interpolation) else ... for item in template]
Instead the example uses an explicit loop, coupled with the quirks of the `match` statement. This is much less readable IMO:
parts = []
for item in template:
match item:
case str() as s:
parts.append(...)
case Interpolation(value, _, conversion, format_spec):
parts.append(...)
> [Ruby] is awful to read
I think for someone with a basic knowledge of Ruby, it's more understandable than the Python. It's a combination of basic Ruby features, nothing advanced.
I don't particularly love Ruby's syntax either, though - I think the ideal implementation would be something like:
fn stringify(item) =>
item.is_a(Interpolation) then
item.value.convert(item.conversion).format(item.format_spec)
else item.to_string()
fn f(template) => template.map(stringify).join()
- slightwinder 2y ago> Almost all Python programmers should be familiar with list comprehensions Being familiar doesn't mean it's readable. They can be useful, but readability is usually not on that list. > I think for someone with a basic knowledge of Ruby, it's more understandable than the Python. I know both, and still consider it awful. Readability is not about making it short or being able to decipher it.