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.

Recent posts from blogs that I like

No, local models will not win

Every time a new open-weight AI model is released, people say that local models are the future. Why spend billions of dollars building out datacenters when everyone will just be able to run AI models on their laptops or phones? I think this idea is doomed. No matter how strong open-weight models get...

via Sean Goedecke

Hero or hooligan: Odysseus on Phaeacia

He swam ashore naked and fell asleep in a pile of leaves, When he awoke the following, he walked in front of princess Nausicaä, and had to ask for her father's help.

via The Eclectic Light Company

Now we have a timeline of the OpenAI accidental attack against Hugging Face

via Simon Willison