Re: Deprecate and remove case-insensitive constants?

From: Date: Wed, 13 Sep 2017 16:03:47 +0000
Subject: Re: Deprecate and remove case-insensitive constants?
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-100564@lists.php.net to get a copy of this message
"Levi Morrison" wrote in message news:CAFMT4NrC43y-nL_V85qt7JgV1ohM0y4KExhB4e3mi1EjHJ0hBw@mail.gmail.com...
On Wed, Sep 13, 2017 at 2:59 AM, Tony Marston <TonyMarston@hotmail.com> wrote:
People who think that case sensitive software is cool are deluding themselves. When I started working on mainframe computers (UNIVAC and IBM) in the early 1970s everything was case-insensitive. This was only changed by people who did not understand the ramifications of their choice.
Actually there are concrete bugs caused by case insensitivity. For one example, here is our own bugs.ph p.net report about a Turkish locale issue: https://bugs.php.net/bug.php?id=18556 The short summary of the issue is that when capital I, the ninth letter of the English alphabet, is lowercased in the Turkish locales it does not become the same i as it does in English but a different i that is not considered equal. Thus classes such as Iterator are not found in the Turkish locales. Note that this bug was fixed, and then there was a regression that lasted until PHP 5.5. There are other case insensitivity bugs but this Turkish one is the poster child and if you search around you can find many examples of it. Case sensitivity is thus *a correctness issue* and not a "cool"ness, personal preference, performance, or some other type of issue. I argue correctness and maintenance issues are the most important and thus if we change sensitivity of *any* type of symbol it should go in the direction of being case sensitive. Someone can disagree on what they value but people who think case insensitivity is not a correctness issue "are deluding themselves". Levi Morrison
I'm sorry, but errors in translation from one character set to another are insignificant when compared with the much larger problem of the same word having diferent meanings depending on case. In the English language "info" is the same as "Info" is the same as "INFO" is the same as "iNFO" is the same as "iNfO" and so on. If the problem is that an English word cannot be recognised as the same word regardless of case when switching to a non-English character set then the issue is with switching to a non-English character set. Introducing case sensitivity just for this minor bug would create more issues than it would solve, so this bug should be solved using a different technique . -- Tony Marston

« previous php.internals (#100564) next »