It’s too bad, as Scala did the most of any language to bring me into the fold of statically typed programming. I miss it sometimes, but then I remember all the times Scala wasted my time, and get back to writing Go like a happy little camper.
It’s too bad, as Scala did the most of any language to bring me into the fold of statically typed programming. I miss it sometimes, but then I remember all the times Scala wasted my time, and get back to writing Go like a happy little camper.
I don't know about pace, but in absolute terms, Go is far behind even the oldest versions of Scala.
But logically, what you suggest implies that either generics aren't absolutely needed, and shouldn't be in Go, or it's absolutely needed, and Go has been lacking them for a long time.
Languages are in a big part matter of tastes, and it does not make sense to criticize their chosen approaches beyond objective technical merits for your tasks.
After 5 years of programming in Scala, professionally, writing and debugging a cli tool in Go-Lang felt like a breath of fresh air. I agree with about go marketing, in that I think the creators of go found a larger “market” of devs and understood them better.
The whole “we don’t need generics” fiasco was hilarious, though.
I wonder if generics and proper dependency management were on this survey you’re talking about...
Generics and dep management were on the top of that survey last year. They are the primary focus of the Go team right now. Russ wrote Go Modules for dep managment, the implementation specifically addresses pain points from the community. Generics are a hot topic and looks like we're close to a finalized design.
Don't get me wrong the Go authors have overridden the community a couple of times and there was some serious outrage. Don't think that was a Google thing though, more of an "We know better" from the authors.
I've never found a more sophisticated type system anything but helpful. It's easy for beginners to start, but when you don't have a good type system and you have a complicated project things quickly become a nightmare.
How do you implement it in Go? It can be done in Java with generics, but if I make the problem a little bit more generic, a little bit more complicated, then I don't think Java can do it.
Of course, this is not representative to the whole market and heavily biased towards big companies with big backends that need to scale, but neither are Tiobe, GitHub or SO rankings.
Last time I tried to create a Kotlin project in IDEA, it couldn't provide type information on hover. The Kotlin dialect of Gradle was barely supported enough to be called a "third-class citizen". It's super embarrassing.
Can't comment on the Gradle stuff though, I vastly prefer Maven.
Scala is not tied to a single IDE, it works great in VScode, Eclipse and Intellij and anything else that supports LSP, which is an open standard. And it works really well - including type inference and very advanced implicits stuff.
And recently Scala got excellent incremental compilation support by Bloop from ScalaCenter, which not only blows Kotlin out of the water but even Java with Gradle. The last year I develop purely in Java and I use Scala bloop for day-to-day development, because I couldn't stand multi-minute Gradle compile times. Getting incremental compile times counted in milliseconds (!) or single seconds at worst is something very hard to give up on.
Put your ear to the ground, and you too will hear it.
My employer is doing the same.
[1] https://github.com/rajasekarv/native_spark
[2] https://medium.com/@rajasekar3eg/fastspark-a-new-fast-native...
I think the situation is similar to c++ where too many features have been added over time.
While with c++ there is a body of compiled recommendations on what not to use and how to write c++, for scala that doesn't really exist.
On the flip side, Scala can be a very pleasant stack to work with if you have right people on the team.
> While with c++ there is a body of compiled recommendations on what not to use and how to write c++, for scala that doesn't really exist.
Principle of least power is what you need.
Not everything is a science paper.
Sure, some companies are moving to other languages, that might be growing quicker than Scala ever was. But this isn't zero-sum.