Rust programming language
- Pavel Tišnovský, Red Hat
- Presentation:
- Presentation source:

Table of content
- Requirements to production-ready programming language
- Rust popularity and expansion
- Rust characteristics
- Rust versus C/C++
- Rust versus Go
- Communication with compiler
- Data types
- Other interesting parts of Rust
- Object oriented programming in Rust
- Memory management
- Threads
- Testing
- Package manager (Cargo)
- Selected useful packages
- Deployment
- Interface to Python
- Documentation
Requirements to production-ready programming language
- Program correctness
- Maintainability
- Safety
- Stability of language ecosystem
- Enough developers
- Resource requirements
- More RAM needed -> more expenses in containerized world
- API and ability to communicate with (micro)services

Rust popularity and expansion
Popularity of Rust
- More metrics how to measure popularity
- Tiobe index
- PYPL (PopularitY of Programming Languages)
- OpenHub (for registered repositories only)
- StackOverflow (yearly interrogatory)



Rust expansion
- Again, many statistic available



Rust characteristics

- Goals
- Don’t repeat the same mistakes made in C/C++ and in Java
- macrosystem
- pointers
- NPE
- strings

Rust characteristics
- Multiple paradigms supported
- Imperative
- Functional
- some OOP-like properties (but not class-based language)
- Available for all “interesting” platforms
- Linux
- (Free)BSD
- OS X
- Windows
- Supported by many CPU architectures
- i686, x86-64, ARMv6/v7 (32), AArch64, MIPS, PowerPC, S390
- RISC-V
- Bare Cortex-M0, M0+, M1, M4(F), M7(F) bare = w/o OS, core library only
- (even for MSP430 - 16bit MCU!)
- Platform Support (1)
- Platform Support (2)
- Now based on LLVM backend
- More info