Software Design Enthusiast And Engineer

Rusty Nights

If anything, I'm known for my depth of understanding on the topics that I do know. When I learn something, I really like to get into the nitty-gritty details. I have since I can remember, long before I was a programmer.
I've ultimately known I've wanted to learn a new programming language for ~6 months now, but since I have no plans of going at it lightly, I've been 'shopping' languages for even longer. To some, it might seem indecisive, but I've gone back and forth between a few for these past couple months, trying to make a final decision between C#, Rust, or Clojure.

C#


C# is the other language they use where I currently work (beyond the PHP they pay me to write), so I gave that a long look. There are many things to get excited about, no doubt, but I can ultimately read C# pretty easily (knowing PHP), so its familiarity kinda bores me. Not to mention the licensing fees littered throughout the ecosystem - one of it's biggest drawbacks. Having been an entrepreneur for close to a decade, I have a soft spot for 'building from the ground-up". Many of Microsoft's licensing fees just feel like a lack of imagination to me. Thank God we have choices in the programming world, and the purveyors of those choices have thought up (very) profitable alternatives!

Clojure

Clojure had me excited from the very start. Seeing "Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system." on their website (having not known much about lisp at the time), had me hooked! I won't go on a tangent, but I will say that I've used this philosophy within projects I've written in PHP - albeit, in a different manner than they're referring to - and I felt an immediate kinship with what lisp has to offer. I've known of Rich Hickey and Clojure for a while, I just never looked into it that far. I love so many of the ideas in this community, and the lessons I've learned in my programming experience absolutely resonate with the things that Rich Hickey has been teaching about for over a decade now. The 'value of values', Datomic, Clojure concurrency, and on and on. So why isn't this article called (something like) 'Finding Clojure' you ask? Great question.

Why Rust?

Ultimately, I see a type of roadmap in the things I do and the dots have to connect in logical ways. This has worked very well for me over the ~8 years, since I started getting serious about programming. When I combine the mindset of those I work with, the company currently I work for, and my experience to-date, I ultimately see Clojure as being a much longer path to success/retention. The last thing I'd want is to spent countless hours over the course the next year or so (the amount of time I anticipate having to 'properly spend' on this new venture before determining if it's a success) and have to either: a) pivot to something else, or b) drop the investment I've made for the foreseeable future. The ideal scenario here is to leverage my curiosity and substantially increase my depth of knowledge while I'm continuing to provide software that I'm proud of on a daily basis. I've already witnessed what many'a long nights and countless hours of hard work can do, and I still feel like I'm far-from-done.

Enter Rust...

My Rust Journey So Far

You'd be living under a rock if you're a programmer that hasn't come across one of the countless articles, forums, etc. that mentions one/some of the many benefits that Rust is bringing to the programming world. It's hard not to see Rust as the gateway to (at least) the next few decades of high quality software. I remember initially looking at Rust in 2021 and in just a few years, this ecosystem has grown in a massive way. This isn't an article about Rust's value proposition though, I digress.

I've now been digging into Rust for the past few weeks and it's been great. The lower level programming topics are feeding the intuitions and foundations that I've come to rely on as a PHP developer. I'm also a fan of advanced PHPStan, so the type system feels somewhat familiar already. I've been able to work through The Book at this point, and now I'm 7 chapters into the Rust in Action book by Tim McNamara - great so far! From there, I plan to start writing some command line utilities (would love suggestions) that I can use on a day-to-day basis. Having only worked with Artisan commands and NodeJS up to this point, I'm really looking forward to this stage! Though, as a side note, I have tinkered around with Bun as of late, and it's amazing too. For those that are interested, I've been pushing up the code (from Rust In Action) as I go - the CHIP-8 CPU lesson, written in Rust, being a fun one to note. This mod.rs file goes into more of the backstory on that if you're interested.

I have heard mention of how Rust's community has become nasty, which was a surprise to me. So far, I've only seen this made mention of in one of The Primeagen's videos. Sure, I've seen some nasty comments in the threads on Reddit and X. I know the Laravel community gets it's fair share of these too, but it's community is amazing overall. So I remain optimistic!

Feel free to reach out with your comments, regardless of your background. I'd love to chat more.