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

[Feature Request] Consistent naming of Traits using Gradable Adjectives #3156

Open
1 task done
RichardCoppin opened this issue Jun 30, 2024 · 1 comment
Open
1 task done
Labels
enhancement New feature or request mojo-repo Tag all issues with this label

Comments

@RichardCoppin
Copy link

RichardCoppin commented Jun 30, 2024

Review Mojo's priorities

What is your request?

Looking at the traits of many of the structures:
Defaultable, Movable, Copyable, Intable, Boolable, 'Representable', etc

The pattern has already be set up, and the names of these traits are all consistent: They are all 'gradable adjectives'. Although some of them are potentially not proper English words, they can be guessed.

Yet, then we have the traits of Sized and CollectionElement. Honestly, these are dissonant!

Particularly, in the case where there are two very appropriate adjectives Measurable and Collectable which could be used in their place.
Measurable (being able to be measured) is, in the context of its use, better than Sizable (being of a considerable size).

Even traits like Indexer and KeyElement could be renamed to Indexable and Keyable respectively. Arguably they fit the context less as they are the reverse of their English definition.
The other alternative is to use the term Indexing and Keying, which fit the pattern of using adjectives (participle adjectives in this case). Yet even here the difference can be motivated, in the way they are used. Both the indexing trait and the keying trait are such that are applied to other things.

Lastly we have traits CeilDivable and CeilDivableRaising, can they not just be CeilDivisable and CeilDivisableRaising?

What is your motivation for this change?

The pattern of the trait naming convention has already been set up. It shows to someone coming into the language that the domain has been carefully considered, and honestly the pattern is pleasing.

Dissonance is counter to that. It tends to give the impression that the domain is arbitrarily configures. It can also extricate us from being in the flow.

We like patterns, we don't like anti-patterns.

Any other details?

None

@RichardCoppin RichardCoppin added enhancement New feature or request mojo-repo Tag all issues with this label labels Jun 30, 2024
@martinvuyk
Copy link
Contributor

Hi, have a look at the discussion in #2924 and add your ideas there and close this issue as it is a dup of that

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request mojo-repo Tag all issues with this label
Projects
None yet
Development

No branches or pull requests

2 participants