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.
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.
Right now the AI companies are selling their product at a loss to try to get us hooked. I think it's fair to describe the current situation as "unreasonably cheap", though free is a bit of a stretch.
It will be interesting to see what happens when human developers become cheaper than token maxxing AIs.
Interesting because by then codebases might have become so complex that these can no longer be modified, maintained nor understood by humans, so replacing AI with HI (human intelligence) will simply no longer possible.
That then represents a certain vendor lock-in or Mafia stand off: either keeping paying or have all the code go up in smoke.
Certainly not everyone will be facing this dilemma, but it certainly isn’t sci-fi considering the track-record of big tech.
Will the LLM tools be able to maintain this pile of code either? In my experience there seems to be some complexity maximum to a project that, once reached, the LLM tooling doesn't seem able to manage it either.
I keep wondering about this western worldview where they keep equating a militant failed state with the largest democracy in the world. I can't fathom why they do it.
Last 5-6 years: COVID surge in HN brings in more people
Last 3-4 years: General rise in AI topics which have broad appeal and brought in a lot of people
Last 2-3 years: More overtly political discourse on HN bringing in more people
Last 1-2 years: Bots start coming in, some are very obvious, but they have gotten better and better to the point its hard to tell anymore.
Last year: Sharp rise in shallow redditor-style comments, especially in cultural/political discussions comments that are snarky but contribute little to discussion outside of affirmations like "Laws are for poor people"
That would imply that the complainer has nothing useful to add to the discussion, whereas just saying that the website is probably ai generated and off putting to them is valuable info about the project.
`gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer', 'xwayland-native-scaling']"
`
That stops being necessary as some point around 49/50 I think.
I love this framework! It offers all the benefits of Dart and the Flutter widget paradigm on the web, while still providing access to the DOM. I'm using Jaspr for all of my marketing sites. It's beautiful, and I can ship in minutes.
So if somebody tried to solve the brainteaser with an impossibly high likelihood of being completely wrong. You get the signal that their values match yours, they are open minded and that they are good at writing great programs?
If you don't like rust for whatever reason, use any other memory safe language. If you need more convincing that bugs and vulns are dropping let and right from decades old battle tested software, ask anyone with access to frontier ai sec models.
reply