Status 200 for errors is common for non-REST HTTP APIs. An application error isn’t an HTTP error, the request and response were both handled successfully.
There may be a need for additional information, there just isn’t any in these responses. Using a basic JSON schema like the Problem Details RFC provides a standard way to add that information if necessary. Error codes are also often too general to have an application specific meaning. For example, is a “400 bad request” response caused by a malformed payload, a syntactically valid but semantically invalid payload, or what? Hence you put some data in the response body.
This should be done with font ligatures, not replacing character combinations with other characters that can’t be typed normally
No, it isn’t
You’re making assumptions about the control flow in a hypothetical piece of code…
What you’re saying is “descriptive method names aren’t a substitute for knowing how the code works.” That’s once again just a basic fact. It’s not “hiding,” it’s “organization.” Organization makes it easier to take a high level view of the code, it doesn’t preclude you from digging in at a lower level.
No, your argument is equally applicable to all methods. The idea that a method hides implementation details is not a real criticism, it’s just a basic fact.
No, not “almost every modern developer thinks inheritance is just bad.” They recognize that “prefer composition over inheritance” has merit. That doesn’t mean inheritance is itself a bad thing, just a situational one. The .NET and Java ecosystems are built out of largely object-oriented designs.
You realize this is just an argument against methods?
This has nothing to do with Windows or Linux. Crowdstrike has in fact broken Linux installs in a fairly similar way before.
Sure, throw people in jail who haven’t committed a crime, that’ll fix all kinds of systemic issues
Catch and then what? Return to what?
Still not enough, or at least pi is not known to have this property. You need the number to be “normal” (or a slightly weaker property) which turns out to be hard to prove about most numbers.
It sounds like you don’t understand the complexity of the game. Despite being finite, the number of possible games is extremely large.
There’s a spectrum between architecture/planning/design and “premature optimization.” Using microservices in anticipation of a need for scaling isn’t premature optimization, it’s just design.
You can get blight free versions of JavaScript too, if you use TypeScript.
In a hypothetical and highly unlikely world where everyone had to pay Oracle to use Java, everyone would switch to something else. It would be guaranteed suicide. Anyway, in that world, they would need to both make this ridiculous decision and win an unwinnable legal battle afterwards. It’s not a realistic concern.
3 billion devices
What’s the lockin? Is it really harder than just swapping the jdk path to switch between Coretto and OpenJDK? I understand Coretto being preferable for performance and security patches but I don’t imagine it’s that big of a deal if one eventually had to switch