mirror of https://github.com/rust-lang/book
42 lines
2.3 KiB
Markdown
42 lines
2.3 KiB
Markdown
|
# Foreword
|
|||
|
|
|||
|
It wasn’t always so clear, but the Rust programming language is fundamentally
|
|||
|
about *empowerment*: no matter what kind of code you are writing now, Rust
|
|||
|
empowers you to reach farther, to program with confidence in a wider variety of
|
|||
|
domains than you did before.
|
|||
|
|
|||
|
Take, for example, “systems-level” work that deals with low-level details of
|
|||
|
memory management, data representation, and concurrency. Traditionally, this
|
|||
|
realm of programming is seen as arcane, accessible only to a select few who
|
|||
|
have devoted the necessary years learning to avoid its infamous pitfalls. And
|
|||
|
even those who practice it do so with caution, lest their code be open to
|
|||
|
exploits, crashes, or corruption.
|
|||
|
|
|||
|
Rust breaks down these barriers by eliminating the old pitfalls and providing a
|
|||
|
friendly, polished set of tools to help you along the way. Programmers who need
|
|||
|
to “dip down” into lower-level control can do so with Rust, without taking on
|
|||
|
the customary risk of crashes or security holes, and without having to learn
|
|||
|
the fine points of a fickle toolchain. Better yet, the language is designed to
|
|||
|
guide you naturally towards reliable code that is efficient in terms of speed
|
|||
|
and memory usage.
|
|||
|
|
|||
|
Programmers who are already working with low-level code can use Rust to raise
|
|||
|
their ambitions. For example, introducing parallelism in Rust is a relatively
|
|||
|
low-risk operation: the compiler will catch the classical mistakes for you. And
|
|||
|
you can tackle more aggressive optimizations in your code with the confidence
|
|||
|
that you won’t accidentally introduce crashes or vulnerabilities.
|
|||
|
|
|||
|
But Rust isn’t limited to low-level systems programming. It’s expressive and
|
|||
|
ergonomic enough to make CLI apps, web servers, and many other kinds of code
|
|||
|
quite pleasant to write — you’ll find simple examples of both later in the
|
|||
|
book. Working with Rust allows you to build skills that transfer from one
|
|||
|
domain to another; you can learn Rust by writing a web app, then apply those
|
|||
|
same skills to target your Raspberry Pi.
|
|||
|
|
|||
|
This book fully embraces the potential of Rust to empower its users. It’s a
|
|||
|
friendly and approachable text intended to help you level up not just your
|
|||
|
knowledge of Rust, but also your reach and confidence as a programmer in
|
|||
|
general. So dive in, get ready to learn—and welcome to the Rust community!
|
|||
|
|
|||
|
— Nicholas Matsakis and Aaron Turon
|