Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Memory Safety: Rust is a compiler that transforms the code to a target platform using the LLVM linker similar to libc++. Memory safety is offered out of the box by the compiler, unlike other system programming languages.
  2. No Runtime: Rust compiles the application or library to the intended target platform without additional server or runtime offering itself as a candidate with less footprint.
  3. Rust Community: Rust brings along with it a powerful packager called Cargo. Cargo is empowered by a registry called crates.io providing an NPM-like development environment where dependencies can be easily addressed.
  4. Opensource Tooling and Infrastructure: Rust offers more options in terms of Tooling and infrastructure compared to other traditional System languages making it a far more productive option.

Rust in itself offers many idiomatic principles which makes it unique

  1. Sum Types: Ability to add structures and enumeration as variants inside a parent Enum.
  2. Traits: Offers Polymorphism-like characteristics provided in traditional OOP languages.
  3. Destructive Move: Each block of code can own the object inside the block making it safer and also easily garbage collected. Rust also offers memory safety for pass-by references and enforces strong compiler validations to prevent memory errors.
  4. Predictable Error handling: Rust allows you to return Result type objects which can contain either an OK (success object) or an Error(object). This makes the code more predictable and also reduces the scope of unpredictable errors.
  5. Options: Rust allows values to be built ergonomically using Options, in many cases values are built over a lifetime or in some cases not at all. Rust solves this problem using the Option type which can be initialized to None and when the option value gets filled it becomes a Some(Value).
  6. Pattern Matching: Rust offers strong Match  pattern syntax which places Arms for a given value. It can use regular datatypes(str, u32, bool), Result, and Options making it more readable for even complex conditions.


Why Extensions?

Why Contracts?

...