

Yeah this is a tough one. I’m not sure the right thing to do is for me to go around blasting PRs at those projects. They’re probably already carrying support for both chrono
and time
, and asking them to support a third that is brand new is a bit of a stretch I think. Especially since I’ve promised breaking changes in the not-too-distant future. (Although I would like to do a Jiff 1.0 release about 1 year from now and commit to stability.) At least, I know I’d be hesitant if I were on the other side of it. But maybe folks are more flexible than me, I’m not sure.
I’ve been noodling on just adding these integrations to jiff
itself. I do worry that if I do that, then the integrations will always stay with Jiff, even at 1.0. But maybe there just isn’t another feasible choice.
But, why do you mention humantime
? humantime
doesn’t have any integrations with time
or chrono
. humantime
is more like a thin wrapper on top of std::time::Duration
and std::time::SystemTime
to make parsing and printing a bit nicer.
As the author of Jiff, I don’t like it either. But I didn’t see any other feasible way to improve Rust’s datetime offering. (The sibling comment links to a more in depth answer.)
It would be better if there was one datetime library. It would be better if
chrono
had just been done “right” from the start. But it wasn’t. So I can either go to thechrono
maintainers and say, “please let me, a non-expert in datetimes, have full creative control over the project” or I can go build something on my own and, in the process, become an expert. Otherwise, we stay stuck in our local optimum.As a fan of xkcd, this is probably least favorite xkcd. On the one hand, yes, it aptly expresses frustration. On the other, it’s easy to use as a club against progress itself. Sometimes you need to start fresh to move the needle. Rust is a perfect example of that itself.