Hi All, it has been a while since the last blog post went out, a few attempts to write a new post failed because of missing knowledge on what I was actually doing or just because I spent to much time doing other things, I'm hoping to return to post more often and this should be the first of a series of new blog posts on my new interest: Rust.
Speaking about new programming languages in the last few years few new interesting languages emerged, around 6/7 years ago I got really interested in vala, a niche language that I tried to learn, but the missing of a good community and the ability to be enough general purpose made me give up it, around a couple of years ago I heard about this new programming language that reached 1.0 called Rust that was mainly developed inside Mozilla, at first I just skipped it with the assumption that Mozilla was just following the recent trends and making it's own language like Google did Go and Apple did swift, but after some chat with some colleagues/friends I found out that actually Rust was introducing some new concepts and was worth of another look.
So I started to learn rust, one of the first things I had to learn was the concepts of ownership and borrowing, that make this language unique and game changing, the experience coding it at first was a bit painful the compiler complained a lot when i was trying to do something and pretty soon I experienced what in the community is referred as "fight with the compiler" or "fight with the borrow checker", this "fight" means that the compiler don't let you do a lot of things that as experienced programmer you used to do, like share mutable memory, but at the end the compiler is right and I as programmer I'm doing something wrong.
So far I've been playing here and there with some my own project in Rust and tried to contributed back to some project I use, and I'll come back with some blog post on that, in the meanwhile I'll continue to learn and try to bring everywhere I can Rust, because from my point of view is the language of the future, for the following points:
- Easy and clean syntax
- Compile time check on memory sharing and mutability (Borrow Checker)
- Memory managed without Garbage Collector (done at compile time)
- Helpful, Welcoming, Empowering, Amazing Community
- Run everywhere, bare-metal, system programming, desktop/web application development, web assembly
That's all for now.