I’m not a real true programmer, so I never thought of versioning my software. As I’ve never distributed any of my software — most of which is written for me, myself, and I — I had no use of versioning.
However, when I’ve been doing any work, including those projects with code, e.g. Flash banners, I quickly gave up on trying to version them. Perhaps, I also used 0.1 till 0.9 and then 1.0.1 versions. Probably, intending to keep v.1 as a final one.
Unnamed-fin-fin-fin-real-fin.psd, you know.
I gave up on that, and started naming all of my projects with the date. For me, it’s always something like 2025-01-19-2240
for whatever I’m doing. For me, it’s super useful. I have no use for versions, and date-time format is plenty for me. Usually, the newer is the better.
I don’t claim versioning is useless. It’s useful for many use-cases and it’s a difficult thing to learn properly. It’s hard, and one needs experience to version their software properly. It’s just in some cases naming your versions with the year-month is good enough, and simple enough.
E.g. Ubuntu. I had difficulties to understand it 17 years ago (e.g. Ubuntu 8.04).
But these days Ubuntu 24.10 makes just much more sense to me than, say, Debian 13 (Trixie is even weirder) or Fedora 41.
I have no issue to know whether Ubuntu 18.10 is something old or new, but most times I cannot recall what’s the latest Fedora. Even despite the fact I’m actually have Fedora installed on a multiple computers, and I don’t use Ubuntu for over 10 or even 15 years. (For so long that I don’t even remember.)
Almost the same is with the Debian. Almost, because it updates so infrequently that over these 5 years… yeah, I remember I’d stay forever on that 12th release. Yeah, I almost remembered it’s Bookworm either.
I use Debian, yet I struggle to remember which one. The Ubuntu year-month model works just so much better for me.
0-ver
But here is another beast, zero version. I’m not going deep into this topic, as the linked website explains everything very well.
For me, zero version is an instant signal the mainterner has issues with self-confidence, and would stay on that zero version forever.
Maintaner having self-confidence issues isn’t a necessarily bad thing for a software product. As we may know from Daniel Kruger and his effect, it’s much better than having some over-confident incompetent jerk. (Who cannot remember how to write Dunning.)
There are plenty of software that starts with zero, Hugo is the greatest example. Its maintaner produces amazing work, and I just enjoy reading his release notes.
Weird, yet I visit his GitHub releases just to read the notes. It feels like getting a email from an old friend for me. Between the lines, I see that he cares about the software he writes.
Right now, I noticed another one: neovim has v0.10. Fantastic software, yet, still less than 1.
I’ve read this line in Arch Wiki, and it made the mathematician in me crying:
Starting from Nvim’s version 0.5, it is possible to setup Nvim via Lua
Why, oh, why?!
0.5 is bigger than 0.10!!!
Just … all the humble coders, hear me out! It’s less than 1 only when it’s localhosted. As soon as it leaves your machine and is hosted for a wider audience, you ought to stop zero-versioning it and increment your work. Start with 1, it’s okay. It’s okay if your software will reach v2, v3, v4 … v124.
Look at Facebook! I’ve stopped using their iPhone app circa 8 or 10 years ago, yet it was some super-high version, like 200 or something.
Look at Chrome! It’s, what? 120? 130? 140? Nobody cares! (I don’t use it, but not because of the versioning scheme.)
Firefox isn’t far, by the way. I run 134.0.1 at the moment. I’m fine with 134. At least it’s not 0.134.
Stop making mathematicians cringe on your versions. Life is not enough to get to the point.