4 ms·
I see spreading Rust as an overall good thing, because it changes benchmark on how software should feel in terms of performance, stability, memory footprint. S
by mapcars 5mo ago
I see spreading Rust as an overall good thing, because it changes benchmark on how software should feel in terms of performance, stability, memory footprint.
So even if it doesn't create tangible advantage in a particular use case - its still good for the whole industry.
- amelius 5mo agoNo because it means people will use Rust for the wrong reasons. Systems programming is only a tiny fraction of code out there. Approaching every problem as a systems programming problem is a massive waste of resources and intellect.
- angusturner 5mo agoFor small to medium projects, an LLM can write functional (if not well crafted) Rust. Considering how easy this is now, why choose a heavier, slower and less typesafe language?
- singpolyma3 5mo agoCould choose a similar weight, similar speed, equal or more typesafe language though :)
- galangalalgol 5mo agoAda? Other than c and c++ everything else benchmarks 2-4 times slower than rust for compute bound tasks, even after jit warmup. I'm up for ada though, especially with an llm where I don't have to type all that verbose syntax.
- singpolyma3 5mo agoOCaml? Haskell? Idris? Lots of options with no jit or warmup
- galangalalgol 5mo agoI'm not against jit or warmup, just saying it doesn't actually catch up for compute bound tasks in my experience. Haskell and ocaml would definitely be next on my list, but they do take a very good hit in performance over ada or rust. I wouldn't say they were similar in performance, certainly. There is a pretty big cliff between the systems languages and everything else performance-wise. For a lot of things it doesn't matter I know, but none of those things are domains I've ever worked in. I've never had a project in my professional career where we didn't descope requirements to fit the available compute.
- amelius 5mo agoOk, so write your app in the garbage collected language, and then tell the LLM to translate it to Rust :)
- Wowfunhappy 5mo agoI find it kind of shocking that Anthropic doesn't see it this way.
- pojzon 5mo agoClaude Code has whole game engine built into it. God knows why.
- zingar 5mo agoEdit: I lost the context that this is about building devtools where you can’t just throw more hardware at the problem. But perhaps my answer still explains the reality: anthropic builds Claude with Claude so Claude needs to be easy to build with Claude. Easier to read for humans is easy to read for LLMs. A more expressive language will bring about fewer misunderstandings when you apply stochastic tools like LLMs. Just be sure you don’t choose something heavier/slower that is not more expressive.
- tcfhgj 5mo agoit saves a lot of resources - for instance my devices would probably use less than half of the memory it uses now and I wouldn't hear the fan.
- amelius 5mo agoYou won't hear the fan because you're still building it. The resources I was talking about are developers × time.
- mapcars 5mo agoSince when is Rust a systems programming language? On their website it is defined as "general-purpose programming language". >Approaching every problem as a systems programming problem is a massive waste of resources and intellect. If someone took their time and decided to use Rust maybe their first couple projects won't be as efficient, but they will learn the language and how to use it in the best ways, they will contribute to the ecosystem, etc. Again, I'm looking at the big picture and not specific project case.
- GodelNumbering 5mo agoI haven't used Rust extensively but my feeling is, if you change the design (which inevitably happens in many early stage projects), the refactoring takes more time due to borrow-checker semantics. Although I am far from a representative sample and could well have been using it wrong
- eldenring 5mo agoIts just not a thing to consider and doesn't happen often.
- ijustlovemath 5mo agoWhen you write Rust long enough you settle on certain architectures (message passing, event loops) that go well with the borrow checker, and don't end up thinking about it too much. Plus you can always throw an agent at the first set of errors from the refactor and let the compiler guide the annoying parts.
- bheadmaster 5mo ago> When you write Rust long enough you settle on certain architectures (message passing, event loops) that go well with the borrow checker So basically Go?
- flossly 5mo agoGo only provides one concurrency paradigm. Rust support many (if not all). The type system of Go is very weak. I'd say that'd be my main reason to pass on Go, even when the concurrency paradigm fits the project perfectly.
- jen20 5mo agoThe biggest reason to pass on Go right now (if your software can tolerate a runtime) is the lack of algebraic data types when doing interesting domain modeling. It makes such a huge difference it’s worth tolerating the pain points of Rust (or Swift, or F#) just to have them.
- gf000 5mo agoHow is it any faster than something written in say, Java?
- tcfhgj 5mo agolatency and throughput (when with Java the system is crying for more memory while it's chilling in the Rust case)
- gf000 5mo agoWhat's the latency difference between a long running process issuing a network call in Java vs rust? This is such a short time that it is completely overshadowed by noise (OS doing something else, what other software is running etc) As for throughput: you have 1-2 requests going at a time, the next one waiting for the reply. What throughput are we talking about? That's like speeding to the post office and expecting your letter to get to the recipient faster.
- tcfhgj 5mo agoyou seem to specifically aim at the current example, but mine wasn't Anyways, consider how higher memory usage can affect the systems performance dramatically once the system needs to start swapping memory to disk signficantly
- hnlmorg 5mo agoIf you cannot write a simple Java agent without consuming so much RAM that your system is swapping then that really says more about the developer than anything. Java is used in plenty of embedded systems and other memory constrained environments. Yes, it’s not going to perform well compared with Rust, but that doesn’t mean it’s an Electron-equivalent bloated clusterfuck of an ecosystem that’s going to eat all your system resources.
- tcfhgj 5mo ago> so much 1) the agent is probably not the only thing running on the system, so more is just worse generally 2) I am fine if a developer needs Rust or similar to write a resource efficient app. I wonder what the developer could achieve when he put the optimization effort into the Rust app instead.