Rust is Exciting

Rust is an exciting language. I recently bought The Rust Programming Language Book. It’s quite dense with a lot of concepts I haven’t thought about since college. Working in high-level programming languages such as Java, Python, and TypeScript have allowed me to mostly forget about the woes of low-level programming. Rust has both re-introduced me to these problems, and then immediately solved them with the advanced static analysis that its compiler provides.

I’m still a beginner with Rust. That’s the exciting part. I have so many questions; so many things to figure out. It’s a challenge. It’s a lot to learn. It reminds me of when I first started programming. There was a mountain of work to do, and an endless number of things to figure out. Eventually it gets easier and you become productive. You write small applications just because you can — because you want to prove that you know what you think you know.

Rust is full of features. Many of them deal with safety, such as the ownership system and borrow checker. It helps to guarantee memory safety, and coincidentally also helps when writing code that will be executed concurrently. These features are important, but what I’m really excited about are the language features — the features that make a language a joy to work in. Rust has plenty of these. Interoperability with C, pattern matching, the lack of a null type, Cargo, immutability-by-default, functional programming constructs built-in, macros, a compiler with the most helpful error messages I’ve ever seen, tuples, and pattern-matching. I’m just scratching the service. The type system and syntax isn’t quite as good as TypeScript, which I hold as the absolute gold standard (even if it isn’t perfect).

What’s particularly exciting is the applicability of Rust. I tend to use Python or Java for small shell scripts/programs. It works great for me, but it’s not especially portable. If I want to share my creations with my team members I have to provide explicit instructions about which runtime versions must be used, and any possible dependencies. Rust is a bit different. Since it produces native binaries I can simply hand them the executable (provided the dependencies are bundled) and let them have at it.

I’m excited to be a beginner again. I’m excited to learn about things I’ll never use in my day job. I’m excited to get good at writing Rust code. I’m excited for the future of programming languages, which will hopefully follow in Rust’s footsteps.

Posts from blogs I like

Pikmin 3: No Fruit, No Problem - 0 Fruit in 2h24m

Want to watch this in your video player of choice? Take this: https://cdn.xeiaso.net/file/christine-static/video/2024/pikmin-3-0-fruit/2/index.m3u8 Recently I saw @TheBacklogs do a Pikmin 3 challenge run where they collected 0 fruit to beat the game. I thought I could do better, so I beat it in 2 hours 24 minutes. Full run without commentary: https://youtu.be/nHFIn74-mLk @TheBacklogs' run: https://youtu.be/eSEUdgVX7o4 My website: https://xeiaso.net My Mastodon: …

via Xe Iaso's blog May 04, 2024

Copyleft licenses are not “restrictive”

One may observe an axis, or a “spectrum”, along which free and open source software licenses can be organized, where one end is “permissive” and the other end is “copyleft”. It is important to acknowledge, however, that though copyleft can be found at the opposite end of an axis with respect to permissive, it is not synonymous with the linguistic antonym of permissive – that is, copyleft licenses are not “restrictive” by comparison with permissive licenses. Aside: Free software is not synonymous with copyle…

via Drew DeVault's blog April 19, 2024

Airfoil

The dream of soaring in the sky like a bird has captivated the human mind for ages. Although many failed, some eventually succeeded in achieving that goal. These days we take air transportation for granted, but the physics of flight can still be puzzling. In this article we’ll investigate what makes airplanes fly by looking at the forces generated by the flow of air around the aircraft’s wings. More specifically, we’ll focus on the cross section of those wings to reveal the shape of an airfoil – you can see…

via Bartosz Ciechanowski February 27, 2024