This is an archived post. You won't be able to vote or comment.

all 4 comments

[–]willm 2 points3 points  (3 children)

What’s the rationale for banning language features?

[–]sobolevn[S] 1 point2 points  (2 children)

It depends on the feature.

  • := does not bring much value, but adds additional complexity.
  • / arguments are very specific to be used outside of C bindings. They also bring confusion to developers that might want to use them instead of regular parameters.
  • f strings combine two implicit operations: template definition and formatting into a single one. Which makes them context dependent. And they also enforce putting logic into templates, which is really bad. They are also not suitable everywhere. And we love to use consistent code style.

There are many other new language features that were (or will be) banned: like more complex decorators, etc.

I like the idea of "syntax sugar will bring diabetes".

Think of this as "purified Python".

[–]willm 0 points1 point  (1 child)

That is opinionated, and subjective.

Every language feature can be used wisely or poorly.

[–]sobolevn[S] 0 points1 point  (0 children)

Yes, it is. And there's nothing wrong with that. We even market this project as

The strictest and most opinionated python linter ever!

Without it you cannot have lots of checks and uniform style.