Post

Learning Rust with a Purpose

Learning Rust with a Purpose

I’ve started learning Rust again. This is at least the 3rd or 4th time. Each time, though, my efforts fizzle because I fail to write anything significant. But, this time, I’m doing it with a purpose: I am going to use it to write an ISAM-style data management library/framework.

Why an ISAM-style data management system?

In the early 1980s, I was a 3rd year undergraduate at New York University, I worked at small software company in New York City, Phact Associates. It was a great experience because the founder, David Graham, was an incredible mentor and teacher. I have no doubt that had it not been for him, I would have struggled to become a successful software developer. He had a deep understanding of the Unix Operating System and the C language. But equally importantly, he was patient and willing to let me make a lot of mistakes.

Phact’s main product was a ISAM data management system written in C. At the time, computers had considerably less memory and disk space due to both cost and technology constraints. As a result, there was a rich market for small, memory-friendly data management solutions. Indeed, its main use case was to be linked into an existing application as a library.

Midway through my last year at NYU, David had an offer to relocate the company to California. He kindly asked me if I wanted to join his new venture but I was keen to finish my degree first. Unfortunately, we lost touch with other after that.

40 Years Later

I still enjoy writing non-trivial code as a hobby and while having another go at Rust, it occurred to me that I’d never learn the language if I didn’t do something significant with it.

Not having used C since the early 1990s, I am amazed that I was writing complex, commercial software in a simple language with its simple runtime library. What better project then to write an ISM-style data management library in Rust? It’s non-trivial and at the same time, it lets me reconnect with my roots as a C programmer.


Annotations: 0,2092 SHA-256 ec9e809afc94754d8d201cb1ce0beec2
@Nick Jacobs : 92,7 105,3 174 176 187,8 259,6 273,2 304 382 384,47 1558,19 1886,8 2078 ...

This post is licensed under CC BY 4.0 by the author.