ULID - the ONLY identifier you should use?
10 points by pluto
10 points by pluto
A potential footgun with ULIDs is that their spec says to represent IDs in Crockfords base32. If you read that spec in turn, it contains a number of edge cases, like decoding l and I into 1 and O into 0 (for visual similarity) and ignoring hyphens entirely.
None of the ULID libraries I checked implemented this correctly, which turned me off the spec entirely. I now reach for one of the newer UUID versions, which are almost equivalent, and represent them as strings however I like.
If you read that spec in turn, it contains a number of edge cases, like decoding l and I into 1 and O into 0 (for visual similarity)
The one I use most often passes the "can parse lowercase" but fails when you start substituting the various characters and adding hyphens. Tch. Time for a PR.
I like ULID, and I even wrote a Common Lisp implementation of the spec a few years ago, if anyone wants one, but I think it's superseded by the latest UUID versions, practically, now they have an ordered version.
Yes, UUID v7 is out in 2024. ULID also uses crockford compression which results in more human readable identifiers but you could do the same with uuid v7 and some formatter.
By Betteridge’s law of headlines the answer is obviously no.