Summary of "I Spent 18 Months Using Rust And Regret It"

Overview

The speaker recounts rebuilding an algorithmic trading platform in Rust over ~18 months and expresses regret. Rust has real strengths (speed, safety, good enums/typing, multithreading), but also major practical downsides for this kind of project. Much of the piece is a technical critique (syntax, semantics, async, lifetimes, error handling) balanced with some praise.

Key technical criticisms and pitfalls

Positive aspects and when Rust works well

Comparisons to other languages and alternatives

Practical recommendations / workflow advice

  1. Don’t rewrite large systems into Rust lightly. If you consider Rust for production, spend months learning: read The Rust Book and the Async Book, and practice allocations, pin/pin-project patterns, async/lifetimes/traits together.

  2. Weigh developer productivity vs. latency gains. A few dozen milliseconds of extra latency (e.g., in Go) might be acceptable if development speed and maintainability are substantially better.

  3. Improve error context deliberately. Use anyhow, custom error types, or roll-your-own error wrapping; avoid blind use of ? everywhere and prefer explicit error wrapping to preserve traceability.

  4. Accept pragmatic duplication when abstraction complicates compilation. Structure generics carefully — placement of bounds matters — and be willing to duplicate code rather than fight the compiler.

  5. Explore other languages/tools where appropriate. Consider Zig, Go, OCaml, or platform-specific solutions (FPGAs) depending on the problem domain.

  6. Practice for months before large rewrites. A suggested rule of thumb: spend ~6 months practicing Rust features before committing to a full rewrite.

Resources / guides / tutorials mentioned

Main speakers / sources referenced

Bottom line

Rust offers strong safety guarantees and the potential for high performance, but its advanced features (lifetimes, async, generics, error propagation) impose significant cognitive and development costs. For latency-sensitive trading, Rust can be appropriate — but only if your team is prepared for the steep learning curve and ongoing tooling/maintenance trade-offs. Otherwise, languages like Go or Zig (or platform-specific solutions such as OCaml/FPGA) may be more pragmatic.

Category ?

Technology


Share this summary


Is the summary off?

If you think the summary is inaccurate, you can reprocess it with the latest model.

Video