Hacker Newsnew | past | comments | ask | show | jobs | submit | kfir's commentslogin

Wouldn't you go with golang in that case?

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.

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.


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.


Every job I've has has used different languages so I don't really understand the need to find a dev for a specific language. I went from network firmware in C to banking application servers in Scala and it took like 2 weeks to ramp up. Not a big deal. Now I write lower level networking stuff again in Go, which seems like its just worse than e.g. C-with-templates (and occasional classes) style C++ so I don't really understand why people like it.

I think it used to be common to just look for smart people and assume they can run with whatever stack. Wasn't that the point of abstract algorithm questions etc. (basically an IQ test)?


>I think it used to be common to just look for smart people and assume they can run with whatever stack. Wasn't that the point of abstract algorithm questions etc. (basically an IQ test)?

Lots of companies where software isn't the focus see it as a cost center, so they'd prefer to hire lower-IQ specialists instead of higher-IQ generalists, because the latter are more expensive/have more options.


Golang is not faster than Java, the opposite in fact. With native image, Java can be used for sidecar applications as well.

Java is almost always significantly faster than Go because the Go runtime does a poor job of exploiting large memory page, doesn't support text-on-huge-pages, and barely supports profile-guided optimization. With HotSpot you get all of this and more for free. Go is fine but Java is peak.

This made me chuckle.

Aside: Scala dev here - but I only talk about how wonderful it is with people I trust (mostly Go and Rust developers I used to work with).

Also, Scala Native means I don’t always have to worry about the JVM depending on the use case.

ScalaJS is fun too.


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

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.


So you compare the build tool of A and B on a short-lived job type where java is knowingly not its strongest? How is that a meaningful comparison?

I am not sure I understand your point. It's a meaningful comparison based on my situation. But even if it isn't, what are you arguing for? I change my use case rather than the tool/lang? Sorry if I misunderstood.

Isn't this mostly about java cold start costs? It might be that other people are optimizing for steady-state performance, not transient startup performance.

One particular test was running for 20 minutes, doing repetitive calculations, hopefully enough to get jitted. It finishes much much faster now. I could have profiled to check what was going on but the test was simple and the dev tooling and the ram usage was a major concern for me. Also gradle upgrades were painful.

Java tooling taking up a lot of ram was a major motivation for me. I have done a lot of Scala as well. I don't think either Java or Scala in the real world beat go on performance for most cases. I don't doubt that in some cases jvm can do better but at least before Valhalla delivers all the promises, in real world, I am doubtful.

I have been a Java/Scala user almost for the majority of my career. I doubt I would pick jvm over golang going forward though. Also not having to deal with OOP is a plus.


You could, but it's not as fast as Java, especially under heavy workloads, its telemetry is nowhere near as good, and it's much less popular.

It's unsafe in many applications due to not having exceptions

I would, or C#

Went with 100% ValKey, if you are solely on AWS it is a no-brainer


Microsoft did that not out of charity to Apple but as an attempt to fend off the DOJ trial accusing it of being a monopoly


The lack of success in hardware is intentional. Hardware is a low margin business that will hurt their bottom line.


Right, like this world's largest company called Apple, which gets most of the revenue from its hardware sales. Pixels are not cheap either and given its low specs (Tensor SOC), the per-unit margin has to be quite decent. OTOH, there are significant fixed development costs which you want to spread over as many devices as possible to increase the net margin.

The lackluster value and sales of Google hardware is no master plan, it's a simple incompetency.


When did you write this in 2005? Apple would like a word with you.


No, it's not


If you think StackOverflow is the epitome of scale, then your view of the world is somewhat limited. I worked for a flash sale site in 2008 that had to handle 3 million users, all trying to connect to your site simultaneously to buy a minimal supply of inventory. After 15 minutes of peak scale, traffic will scale back down by 80-90%. I am pretty sure StackOverflow never had to deal with such a problem.


Daring tech stack!

(50%+ in php)


Boring tech stack!


There is nothing more enjoyable and fun than developing on a mature, boring tech stack. We might be able to keep web devs more than a year if the kneejerk choice wasn't React or Angular (Vue3 is a joy).


Who decides what is "boring"? Plenty of people have stuck with React for nearly a decade and components just as old continue to work in the latest version of React. Meanwhile, Vue 3 is such a breaking change from Vue 2 that people either abandon Vue altogether or chase bugs with the 2-to-3 bridge. Does that make React "boring and mature" compared to Vue 3? If not, why not?


only if you manage to go past npm install


Why do people pay 100-200% to use Algolia


Hey Julien!

Great to see that you finally released this ;)


Yep! Thank you


You probably want to post it on this thread as well - https://www.reddit.com/r/rails/comments/ekmtgu/anything_simi...


I believe this paper has an answer to your question - https://queue.acm.org/detail.cfm?id=3487022


Thank you very much for the link.

I don't see an answer in there, though.

They use tagging (as described also here: https://tree-sitter.github.io/tree-sitter/code-navigation-sy...). From both docs I assume `tree-sitter tags` works out of box for any language that has a parser. (Since neither doc instructs to save a custom config for tag extraction query, I assume every language plugin provides tagging queries).


Are you familiar with swift playground? https://www.apple.com/swift/playgrounds/


I wasn't but this looks fun!


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: