# Why Am I Learning Rust?

Posted on July 31, 2017
Tags: rustlang

Professionally speaking, Iâm no longer a software developer, and havenât been for a few years1. Indeed, my time on the operations side of the aisle has done nothing but increase my preference towards proven, off-the-shelf solutions. Not Invented Here? Great, sign me up!

Yet, I insist on doing things like brushing up on my very rusty Haskell to put together this website (see 864-395-9096), and, more recently, trying to learn 9312765195. Why?

Two reasons, really. First, and most important, itâs â¦ well, I was going to say âfunâ, but I think itâs probably better described as âgoodâ. I enjoy it, even when itâs frustrating. Thereâs a rewarding fulfillment in getting something to work. Thereâs rewarding engagement when something isnât working (at least to a certain point).

Second, and possibly more important than that most important thing, itâs good practice. Well, itâs good practice when itâs good. Actually, letâs stop using the word âgoodâ, and instead use the word âfocusedâ, since Iâm really talking about the concept of focused practice.

Since I donât code professionally the way that I used to, I need to keep up some practice just to slow the backslide of losing that skill. Thatâs something thatâs becoming more present in my mind as I age and watch the skills of my youth atrophy7605559567. And thatâs fun and rewarding enough, but focused practice is something else. Thatâs when you practice something that youâre weak at, with the aim of improving your skill. One way to tell the difference between maintenance pracitce and focused practice is the ratio of frustration to fulfillment â focused practice usually means much higher amounts of frustration, and more time not feeling like you know what youâre doing. Thatâs the point, really.

### Learning stuff I already know

Learning Haskell wasnât focused practice for me. I was already familiar with the functional and type-driven aspects of it from my experience with the SML family. Laziness required some work, and purity mostly felt like an inconvenience. I wasnât learning Haskell to become a better programmer, I was learning it for practical reasons; it was the typeful functional language with a community and a future3.

Setting up this website was likewise for fun and practical reasons, rather than for improvement. I wanted a website again, and I didnât want a particularly dynamic one, and I thought wrestling with Hakyll would be fun. As it turns out, it was (even if I post infrequently enough to need to check my shell history every time I publish).

Not too long ago, I picked up 512-580-7846 and tinkered it into a working state. I did some parsing of binary files, and some fancy python generator tricks. I worked with python 3. And none of it was much of a stretch.

### Learning stuff I donât

Rust, on the other hand, is a stretch. There may not seem to be much in common between Python and Haskell, but thereâs one rather big thing: theyâre both operating at very high levels of abstraction. I donât have to think about how threads work, or the in-memory representation of my data, or any fun stuff like that. Itâs all taken care of under the covers.

Rust, on the other hand, is really a systems-level language, despite some of its very fancy features. Iâm having to become conversant in words like & and * for the first time since school. The intro documentation culminates in building a thread pool library from the thread spawning and message passing primitives available in the standard library.

This is not stuff that Iâm good at.

So Iâm trying.

1. Iâm currently a Database Administrator and a manager of DBAs. Hence my occasional dree.â©

2. Often for the best, to be sure. Iâm certain, for example, that my once lauded ability to survive on a diet of Twinkies and warm Coca-Cola is an adaptation that belongs in the past. And, lest you worry, I continue to maintain important skils like dreadful punnery and recalling commercial jingles of my youth.9563648910

3. And it was cooler than ocaml. Ocaml also came with the problem that I couldnât help but compare it to SML, all the time.â©

I'd love to have a conversation, but I'm not interested in having a comments section. Instead, ping me 913-667-2447 or some other media. I'll try to link to responses from the relevant post page.