Programmers' misconceptions about naming

Two weeks ago, a translation was published on HabrΓ© "Programmers' misconceptions about timewhich is based in structure and style on this classic text by Patrick McKenzie published two years ago. Since the note on time was extremely favorably received by the audience, it obviously makes sense to translate the original article on names and surnames as well.

John Graham-Cumming today complained on his blog that the computer system he was working with did not accept his last name due to invalid characters. Of course, there are no invalid characters, because any way a person represents himself is - by definition - a valid identifier. John expressed great annoyance about this situation, and he has every right, because the name is the essence of our individuality, almost by definition.

I lived in Japan for a few years as a professional programmer and broke a lot of systems just by naming myself. (Most people call me Patrick McKenzie, but I accept any of the six "full" names as correct, although many computer systems don't accept any of them.) Likewise, I have worked for Large Corporations that do business on a global scale and, in theory, have designed their systems for all possible names. So here it is I haven't seen any computer system that handles names correctly, and I doubt such a system even exists anywhere.

So, for the good of everyone, I've compiled a list of assumptions your system can probably make about people's names. All of these assumptions are wrong. Try to at least reduce the list the next time you design a system.

1. Each person has one canonical full name.
2. Each person has one full name that he uses.
3. At a given time, each person has one canonical full name.
4. At this point in time, each person has one full name that he uses.
5. Each person has exactly N names, regardless of the value of N.
6. Names fit into a certain number of characters.
7. Names don't change.
8. Names change, but only in certain limited cases.
9. Names are written in ASCII.
10. Names are written in any one encoding.
11. All names correspond to Unicode characters.
12. Names are case sensitive.
13. Names are not case sensitive.
14. Sometimes there are prefixes or suffixes in names, but you can safely ignore them.
15. Names do not contain numbers.
16. Names may not be written IN ALL CAPITALS.
17. Names cannot be written entirely in lowercase letters.
18. There is order in names. Selecting one of the record ordering schemes will automatically result in a consistent order among all systems, as long as they all use the same ordering scheme.
19. Name and surname are necessarily different.
20. People have a surname or something similar, common to relatives.
21. A person's name is unique.
22. Person's name almost unique.
23. Okay, okay, but names are rare enough that there aren't a million people with the same first and last name.
24. My system will never deal with names from China.
25. Or Japan.
26. Or Korea.
27. Or Ireland, Great Britain, USA, Spain, Mexico, Brazil, Peru, Sweden, Botswana, South Africa, Trinidad, Haiti, France, the Klingon Empire - all of these use "strange" schemes for names.
28. The Klingon Empire was a joke, right?
29. To hell with cultural relativism! Men in my society, at least have the same idea of ​​a generally accepted standard for names.
30. There is an algorithm that converts names in one direction and the other without loss. (Yes, yes, you can do it, if the algorithm returns the same output as the input, take a medal for yourself).
31. I can confidently assume that this dictionary of obscene words does not contain surnames.
32. Names are given to people at birth.
33. OK, maybe not at birth, but pretty soon after.
34. Okay, okay, within a year or so.
35. Five years?
36. You're joking, right?
37. Two different systems that list the same person's name will use the same name for that person.
38. Two different data entry operators, given a person's name, are bound to enter the same set of characters if the system is well designed.
39. People whose names break my system are strange outsiders. They should have normal, acceptable names like η”°δΈ­ε€ͺιƒŽ.
40. People have names.

The list is by no means exhaustive. If you need examples of real names that refute any of these points, I'll be happy to name them. Feel free to add more points to this list of misconceptions in the comments, and send people a link to this list the next time they have a brilliant idea to make a database with first_name and last_name columns.

Source: habr.com

Add a comment