@@ -15,8 +15,23 @@ NOTE: We're interested in the 'HOW' and the 'WHY/WHY NOT' in the report.
### 1.1 Strengths and weaknesses of Rust
#### Strengths
- Catches errors at compile-time:
* Type errors
* Memory leak errors
* Index out-of bounds errors
* Null pointer errors
* Which is good because catching errors as early as possible saves development time, and increases iteration speed. A bug found at run-time is considered 10x more costly to fix, than a bug at compile-time.
- Fast - Fast because Rust enables low-level programming. Does not have a JIT. Is compiled instead of interpreted.
- Modern language - Language made to run on modern hardware, with modern language features. A new generation of programmers expects modern features from a language. Rust makes it easier to convince young programmers to get started with low-level programming.
- Young community - A new generation of programmers are developing Rust. Also good innovation, and longevity.
- Endorsed by industry - Linux, Mozilla, Microsoft. This is a strength because it ensures that Rust will be supported with money, resources, people for the forseeable future.
- Strong documentation - I am thinking about you Rust Book - https://doc.rust-lang.org/book/
#### Weaknesses
- Slow compilation time. 3-4 seconds for debug-build, on a 1000 LOC project. This is a weakness because it slows down iteration-speed.
- Verbose syntax - If a developer is used to a higher-level interpreted language the Rust syntax may be annyoingly verbose. This may scare developers away from Rust.
### 1.2 How we controlled process and communication systems during development