it lacks clear and enforced type restrictions which help with clear code contracts
Not anymore! Gradual typing is supported by the core language and pyright is a fantastic incremental type checker that you can use both in your editor and in CI.
it lacks clear and enforced type restrictions which help with clear code contracts
Not anymore! Gradual typing is supported by the core language and pyright is a fantastic incremental type checker that you can use both in your editor and in CI.
Can address it by writing code that doesn’t depend much on indentation, which also makes code more linear and easier to follow.
There’s the practical distinction between “everyone can do it with some dedicated intent” (so few actually bother) vs “everyone can do it on a whim”
Seems it depends on which elite/establishment, going by Wikipedia’s definition: “populism” is the political stance of “the people” against “the elite/establishment”
So by that defn, both of these examples qualify:
wanted to add something to the end of a for-loop, but had too little indentation
To address this, I prefer reducing length & depth of nested code, so the for
/while
is rarely ever not visible along with everything inside it. Others have success with editors that draw indentation lines.
opening up new/anonymous scopes
I occasionally use Python nested functions for this purpose
I find it’s possible to operate Python as a statically typed language if you wanted, though it takes some setup with external tooling. It wasn’t hard, but had to set up pyright, editor integration, configuration to type check strictly and along with tests, and CI.
I even find the type system to be far more powerful than how I remembered Java’s to be (though I’m not familiar with the newest Java versions).
All methods? Of course not. Just methods like these.
I really dislike code like that. Code like that tends to lie about what it says it does.
The only thing I can really be certain from that is:
doAnything();
if(doAnything2()) {
doAnything3();
}
I.e. almost nothing at all because the abstractions aren’t useful.
I agree with the author overall, and I think it can be more straightforwardly stated. IMO it’s the idea that wrong abstractions are even worse than other ills like duplication or god classes/modules. It’s also reminiscent of “modules should be deep”.
I prefer that, though (it’s in my calendar, but I don’t have to accept). I really can’t stand Outlook’s email-based calendar workflow.
That’s only because the former already implies much of the latter, so they don’t need to repeat it
In a sense, money represents all the future goods and services it can buy, and those goods and services ultimately resolve down to someone’s time and effort. Money was conceived as a formalization of IOU’s, after all.
So it’s similar to asking whether there’s a limit to how much time and effort from (i.e. influence over) others one would want.
You can, once you find a game that runs at 1k fps
Also have the option of selectively/strictly enforcing in CI, to get an experience & protections similar to “compile-time type checking”