Learning Rust

For quite some time I am learning to code in Rust. Rust is a system programming language, sponsored by Mozilla, adored by Microsoft and programming language which tops the StackOverflow polls for “most-loved” programming language every year since 2016 (whatever that actually means…).

I discovered it while reading tech news related to Firefox, my personal go-to off-work web browser. My decision why I started learning it was the fact I wanted to learn a system programming language and maybe learn few new concepts related to system programming. I fell in love with it because of its rich syntax which enables for multi-paradigm programming. Rust also has few syntax concepts which I am not very familiar with – for example functional programming (Result, Option, iterators,…) and generics.

Other things why Rust might be compelling to use: being safe by default (all memory accesses are checked, also in concurrent code) and no garbage collection. But since I don’t have experiences with other system programming languages which don’t have those properties, I cannot give my opinion on it.

Downside of Rust for me is the learning curve (mostly because I have much more experiences with dynamically-typed languages). After a year of a hobby use I still do not feel confident in it. For example my biggest two shocks so far were not the notion of lifetimes or compiler throwing errors all the time, but the extremely small size of standard library and reading dependency’s source code full of generics (got used to it!).