2. pathlib is cool. will come pretty handy.
3. Data classes sounds good but there should be only one way to do things, even you end up writing few more lines.
4. type-hints are ok for very very big projects.
5. No comment on implicit-namespace-packages yet as still trying to understand solid use-case.
Dataclasses greatly simplify generation of simple classes which are unnecessarily filled with boilerplate. I'd argue that they are the one way to do this, and that choosing to manually implement the same naive `__init__` function for every simple class you write is the "wrong" way.
(Here I take "simple class" to mean a class which takes in some values during initialization and stores them without anything terribly interesting going on during that initialization. A simple class can have methods defined on it, though.)
> type-hints are ok for very very big projects.
> No comment on implicit-namespace-packages yet as still trying to understand solid use-case.
I think it's just... trying to keep your directories "clean"? I also don't really understand the use of this haha.
I would love to solve these boilerplate kinds of problems using plugging like emmets. Magic like this feels good when writing but troubles during debugging and customizing.
Additionally naive programmers always use such features in wrong situation if they don't get use-case. I really feel sad after seeing so much bad-django-code in production.
Great for smaller ones too! I type annotate every function, even
def parse_args() -> argparse.Namespace:
I agree that statically typed languages are preferable. I don't consider static
typing optional so I'm glad Python is growing a solution that supports it,
In my experience, mypy works surprisingly well. It doesn't hurt my
coding speed at all but enhances it to levels that were not
previously possible in Python, due to a lack of typing. False
positives are rather rare.
the zen of python never mentioned that you should exclusively code in machine code.