I've been using Python since 2008 and the type annotations are the thing that broke me. I don't want to configure another tool on every project just to get (incomplete) type checking. Why do I have to pick a type checker? Just check my types.
`typing.Protocol` is a poorly designed `Interface`.
`abc` is a band-aid over missing `abstract` class/method syntax.
Things that should be part of the language are left to libraries. Just add interfaces, enums, and abstract classes/methods to the language.
I'm helping a new developer learn Python and having to explain all of the hoops I've been jumping through for the past 15 years is embarrassing. Making things "simpler" is making things more complex.
My current project is going to be my last Python project. I'm tired of add-ons and hacks, I want a complete language.
> Making things "simpler" is making things more complex.
This hits the nail on the head for me with Python. The standard libraries take a very “batteries included” approach but the language constructs don’t, and that means people use the flexibility of the language to do things their own way. I find that really increases my mental workload when reading other people’s software (how have they done this) and when writing my own (which way should I do this).
`typing.Protocol` is a poorly designed `Interface`. `abc` is a band-aid over missing `abstract` class/method syntax.
Things that should be part of the language are left to libraries. Just add interfaces, enums, and abstract classes/methods to the language.
I'm helping a new developer learn Python and having to explain all of the hoops I've been jumping through for the past 15 years is embarrassing. Making things "simpler" is making things more complex.
My current project is going to be my last Python project. I'm tired of add-ons and hacks, I want a complete language.