Version One

Published on

Estimated reading time: .

I have finally completed bitvec.

I began working on bitvec on 2018 June 28. As with all projects, I kept thinking “surely I am done now; I have nothing more to add or take away”, and kept being wrong.

However, feature change did eventually slow, and development did eventually halt, in 2020 and 2021. My work during the COVID-19 pandemic was almost entirely maintenance and polish, rather than actual feature provision. I had accomplished my major goals (slice-reference encoding, alias awareness, and bitfield storage) and was now only really making internal changes.

I had hoped to publish 1.0.0 on its third birthday, 2021 June 28. However, this date slipped me by, and so I resolved instead to publish on the third anniversary of my father’s death.

I don’t have as much to say here as I thought I would. I’m immensely proud of my work, and I’m especially pleased that it’s been useful to my friends, to people I respect, and to major projects (not exclusive categories, either).

But mostly, I’m tired. I have spent too much time, energy, and focus, making ever-dwindling asymptotic progress towards perfection. I initially forestalled releasing version 1 because I didn’t think I had finished experimentation, but when it became clear that I had, I continued forestalling it because it wasn’t perfect. I became obsessed with 1.0.0 being the last version for a long time.

It won’t be. I expect there will be a 1.0.1 with typographical fixes, and I know there will be a 1.1.0 with new features that I have been asked to provide, but have refused to allow a further delay. And I know there will be a 2.0.0 when the language changes.

But for now, it’s done. It’s been stable for a long time, and while this is a majorly breaking change, it’ll be stable again once you receive it. And I have other work I want to do before this calls to me again.

For one thing, I want to use it! That’s the one thing that everyone else in the world has gotten to do that I haven’t. I’ve never actually used my own work. And I began it specifically because I had a need for it.

You’ve all seen the fruit of my work for the past 40 months. I’m excited to finally step back from it and join you.

Thank you all for your support, your encouragement, your accolades, your nitpicks, your suggestions and questions, and your presence.

This work has meant a great deal to me through a great deal of trouble in my life, and all the more so because it’s been helpful to you. I’ve always wanted to invent something, and I’ve always wanted my work to make others’ lives better. It has been a profound joy to have bitvec accomplish both of those.

Technical information about the release can be found here: