To compare I find a licensing situation on mid-size (50+ direct dependencies) or larger project much harder to comprehend - you need to figure out what licenses are used, if they can be used at all due to the requirements and company's policy, if they are compatible with each other and what's required for distribution.
One good example is what is meant by "LTS". You get different answers to that question depending on which JDK it is.[1]
I don't remember another language where it was ever this confusing.
[1] More detail: https://www.javacodegeeks.com/2019/07/long-term-support-mean...
You can hate oracle all you want for some of their other segments, but they are insanely good at managing the Java ecosystem and we should be thankful for that.
You can't run an old version of Python and continue to get security and performance backported fixes. Same thing with GO or Ruby or Swift.
I can't remember what Microsoft does for .Net, but I suspect you also need to always be on the newest CLR to get updates.
I think this is one of the major differences with the JVM, in a way, it has more options and vendors which should be a good thing, but it seems to mostly confuse people.
Dotnet LTS versions have three years of support. LTS versions come out every two years, so there is a year of overlap.
The non-LTS (which they call Current) have 18 months of support.