

well, they didn’t get paid, so it’s their loss
well, they didn’t get paid, so it’s their loss
I just realized I’ve never heard anyone say they’re going to eat a raviolo and, for some reason, that sounds funny to me
sqrt(10)
I never drink and drive, I always make sure I’m stopped at a red light to take a sip.
from X import *
That’s malpractice in most cases, and thankfully, becoming more rare to find in the wild. Any decent linter will shout at you for using star imports.
What he’s trying to do is to get people to not use non-LTR approaces when designing APIs.
Then he should have picked examples of APIs that break this, not use the built-in functions. Because as it reads now, it seems he is just against established conventions for purism.
this problem is huge in C libraries
yeah, one of my favorite things about python is that everything not in the language itself is either defined in the file, or explicitly imported. Unless, like mentioned, you have anti-patterns like star imports and scripts messing with globals().
the last section before the conclusion only mentions readability
The example of a string length function could be replaced by any other API
I don’t know about that, len
is a built-in – like str
, abs
, bool
. There are only a few of them and they’re well known by people familiar to the language (which seems to exclude the article author). Their use is more about the language itself than about what to expect from a particular API.
In fact, most Python APIs that go beyond built-in usage actually look much more object-oriented with “left-to-right” object.method()
calls. So this argument seems silly and goes away with some familiarity with that language.
People don’t, in fact, read code from top to bottom, left to right
100% this.
This false premise is also why a few (objectively wrong) people defend writing long essays: functions with hundreds of lines and files with thousands; saying “then you don’t have to go back and forth to read it”, when in fact, no one should be reading it like a novel in the first place.
Once you get used with list and dict comprehensions, they read just fine. Much like the functional approach is not really that readable for a newcomer either.
IMO all those examples are less readable than writing it in an imperative way using good function and variable names.
Also, len()
is a Python convention and a built-in function that calls __len__()
on that object. It’s even more established than .length
in JS, so I really don’t see why someone would expect anything else. And even then, one could call my_list.__len__()
if they really wanted to be sure and have that “left to right” bonus.
deleted by creator
If it’s just a few hundred lines, sure. They work better with smaller context and sometimes they bring up something I didn’t think about. But if your goal is refactoring, I’d work with a code agent, static checkers, and automated tests to do it instead of asking for a code review.
And if your IDE/editor can do something deterministically (e.g. renaming a method and its references), use that instead of asking an AI (or at least an AI with MCP endpoints that do it deterministically too).
Just imagine any of these programming languages with keywords in Latin. One morning you’re debugging a double ended queue and the next thing you know, a bit flip is being caused by a 300 year old spirit.
Individuals buying/renting for themselves don’t destroy any housing market.
Scalping companies buying hundreds of houses and apartments in a city to leave them vacant and artificially pump prices do.
don’t forget the emotional guilt
“I thought we were friends, we’ll miss you :sad-face:”
that would trick my brain into expecting Glühwein and I’d be disappointed
that’s pretty bad, but it bothers me less than when you can’t pick a space apart becauseeverythinglooksclumpedtogether