Some argue that Rust is more suitable for programmers with less programming experience, and if you have 1-2 years of programming experience, it will be quicker to get started.

This idea, which has been widely discussed on Reddit recently, seems appropriate because:

1. Out of the box. Thanks to Cargo, you can quickly create projects and start programming, with full support for testing, documentation, and formatting.

2. Easy to use. It doesn’t take a lot of effort to understand and emulate examples, and programs often express themselves clearly; After reading the documentation and examples, you can start working quickly.

3. Encourage exploration. Learning Rust can advance your understanding of programming and computer-related knowledge, with each new step being taken.

Others argue that Rust is better suited to experienced programmers who are comfortable with several languages. The reason is that many of Rust’s best features are borrowed from others, and you can learn the best from many other languages.

Rust is a language that absorbs the best features of modern languages while providing high-level, zero-overhead abstraction capabilities and interfaces to the underlying operating systems, with a focus on utility, performance, security and programming experience.

1. Practicability

For programmers, the most important thing about a language is its usefulness. If a tool has no utility, it has no meaning to master it. Users of programming languages, for the most part, solve real problems. Completeness of the language, aesthetic design, consistency are not the focus of programmers.

Rust is a very pragmatic language, but its broadening appearance is often mocked. Many people scoff: Doesn’t Rust claim to be secure? What’s Unsafe for? Even the flap of a butterfly’s wing could cause a hurricane, and a bedbug could cause a circuit board to malfunction, making dealing with an Unsafe world even more natural.

Second, the performance

In many scenarios, performance is not a critical factor, but in some cases, performance is a matter of zero and one. I often hear people compare the performance of Java and C++. Many people have the illusion that with Java’s powerful JIT, it should be no problem to approach, not to say surpass C++. In fact, this is not the case in many scenarios. For example, epic’s early implementation used dexmaker provided by Java, and dex generation was nearly 10 times faster when it switched to C++.

Rust is also a performance-oriented language, and many of the command-line tools used by programmers are written in Rust and have superior performance than their peers. Rust has a very high ceiling on performance and is perfect for performance-sensitive situations.

Mobile semantics

Rust has no historical baggage, it defaults to mobile semantics, and you don’t have to worry about rvalue references, reference folding, and perfect forwarding. It’s very natural to use.

Rust uses mobile semantics, a strict algebraic type system, and a lifecycle and ownership model. Compared to traditional programming languages, these models free up resources at the right time and reduce the number of bugs. In addition, through semantic checking, Rust effectively looks for memory and thread safety issues at compile time, reducing the burden of development and testing.

Ownership, lifecycle, and RAII

Learning any technical language, from top to bottom, from top to bottom, you are bound to touch the CPU, memory and other low-level resources.

The ownership and lifecycle of Rust may be new to some, but it essentially provides a means of controlling memory and nothing more. This kind of access gives us the possibility of memory security, which requires us to pay more when we write programs, but this trade off is valuable.

Rust, which combines expressiveness, performance, and memory security, can be used in many scenarios. Therefore, whether you are experienced or not, you should try to learn Rust. Mastering Rust is like mastering the essence of many other languages, and adding Rust to your stack will give you a future-oriented tool for your career.

Non-convex technology is a leading intelligent algorithm and trading system service company in China, focusing on the research and development of intelligent algorithm trading. Companies adhering to the elite team management concept, has a pure elite gene and gold pedigree. The r&d team has brought together several ACM gold medal players, and more than 90% of them are from first-class universities at home and abroad.

We are now looking for the best Rust development engineers in the industry. If you are willing to join the top technical team and have the ambition to compete with the market, we sincerely invite you to join us!