You are saying this as if these companies don't care about CVR or compatibility at all. The reality is that most companies are extremely conservative about pushing you to change your authentication method. Here are my…
> One of the good features of Go is that you namespace your code with the location to fetch the code. Then the rest of the article explains why this is NOT a good feature in practice. I don't think it's unworkable…
Managing channels and making sure they are closed just once is quite messy compared to other languages. The Go channel axioms[1] don't make much sense: why does closing a channel multiple times panic, but reading from a…
XML did not become more complex following 2002. DTD, Namespaces, Comments, processing instructions, CData, attribute vs. child dichotomy - all of these things exited from day 0. XML Schema (just like JSON schema) did…
OIDC spec has a limited third-party initiated flow[1] that redirects to the RP (equivalent to SP in SAML), which then starts a regular OIDC flow that is indistinguishable from an RP-initiated flow. This flow is safe…
What is prventing OIDC-based IdP from initiating login? You just need to know the login URI: https://openid.net/specs/openid-connect-core-1_0.html#ThirdP...
There is nothing left from the OpenID 1.0 and 2.0 protocol in OpenID Connect, except for the core features (identity federation, identity information encoding and updates). OpenID Connect is basically OpenID reimagined…
JWT has two out of the three issues mentioned above: 1. It has the ill-conceived "alg": "none". But this feature made breaking JWT so easy and low stakes, that many libraries have removed this feature completely, or…
Have you worked on large (>500KLOC) codebases with an agent? Yes. But keep in mind KLOCs are not easily comparable across languages. Java is notoriously verbose. A 500KLOC codebase in Java would usually be half that…
I think Java explicitly refused to take some of the best features of Kotlin, like extension methods, context parameters and operator overloading.
> Most organizations that use Java tend to be pretty conservative with their technology picks That part i s true. > with newer Java versions the only real gap with Kotlin is null-safety But that part isn't. Kotlin has:…
> Hiring developers is easy > And that "team" nowadays may also consist of many AI agents. And that's the part where the hireability arguments collapse. Sure Claude Code works pretty well with Java. It also works well…
Sure it does: https://github.com/uber-go/nilaway Not exactly the same solution as JSpecify, since it doesn't rely on annotations, but it's also more ergonomic. I'm not comparing this to "null-restricted types", since…
Go panics.
Congratulations. You've added another build tool and sprinkled your code with ugly annotations and ifs and Optional Optional.of(x).map(y) all over the place to get the same thing you'd get by moving to Kotlin. I get it…
While Java can outperform Go in some cases, the situation is very much the opposite when it comes to Rust. I also don't see the case for stability. Yes, if you're still on JDK 8, it would probably chug on for a couple…
I'm not sure what enterprise-level collaboration means. In my experience, "enterprise" usually means: "Let's use tools that are 10 years behind, buggier than average, and have lots of half-baked features, none of which…
> Go has null pointer dereference problem. Which Java famously does not have. > Rust is too low-level for typical enterprise app where requirements changes twice a day. You end up spending time and tokens fighting with…
OP already answered that one: They used a closed list of 3 vendors in prioritized order, and got 429ed out of two of them, while the third one stopped serving the mode. This is less of a problem if you're running an…
I think the article is a bit weak when it's making this point, because it's not about Unix pipelines. It's about POSIX shell utilities being too bare-bones. But Unix pipelines are not simple too. They have a couple of…
You can mix Japanese and Chinese with modern document authoring standards or with HTML, but the fact is that most people are too lazy to do that. It's a pet peeve of mine when a document gets displayed with a Japanese…
I don't know how much the USTR campaign against TRON affected the success of BTRON, but I feel like we should be careful about this explanation. This is a classic example of American exceptionalism, but it seems like…
In highly distributed microservice architecture, there's almost never a single upstream. In some cases you may have a couple of customer-facing entry-points (a global API gateway, and a couple of BFFs), but these are…
> To handle this correctly you need your RPC framework to accurately communicate retryable vs non-retryable failures to clients. Even this is not enough, since you cannot always reliably know whether service B is dead…
I think the "happy path" might be a slightly wrong classification in GP, since the post is in reply to a retry-storm issue and explicitly talks about retry storms and thundering herds. I've seen many cases where…
You are saying this as if these companies don't care about CVR or compatibility at all. The reality is that most companies are extremely conservative about pushing you to change your authentication method. Here are my…
> One of the good features of Go is that you namespace your code with the location to fetch the code. Then the rest of the article explains why this is NOT a good feature in practice. I don't think it's unworkable…
Managing channels and making sure they are closed just once is quite messy compared to other languages. The Go channel axioms[1] don't make much sense: why does closing a channel multiple times panic, but reading from a…
XML did not become more complex following 2002. DTD, Namespaces, Comments, processing instructions, CData, attribute vs. child dichotomy - all of these things exited from day 0. XML Schema (just like JSON schema) did…
OIDC spec has a limited third-party initiated flow[1] that redirects to the RP (equivalent to SP in SAML), which then starts a regular OIDC flow that is indistinguishable from an RP-initiated flow. This flow is safe…
What is prventing OIDC-based IdP from initiating login? You just need to know the login URI: https://openid.net/specs/openid-connect-core-1_0.html#ThirdP...
There is nothing left from the OpenID 1.0 and 2.0 protocol in OpenID Connect, except for the core features (identity federation, identity information encoding and updates). OpenID Connect is basically OpenID reimagined…
JWT has two out of the three issues mentioned above: 1. It has the ill-conceived "alg": "none". But this feature made breaking JWT so easy and low stakes, that many libraries have removed this feature completely, or…
Have you worked on large (>500KLOC) codebases with an agent? Yes. But keep in mind KLOCs are not easily comparable across languages. Java is notoriously verbose. A 500KLOC codebase in Java would usually be half that…
I think Java explicitly refused to take some of the best features of Kotlin, like extension methods, context parameters and operator overloading.
> Most organizations that use Java tend to be pretty conservative with their technology picks That part i s true. > with newer Java versions the only real gap with Kotlin is null-safety But that part isn't. Kotlin has:…
> Hiring developers is easy > And that "team" nowadays may also consist of many AI agents. And that's the part where the hireability arguments collapse. Sure Claude Code works pretty well with Java. It also works well…
Sure it does: https://github.com/uber-go/nilaway Not exactly the same solution as JSpecify, since it doesn't rely on annotations, but it's also more ergonomic. I'm not comparing this to "null-restricted types", since…
Go panics.
Congratulations. You've added another build tool and sprinkled your code with ugly annotations and ifs and Optional Optional.of(x).map(y) all over the place to get the same thing you'd get by moving to Kotlin. I get it…
While Java can outperform Go in some cases, the situation is very much the opposite when it comes to Rust. I also don't see the case for stability. Yes, if you're still on JDK 8, it would probably chug on for a couple…
I'm not sure what enterprise-level collaboration means. In my experience, "enterprise" usually means: "Let's use tools that are 10 years behind, buggier than average, and have lots of half-baked features, none of which…
> Go has null pointer dereference problem. Which Java famously does not have. > Rust is too low-level for typical enterprise app where requirements changes twice a day. You end up spending time and tokens fighting with…
OP already answered that one: They used a closed list of 3 vendors in prioritized order, and got 429ed out of two of them, while the third one stopped serving the mode. This is less of a problem if you're running an…
I think the article is a bit weak when it's making this point, because it's not about Unix pipelines. It's about POSIX shell utilities being too bare-bones. But Unix pipelines are not simple too. They have a couple of…
You can mix Japanese and Chinese with modern document authoring standards or with HTML, but the fact is that most people are too lazy to do that. It's a pet peeve of mine when a document gets displayed with a Japanese…
I don't know how much the USTR campaign against TRON affected the success of BTRON, but I feel like we should be careful about this explanation. This is a classic example of American exceptionalism, but it seems like…
In highly distributed microservice architecture, there's almost never a single upstream. In some cases you may have a couple of customer-facing entry-points (a global API gateway, and a couple of BFFs), but these are…
> To handle this correctly you need your RPC framework to accurately communicate retryable vs non-retryable failures to clients. Even this is not enough, since you cannot always reliably know whether service B is dead…
I think the "happy path" might be a slightly wrong classification in GP, since the post is in reply to a retry-storm issue and explicitly talks about retry storms and thundering herds. I've seen many cases where…