while I think there is a lot of credibility to attributing #go's industry success due to the fact that its minimalism reduces ramp up for new team members while producing less complexity and more clarity/legibility, I think an under discussed factor at play is lines of code as a metric of success.
totally, minimalism at the language level enables innovation at the compiler level, and thus a rock solid infrastructure that does "one thing and does it well" ((cross)compiles a sufficiently expressive imperative language to lean fast static binaries). but if thats the reason to its success, then why isn't #chez just as successful? the obvious answer is that #go is backed by google, but so is #dart, which is successful soley due to flutter, and doesn't seem to really be adored anywhere, so it seems unsuccessful at the fandom level.
because like, what the hell is even going on there. it's a feature pile that most of its users seem to find annoying (including me, as I'm currently using it at work), but it has a powerful compiler infrastructure with native rendering capabilities that you can't find anywhere else. for this reason, I imagine projects targetting dart like #ClojureDart will start to take off, and dart will increasingly be a platform to target, similar to other successful JVM languages like clj & #kotlin (which is Google's official "first order" recommendation for Android dev today).
so I do think that go's success, as a language that its community really loves using, isnt just the solid infrastucture. I think its that it holistically captures a refined vision of the #unix philosophy that has includes insight from the longue duree of the innovations of plan9
A functional domain model is made of pure functions and immutable types. As Domain Driven Design teaches us, it should be expressed in the language shared by everyone involved in the project.
The domain model is arguably the most important layer in an application. It should also be where complexity is tackled.
With #Java's evolution (discriminated unions, pattern matching, virtual threads), are #Scala / #Kotlin still worth it?
Scala & Kotlin have a culture of doing things at compile-time, the former more so than the latter.
This yields safety & expressiveness, and is reflected in features that Java will never implement, in platforms that it will never target well, or in paradigms it will never embrace.
Java is still Java, and you're stuck with Spring, Hibernate, and Jackson, sorry.
@alexelcu I'm enjoying Kotlin, but I have to venture into Java just as often, and I can say I still appreciate developments there. I once heard Brian Goetz explain InvokeDynamic in the JVM at a DevOxx congress, which was instrumental for Lambda expressions, and I was impressed with how they make these feature puzzles, with Java acting as a custodian of compatibility.
Amethyst brings the Nostr social network to your Android phone. Just insert your Nostr private key and start posting.
Nostr is a simple, open protocol that enables decentralized, and censorship-resistant social media. Instead of a single website, it’s a network of thousands of users posting to each other's relay servers that can all interact with one another, seamlessly.