Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert Max UUID Naming #107

Closed
LiosK opened this issue Jun 6, 2023 · 5 comments · Fixed by #112
Closed

Revert Max UUID Naming #107

LiosK opened this issue Jun 6, 2023 · 5 comments · Fixed by #112

Comments

@LiosK
Copy link
Contributor

LiosK commented Jun 6, 2023

I'd raise this issue to hear more voices because I'm not sure if the Omni naming has achieved consensus. As far as I'm aware, nobody but @ben221199 seems to have a strong opinion about the naming of ffffffff-ffff-ffff-ffff-ffffffffffff. In the previous discussion uuid6/uuid6-ietf-draft#62, although nobody expressed a strong opinion, nobody expressed support for Omni either, while people there showed favorable reactions to Max.

I'm more or less concerned about Omni partly because I have no idea about Latin and it sounds like omni-UUID (all of UUIDs) based on the prefix usage in English, but mostly because I am not able to find this usage of Omni in the programming and mathematics worlds. In this sense, we are almost creating a new word, though the word itself exists for thousands of years. I'm skeptical if that's worth it, especially when Max is the default term in programming languages to describe the greatest unsigned integer values.

@fabiolimace
Copy link

fabiolimace commented Jun 7, 2023

I don't agree that just because a word is derived from Latin we should use another Latin word to stay in the same jargon.

I am also of the opinion that the document should be finalized, although the word prefix "omni" is far from consensus.

@ben221199
Copy link

I understand your concern, @LiosK, but as I told in #95, the min/max isn't correct. Definitely when looking to signed numbers. For example, in Java this are the min and max constants of Integer and important here is the first bit of the whole thing:

    /**
     * A constant holding the minimum value an {@code int} can
     * have, -2<sup>31</sup>.
     */
    @Native public static final int   MIN_VALUE = 0x80000000;

    /**
     * A constant holding the maximum value an {@code int} can
     * have, 2<sup>31</sup>-1.
     */
    @Native public static final int   MAX_VALUE = 0x7fffffff;

Why RFC 4122 (and maybe some other documents) choose the Nil bit is because it has the meaning "no bits" in some way. Why I choose the "omni" is because it has the meaning "all bits" in some way.

If you think "omni" doesn't fit, we should come up with a better name with the same meaning, if there is any. But "max" is just not right.

I also agree with @fabiolimace that we maybe should slowly try to finalize the document.

@LiosK
Copy link
Contributor Author

LiosK commented Jun 7, 2023

the min/max isn't correct

Actually, I don't really understand this logic. Nobody would pick <stdint.h> and blame UINT64_MAX for setting the most significant bit, because that's for uint64_t. Similarly, nobody would blame Max UUID for ignoring the interpretation as a signed integer, because that's for UUID. Generally, UUIDs are not interpreted as signed integers, which is clear to some extent from the description in Section 6.10. Sorting. I don't really see the necessity to take such uncommon use cases into account in the spec.

because it has the meaning "no bits"

I don't understand this either. In the programming world, nil/null/none are almost interchangeably used to simply express the concept of nothing, regardless of their physical representations. Nil doesn't necessarily imply, or have people imagine, a byte buffer with all bits unset. Furthermore, nil can just mean zero, and in this sense, it's not unnatural at all in an unsigned space to have a Nil (zero) value on one end and a Max (from Latin maximum) value on the other. It's a subjective matter.

Anyway, I know Max doesn't look super perfect but still find no reason to believe that's wrong or incorrect.

@kyzer-davis
Copy link
Collaborator

kyzer-davis commented Jun 7, 2023

Maybe somebody throw something up on Twitter/Reddit poll or some other place so we get a side-by-side vote from a larger community of programmers?

I will shout at all the prototype implementers over on the other repo and get a small poll going there.
Edit: Send folks here to cast a vote: uuid6/prototypes#46

@kyzer-davis
Copy link
Collaborator

I closed the poll and Max UUID won. I will revert the changes and get this back into the hands of IETF so we can submit to IESG today.

image
Source: uuid6/prototypes#46

@kyzer-davis kyzer-davis changed the title Max/Omni naming Revert Max UUID Naming Jun 9, 2023
kyzer-davis added a commit that referenced this issue Jun 9, 2023
@kyzer-davis kyzer-davis linked a pull request Jun 9, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants