Replace str(1) with stris(1) #102

Open
trinity wants to merge 9 commits from stris into main
Owner

I voiced my design regrets regarding str(1) in #79. I've rewritten str(1) to look more like my proposed new stris(1). It doesn't flinch when presented with UTF-8, has a much more expansive manual page, and is written in Rust rather than C.

I don't expect this pull request to be decided immediately or without discourse but I do think stris(1) makes a very compelling case for its replacement of str(1).

I voiced my design regrets regarding str(1) in #79. I've rewritten str(1) to look more like my proposed new stris(1). It doesn't flinch when presented with UTF-8, has a much more expansive manual page, and is written in Rust rather than C. I don't expect this pull request to be decided immediately or without discourse but I do think stris(1) makes a very compelling case for its replacement of str(1).
trinity added the
bug
enhancement
labels 2024-05-03 21:14:01 -06:00
trinity added 2 commits 2024-05-03 21:14:01 -06:00
trinity requested review from emma 2024-05-03 21:18:07 -06:00
trinity added 1 commit 2024-05-03 21:36:28 -06:00
Owner

What about strid(1) for “string identifier”?

What about `strid(1)` for “string identifier”?
Author
Owner

I think that is less intuitive than stris(1); it identifies qualities of the string, yes, but it's easier to remember that it tells you what the string is.

I think that is less intuitive than stris(1); it identifies qualities of the string, yes, but it's easier to remember that it tells you what the string is.
Owner

Intuition is less important than memorability. Users aren’t going to be guessing stris(1) from thin air, they will learn it from another source and then memorize it. Making memorization as easy as possible is the ideal.

Intuition is less important than memorability. Users aren’t going to be guessing `stris(1)` from thin air, they will learn it from another source and then memorize it. Making memorization as easy as possible is the ideal.
Author
Owner

To me strid(1) sounds like it's identifying a string; giving it an identifier, maybe hashing it or something. stris(1) asks what the string is - it's hard to read the name and draw the conclusion that the utility is doing some sort of conversion instead of observation. id(1p) does, observationally, identify a user, which lends this use of "id" precedent, but stris(1) very subtly nods at the interface being very similar to libc's <ctypes.h> which has definitions for isupper(3p), islower(3p), etc.

To me strid(1) sounds like it's *identifying* a string; giving it an identifier, maybe hashing it or something. stris(1) asks what the string *is* - it's hard to read the name and draw the conclusion that the utility is doing some sort of conversion instead of observation. id(1p) does, observationally, identify a user, which lends this use of "id" precedent, but stris(1) very subtly nods at the interface being very similar to libc's `<ctypes.h>` which has definitions for **is**upper(3p), **is**lower(3p), etc.
Owner

I am mostly fine with it being called stris(1), but I just want to avoid having a lot of samey names. The fileis(1) utility definitely needs to be renamed anyway so unless I can think of something better for this I am cool with this name.

I am mostly fine with it being called `stris(1)`, but I just want to avoid having a lot of samey names. The `fileis(1)` utility definitely needs to be renamed anyway so unless I can think of something better for this I am cool with this name.
Author
Owner

The original UNIX had a lot of samey names; chmod, chroot, chdir, chsh all come to mind. I can remember them all off the top of my head because they're all intuitive considering their purpose.

The original UNIX had a lot of samey names; `chmod`, `chroot`, `chdir`, `chsh` all come to mind. I can remember them all off the top of my head because they're all intuitive considering their purpose.
First-time contributor

The original UNIX had a lot of samey names; chmod, chroot, chdir, chsh all come to mind. I can remember them all off the top of my head because they're all intuitive considering their purpose.

It lets the user create a very strong conceptual map in their mind of how the tools are related and what they do

> The original UNIX had a lot of samey names; `chmod`, `chroot`, `chdir`, `chsh` all come to mind. I can remember them all off the top of my head because they're all intuitive considering their purpose. It lets the user create a very strong conceptual map in their mind of how the tools are related and what they do
Owner

I think I just have a specific problem with the naming of fileis(1), but I think there’s a difference between consistency and sameyness.

I think I just have a specific problem with the naming of `fileis(1)`, but I think there’s a difference between consistency and sameyness.
emma added a new dependency 2024-06-29 22:02:28 -06:00
Owner

I’m worried about collisions with this name and #14, with the -is being “isolator” there.

I’m worried about collisions with this name and #14, with the -`is` being “isolator” there.
Author
Owner

I don't think the collision is much concern. Consider ed(1) and shred(1) - they're obviously different based on their names and used in different contexts. They don't get mixed up. "Ed" is not a commonly used word and "shred" is, similar to how "fis" isn't based on an existing word but "fileis" is obvious.

I don't think the collision is much concern. Consider ed(1) and shred(1) - they're obviously different based on their names and used in different contexts. They don't get mixed up. "Ed" is not a commonly used word and "shred" is, similar to how "fis" isn't based on an existing word but "fileis" is obvious.
emma closed this pull request 2024-08-24 18:16:22 -06:00
emma reopened this pull request 2024-08-26 15:24:25 -06:00
trinity added 4 commits 2024-08-28 18:54:19 -06:00
trinity added 2 commits 2024-08-28 21:36:38 -06:00
Owner

@silt recommended sid(1) (short for string identify) as a compromise for our disagreement on the naming of this utility.

@silt recommended `sid(1)` (short for string identify) as a compromise for our disagreement on the naming of this utility.
Author
Owner

I like sid(1) but don't love it.

I like sid(1) but don't love it.
Author
Owner

This pull request is acceptable but the program needs a good name.

This pull request is acceptable but the program needs a good name.
Owner

We can hammer out the name later. Getting this merged will be good.

We can hammer out the name later. Getting this merged will be good.
This pull request has changes conflicting with the target branch.
  • Makefile

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin stris:stris
git checkout stris
Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Depends on
#96 testing
bonsai/harakit
Reference: bonsai/harakit#102
No description provided.