there's more to it than that. let's take C#, as i find that interesting and a bit sad. C# had what seemed like huge mindshare around the 2.0 era. great tooling, sane language, great developer experience. of course it helped that Windows was still huge. now? it still exists, but i'm happy to bet it will never become that big again for various reasons (windows only for a long time, still windows-centric, sucky webdev + mobile).
java has issues, too. i'm not talking about the language per se, but the whole situation. the end-user java experience sucks, most people know it mainly for requiring updates, making browsers insecure, and using ungodly amounts of RAM. in a world with containerization, the write-once-run-anywhere marketing line isn't so interesting anymore. groovy, scala, clojure, and kotlin injected some cool ideas, but might have done more harm by cannibalizing the community and proving that just because it runs on the JVM doesn't make it great (to some people :)).
we agree it isn't going anywhere fast. huge corporations use it daily still which means huge paychecks. but getting by isn't the same as thriving, and i think it's a valid question to ask. because just like C#, simply adding new language features isn't always enough.
C# is still the sanest default choice for any Windows desktop app. And the web stack has only gotten better since 2.0 days, especially with .NET Core. And all the "enterprise" stuff never went away, either. Never become as big again? It's way bigger than it was back then.
you're probably right, and i'm not here to bash C#, just to show what can happen to a healthy language when external things are occurring in the meantime.
C# 2.0 was released around nov 2005. even with two solid years of use, that's 2008, and means i haven't touched windows in almost 10 years professionally! coincidentally, intel macs were released jan 2006, and vista was 2007.
those same enterprise customers that wanted desktop apps started wanting web-based tools, for mostly good reasons. developers, especially web devs and designers started using macbooks. virtualisation, containers, etc. all came from linux/bsd, and that showed for a long time.
but hey, who knows. maybe they'll magically fix all the issues with windows 10, regain people's trust especially w.r.t. to updates, captialise on Apple's hardware weakness (if you see it that way), make .NET and GUIs with .NET first-class citizens on other OS', then maybe?
> groovy, scala, clojure, and kotlin injected some cool ideas, but might have done more harm by cannibalizing the community and proving that just because it runs on the JVM doesn't make it great
1. Apache Groovy gave people closures and builders on the JVM but at the cost of static type checking, and developers happily embraced it.
2. Then Scala came along and showed you could have closures without losing the static type checking, so many developers moved there instead.
3. Then Clojure came and brought closures to the JVM and lost the syntax, but no-one embraced it.
4. Then Kotlin came and showed you could have both closures and builders on the JVM without losing the static typing, and it's now everyone's favorite.
5. Finally, Java bolted on closures and Groovy and Clojure bolted on static typing annotations, but who's using them?
minecraft? all of jetbrains' IDEs? but yeah, i struggled to name even those.
actually, the minecraft modding community is awesome, and they are doing some really great stuff. including amazing GUIs (inside minecraft, but still).
java has issues, too. i'm not talking about the language per se, but the whole situation. the end-user java experience sucks, most people know it mainly for requiring updates, making browsers insecure, and using ungodly amounts of RAM. in a world with containerization, the write-once-run-anywhere marketing line isn't so interesting anymore. groovy, scala, clojure, and kotlin injected some cool ideas, but might have done more harm by cannibalizing the community and proving that just because it runs on the JVM doesn't make it great (to some people :)).
we agree it isn't going anywhere fast. huge corporations use it daily still which means huge paychecks. but getting by isn't the same as thriving, and i think it's a valid question to ask. because just like C#, simply adding new language features isn't always enough.