IMO the slots that allow a component to have children are the difference. You can compose indepent components that way. Also the styles are scoped to the component by default, and you can only break the scope with custom vars (css vars)
I recommend you use pydantic for type annotations. Alternatively, dataclasses. Then you pair it with typeguards @typechecked annotation and the types will be checked at runtime for each method/function. You can use mypy to check it at "compile time".
Having clear data types without oop is possible, even in python.
I do not know of course, but black oil painting cracks more than other colours. I think it is common to mix black colour with a bit of dark blue to avoid excessive cracking. That could be a potential explanation.
Thanks, law aside, it is so hard for me to imagine why they continue to be in business. Maybe, it is because whoever is being convinced by them of something believes they would need to pull the same "trick" some day.
Making as much of the program as possible pure functions and enforcing types works extremely well for this task. I would only add clean _enforced_ interfaces are key.
I always try to find the unspoken assumptions in these kind of articles. In this case, the need to use classes for everything, as the only hammer.
Pure functions with clearly typed inputs and outputs: you list all the available types and add when you need more supported, like data. They could be in a static class for convenience, or simply in a module.
or some finite state machine or a data-driven approach would make most of the examples much clearer.
TIL after so many years that /usr isn't an abbreviation of "user". "UNIX/user system resources" makes a lot more sense in retrospect. Guess I should have RTFM a long time ago!
There is a voting mechanism on hn as well.
reply