Date: Tue, 21 May 2024 19:43:31 +0200
On 19/05/2024 11.19, Tiago Freire via SG16 wrote:
> [Proper Unicode support. *In MS Windows development, virtually all user input is UTF-16LE in the form of wchar_t and variants*. I convert that to UTF-8 via wrapper functions that use third-party Unicode libraries (uni-algo in my case) that (can) use std::string. Things that should be simple but aren't in Unicode, *like case conversion and case-insensitive comparison*, should be provided for. This would reduce the pain point of third-party libraries.]
>
> Keep in mind that the Unicode standard is evolving, and that users that have a “legitimate use” probably don’t want to wait for a standard/library update to accommodate new rules, and are thus incentivized to have their own implementations anyway.
If you feel you need to release a new version of your software whenever
a new Unicode standard with another handful of case-sensitive
characters comes out, I agree you want to use something like ICU that
is kept in sync with Unicode releases.
For everybody else (and I posit that includes a large fraction of users
that need case-insensitive stuff to begin with), having support in
the standard library may outweigh the disadvantage of that support
lagging a few Unicode versions behind.
> If those with legitimate use cases are incentivized to not use a standard feature and aren’t asking for one, and the only ones left using it are shooting themselves in the foot, are we providing a useful feature or just a gotcha foot gun?
I disagree with that characterization. Bold claims need lots of
evidence and rationale.
> If 90% of uses are wrong, was it good thing? What percentage would that have to be to say “yeah, maybe we were better off without it”?
Where are those numbers coming from? What wrongness are we discussing here?
Jens
> [Proper Unicode support. *In MS Windows development, virtually all user input is UTF-16LE in the form of wchar_t and variants*. I convert that to UTF-8 via wrapper functions that use third-party Unicode libraries (uni-algo in my case) that (can) use std::string. Things that should be simple but aren't in Unicode, *like case conversion and case-insensitive comparison*, should be provided for. This would reduce the pain point of third-party libraries.]
>
> Keep in mind that the Unicode standard is evolving, and that users that have a “legitimate use” probably don’t want to wait for a standard/library update to accommodate new rules, and are thus incentivized to have their own implementations anyway.
If you feel you need to release a new version of your software whenever
a new Unicode standard with another handful of case-sensitive
characters comes out, I agree you want to use something like ICU that
is kept in sync with Unicode releases.
For everybody else (and I posit that includes a large fraction of users
that need case-insensitive stuff to begin with), having support in
the standard library may outweigh the disadvantage of that support
lagging a few Unicode versions behind.
> If those with legitimate use cases are incentivized to not use a standard feature and aren’t asking for one, and the only ones left using it are shooting themselves in the foot, are we providing a useful feature or just a gotcha foot gun?
I disagree with that characterization. Bold claims need lots of
evidence and rationale.
> If 90% of uses are wrong, was it good thing? What percentage would that have to be to say “yeah, maybe we were better off without it”?
Where are those numbers coming from? What wrongness are we discussing here?
Jens
Received on 2024-05-21 17:43:40