For Java see The Exceptional Performance of Lil' Exception from Aleksey Shipilëv, https://shipilev.net/blog/2014/exceptional-performance. As always, Shipilëv does a fantastic job at explaining inner details of the JVM and observed performance profile.
A few years ago, I got hit by the high cost of an hidden exception (used for flow control by the JDK) while using LocalDate#format to parse a valid date. It was fun to troubleshoot and fix OpenJDK https://unportant.info/using-exceptions-for-flow-control-is-...
I would be interested in reading similar articles for other languages.
> NEVERTHELESS, software supply chain is important. Whatever JVM one chooses should have a good answer to how they handle it.
We do agree on that. We also agree that Linux distributions & Docker official images have been doing shitty job in the past which is what your article is talking about. Thanks to Gil Tene continuous efforts to raise awareness about this issue, situation has somewhat improved.
My point is that AdoptOpenJDK has been specifically created to tackle those issues. Your initial comment seems very unfair to them and could misguide some people.
Everyone is free to pick the JDK build of their choice. Several projects do a good job at providing quality builds of OpenJDK. Most OpenJDK distributions are upstream first, so the determining factor is the trust you put in their build, test & QA processes. From that point of view and in a long term vision, supporting AdoptOpenJDK / Adoptium Temurin looks like a smart move because their tooling & processes are open source and which keeps the OpenJDK ecosystem in a safe state as it doesn't rely on a few private companies as sole providers for the community. History taught me that over reliance on Amazon or Azul might not be a good idea. Lets thanks them for their contributions, but lets no depend on them without viable alternatives.
I think you are right and data model should have been event based rather than span based. https://medium.com/opentracing/open-for-event-based-tracing-... digs into that topic and basically says that distributed tracing is about causality & partial ordering which bring us back to the 70's with Lamport's logical clocks and all following work.
However, this design "flaw" is well known and seems assumed. I'm not able to find relevant GitHub issues right now, but I remember this topic being discussed on OpenTracing or OpenTelemetry bug tracker and the outcome was something like "Spans might not be the best data model, but people are now used to it and we have to ship the spec within a reasonable time, so let's stick to it".
The funny thing is that Dijkstra named this article "A Case Against the Goto Statement". ACM editor didn't find that clickbaity enough and changed the title.
A few years ago, I got hit by the high cost of an hidden exception (used for flow control by the JDK) while using LocalDate#format to parse a valid date. It was fun to troubleshoot and fix OpenJDK https://unportant.info/using-exceptions-for-flow-control-is-...
I would be interested in reading similar articles for other languages.