When you write code that accepts names, don’t bake in assumptions that violate these falsehoods.
When you write code that accepts names, don’t bake in assumptions that violate these falsehoods.
I suppose it depends on what you're trying to accomplish. This article definitely reads like it's trying to annoy developers to the point of closing the page though, even if it's intentions are relatively agreeable. I'm reminded of the whole 'master vs main' debacle, where this kind of tribalism hit critical mass. There was huge potential for people to have a good discussion about acceptable practices in software development, but we gave it up in lieu of tribalism and us-vs-them politics. As a result, there was way more media blowback than necessary, which lead to a false sense of urgency and a whole lot of bugs.
So, I don't know. But I do know that a good discussion doesn't start with 40 theses and a hostage situation.
Done.
That covers something like 90% of the already pretty obscure corner-cases. The remainder are likely out-of-scope, such as children that have not-yet-been-named. They can't legally sign up for things in most (all?) jurisdictions, so it's not really worth considering in most scenarios.
This is already 10,000x better than ascii-only input fields for "Surname" and "Given Name" limited to something like 20 characters each. Where entering "Null" or "O'Neill" throws a HTTP/500 error because JSON is "so simple" that anyone can use it...
There's also really nothing about JSON that should dictate that you can't handle the name "Null" or "O'Neill." You don't even need special escaping for those.
It is meaningless to "sort" names across countries. Most languages have their own sort rules, and some languages have multiple sorts depending on the specific usage!
Sorting is almost never what you want.
Are you printing out a phone book onto dead trees? No? Then you do not need to sort names.
Just do substring search, and you've already got a UI that is 10x better than having people flip to 'A', then 'Aa' to get to 'Aaron', etc...
If you're about to say "but I need to define a sort order for a database table key" then you've made another mistake and also not read the article...
That is true. However, it's also obviously true that a sort order that tries to take all of these into account, instead of using the rules of the current user's language, is obviously useless, so I don't understand why you think it's a meaningful objection. Users are surprised and annoyed by an inability to sort names.
Probably you can't, because the person couldn't even type their name in. So if you're writing an application, that's one that's outside your control, and you can't do anything about.