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
|