toplogo
Sign In

Rebuilding Algorithmic Trading Platform in Rust: A Regretful Journey


Core Concepts
Rust, despite its touted advantages, proved to be a disappointing choice for rebuilding an algorithmic trading platform, leading the author to deeply regret the decision.
Abstract

The author, a self-proclaimed "young, hopeful Rust fanatic," spent 18 months rebuilding their open-source algorithmic trading system in Rust, expecting the language to be the "perfect" choice due to its speed and safety. However, after the migration, the author's opinion of Rust has drastically changed, and they now consider the language to be "absolutely fucking sucks."

The author's main criticisms of Rust include:

  1. Horrendous, verbose, and unintuitive syntax and semantics: The author found it extremely challenging to write even simple functions, often unable to get the code to compile without the help of a powerful language model.

  2. Horrendous error handling: The author struggled to understand errors and lacked the ability to easily trace the source of issues, unlike in other languages like Python and Go.

  3. Crabby community: The author found the Rust community to be narcissistic and unwilling to acknowledge the language's flaws, often dismissing the author's concerns as a "skill issue."

Despite these negative experiences, the author acknowledges that Rust has some pros, such as being fast and safe, especially when compared to C++. However, the author believes that the language's "safety" is more of a detriment than a benefit, as it significantly increases development time.

The author concludes by considering the possibility of exploring other programming languages, such as OCaml, as an alternative to Rust, as they feel they can now learn anything after their challenging experience with Rust.

edit_icon

Customize Summary

edit_icon

Rewrite with AI

edit_icon

Generate Citations

translate_icon

Translate Source

visual_icon

Generate MindMap

visit_icon

Visit Source

Stats
None.
Quotes
"This language absolutely fucking sucks." "Anybody who ever said that Rust doesn't have atrocious semantics is lying to your face." "Where the hell is my stack trace???" "Hot take: the Rust community isn't as nice and cool as they pretend to be. They're a bunch of narcissistic assholes that hate being told that their favorite language has flaws."

Deeper Inquiries

What specific design choices or language features in Rust could be improved to address the author's concerns?

The author's concerns with Rust primarily revolve around its verbose syntax, complex semantics, error handling difficulties, and the perceived lack of community support. To address these issues, Rust could consider simplifying its syntax and semantics to make it more intuitive for developers. Providing better error handling mechanisms, such as more detailed stack traces or improved error messages, would also enhance the developer experience. Additionally, fostering a more welcoming and supportive community that acknowledges and addresses the language's shortcomings could help alleviate frustrations for new users.

How do the trade-offs between development time and runtime performance factor into the decision to use Rust versus other languages like Go for building complex systems like algorithmic trading platforms?

When deciding between Rust and other languages like Go for building complex systems such as algorithmic trading platforms, developers must consider the trade-offs between development time and runtime performance. Rust, known for its speed and safety, offers high performance but may require more development time due to its strict compiler and complex syntax. On the other hand, Go, while not as fast as Rust, provides a simpler and more developer-friendly environment, potentially reducing development time. The choice between Rust and Go ultimately depends on the specific requirements of the project, with developers weighing the importance of performance against the efficiency of development.

What lessons can the Rust community learn from this experience to better support and address the concerns of developers who are new to the language or have had negative experiences with it?

The Rust community can learn several lessons from the author's negative experience to better support developers new to the language. Firstly, fostering a more inclusive and understanding community that acknowledges the challenges and frustrations faced by newcomers is crucial. Providing resources, such as detailed documentation, tutorials, and mentorship programs, can help ease the learning curve and address common issues faced by new Rust users. Additionally, actively listening to feedback, addressing concerns, and continuously improving the language based on user experiences can enhance the overall developer experience and attract a more diverse range of users to the Rust ecosystem.
0
star