3 ms·
This is the reasoning from the article for why its suggestion is better then dataclasses: > - Typing is optional (there are still folks who don't want to lean
by olejorgenb 3y ago
This is the reasoning from the article for why its suggestion is better then dataclasses:
> - Typing is optional (there are still folks who don't want to lean into that and it simply isn't always necessary)
> - Class construction should be faster (which intuitively you would think shouldn't matter, but I have talked to folks where this is an actual concern, especially when startup time is critical)
> - Syntax typically leads to better tooling support since there's no ambiguity
> - Easier to teach than (data)classes, so can act as a stepping stone towards classes
> - Better semantics than dataclasses have by default (at least in my opinion )
- IshKebab 3y ago> there are still folks who don't want to lean into that Honestly why would you cater to people who want to write worse code? Should Python have a mode with implicit type coercion too because some people can't be bothered to type `int()`? > Class construction should be faster. It's Python. You accepted your code would be extremely slow going in. Fiddling with the syntax isn't going to make it fast.
- Groxx 3y agoYeah, honestly I think if startup time is a real concern, python is simply the wrong choice. Slow startup is largely inherent in its design. Not that it's not worth spending some effort to optimize, of course. But the lower bound is quite high even if you're very careful.
- pwdisswordfishc 3y ago> - Typing is optional (there are still folks who don't want to lean into that and it simply isn't always necessary) Someone who really wants to avoid type annotations at all costs can just use ": object" everywhere
- nomel 3y agoI believe it should be ": Any".
- agons 3y agoHey, you're leaning into it too much! Who are people who are against typing in this day and age?
- glaucon 3y ago> Who are people who are against typing in this day and age? People who don't find the benefits of typing are worth the overhead? Python is, after all, a dynamically-typed language, so it is, surely, not too surprising that those who use it might include those who want a ... dynamic language ? If it's too much to take the joys of Java are freely available.
- nomel 3y ago> are worth the overhead? What overhead, specifically? I've found it reduces overhead. Rather than using English to describe the types, in the comments/docstrings, I can just type the terse type hint in the function definition, and leave the rest to the documentation renderer. If you don't document anyways, sure.
- yuppiepuppie 3y agoI use python daily and dont use typing. The reason being that I choose python for it readability. And I find typed python to be less readable than non-typed python. If I wanted a typed language, I wouldnt want python.