One year minus one week ago to the day I published an article
announcing the new Scheme implementation I was writing, scheme-rs.
Today I am excited to announce that scheme-rs has reached its first version,
0.1.0. You can check it out at it’s website (scheme-rs.org, which should be
updated to scheme.rs at some point when DNS propagation finishes) or its
github page.
Although there’s much more work to do (and I will talk about that further down
the page), after reaching the milestone of completing 2258 tests in the R6RS
test suite, I’ve decided that scheme-rs is stable enough to commit to a first
release.
It’s been a pretty amazing journey, one that I’m excited to continue on.
There have been some changes since I initially announced scheme-rs. The biggest is that it is no longer exclusively async, and now supports sync as well.
This change was inevitable; only supporting async would really hamper adoption (or more importantly my personal use cases for the project). But I’m really happy that I was able to implement this change without hamstringing async support at all. In fact, it is even possible to use scheme-rs in both async and sync contexts.
There are quite a few things that are not quite complete, and I will list them here:
But more importantly, I’m very excited to start working on the new language I am
building on top of scheme-rs. I mentioned that it would be strongly typed, but
now I think I might want to use calculus of construction. The possibilities are
truly endless!
In August of last year I had just lost my job. I wasn’t sure exactly what to do. I looked out on the landscape of software engineering jobs and became increasingly uncertain of my place in it. I had been unsatisfied with work for a number of years at that point, and it felt like I had lost the differentiating factor that made me worth hiring in the first place. The idea of getting a job that was interesting, one that challenged me, seemed to be completely out of reach.
I decided that what I would do is look inward. I would try to rediscover where my original love for computer science came from. I had this dinky little project that I had been working on and off on for a while with no clear vision. I decided that I would spend my free time dedicated to that project. I would do research and focus on doing things correctly and with a strong backing from academics. I’d apply for a few jobs, but if those fell through I’d apply for grad school instead.
I’d buy a printer and read papers.
That dinky little project was scheme-rs, and it’s hard to describe just how
much it changed my life. I feel much more confident in my ability as a software
engineer. I no longer think that a PhD is something that is meant for people
much smarter than me. And more miraculously it directly lead me to finding a job
that I absolutely love.
scheme-rs is not particularly special in this regard. It was simply something
that challenged me. And if you have a brain at all like mine, I highly
recommend you find a project that challenges you like scheme-rs challenged me.
If you like being challenged and enjoy functional programming and Rust as much as I do, check out the careers page at OneChronos!