Remix.run Logo
kfir an hour ago

Wouldn't you go with golang in that case?

ndriscoll 42 minutes ago | parent | next [-]

Golang gives you none of nice features of a modern language while being about the same performance tier as Scala or Java, so there's basically no reason not to use Scala.

Thaxll 30 minutes ago | parent | next [-]

Golang is faster and use way less memory than Java, never wonder why you never see Kubernetes controller / sidecar is Java?

As for Scala it's pretty much a dead language, no one work with it and it's impossible to find dev for it.

10 years ago I was moving Scala code back to regular Java.

weego 16 minutes ago | parent | next [-]

It's sad - I spent a good 12 years writing Scala every day and it was the ideal language for my brain. Until it wasn't - sbt got too complex for it's own good, everything became "very smart" developers over-using implicit conversions, you couldn't find a project that wasn't an opinion war on cats vs whatever. It collapsed on the weight of it's own smugness.

go and kotlin aren't it, gleam scratches the itch but I can't justify writing code that would impossible to hire for.

scala situation is a real shame.

23 minutes ago | parent | prev [-]
[deleted]
eklavya 32 minutes ago | parent | prev [-]

I ported a moderate sized java project to golang. Test suite runs order of magnitude faster now. There isn't much change in terms of the architecture. Pretty much the same algos and data structures. The whole dev tooling runs on a 16 gb mac without swapping now. I used vs code for both

ndriscoll 16 minutes ago | parent [-]

IME they're both in a place where Rust is maybe ~40% faster for a decent CRUD web application server, but with go you need to write much lower level code to get there (e.g. using composable generic iterators will ruin your allocations, so it's all manual for loops). You can write idiomatic high level Scala and get the same performance. Which could be as simple as the go compiler offers no ability to force inlining and has way too low of a complexity threshold, but that basically makes reusable code unusable in high performance situations.

The whole go team's philosophy tends to also revolve around assuming their users don't know what they're doing, which is annoying. Like an inline keyword: thinking you know better than me doesn't mean I'm not going to inline it; it means I'm going to manually write it inline myself in the code, and then think the language sucks because it's tedious, error-prone, and verbose. Or they tend to mark lots of stuff private for no reason, and e.g. with TLS 1.3 they just ignore your config because they think they know better, etc.

topbanana an hour ago | parent | prev [-]

I would, or C#