> In that regard it has been fantastically successful.
It allows median programmers to work for years on large systems, yes, and usually to maintain them as well. That indeed has been my experience.
However, in my experience, it is not those median programmers that actually built those systems, and wouldn't have been able to. Much better skilled individuals did.
In my experience, large systems built by mostly median programmers tend to fail (or never even reach production status), regardless of the implementation language. Which is to be expected, since system complexity is often inherent. However, it seems like the idea that "all programmers are just replaceable cogs" and thus that's not the case is way more prevalent around Java (and to some extent .net) than around other ecosystems.
Java has been fantastically successful in the sense of keeping armies of programmers employed maintaining large systems, and at keeping those systems running. Personally, I suspect that most of those cases could have been fantastically more successful if they didn't use the "replaceable cog" model that for many projects is Java's core feature - but of course I cannot offer any proof.
> In that regard it has been fantastically successful.
It allows median programmers to work for years on large systems, yes, and usually to maintain them as well. That indeed has been my experience.
However, in my experience, it is not those median programmers that actually built those systems, and wouldn't have been able to. Much better skilled individuals did.
In my experience, large systems built by mostly median programmers tend to fail (or never even reach production status), regardless of the implementation language. Which is to be expected, since system complexity is often inherent. However, it seems like the idea that "all programmers are just replaceable cogs" and thus that's not the case is way more prevalent around Java (and to some extent .net) than around other ecosystems.
Java has been fantastically successful in the sense of keeping armies of programmers employed maintaining large systems, and at keeping those systems running. Personally, I suspect that most of those cases could have been fantastically more successful if they didn't use the "replaceable cog" model that for many projects is Java's core feature - but of course I cannot offer any proof.