📜 ⬆️ ⬇️

Programmers misconceptions about names

Two weeks ago, Habré published a translation of “ Programmers ' Misconceptions About Time ”, which is based on its structure and style on this classic text by Patrick Mackenzie, published two years ago. Since the time note was extremely well received by the audience, it obviously makes sense to translate the original article about first and last names.

John Graham-Cumming today complained on his blog that the computer system with which he worked did not accept his last name due to invalid characters. Of course, there are no invalid characters, because any way a person presents himself, by definition, is a suitable identifier. John expressed strong disappointment about this situation, and he has every right, because the name is the essence of our individuality , practically by definition .

For several years I lived in Japan, professionally engaged in programming, and broke a lot of systems just by calling myself. (Most people call me Patrick Mackenzie / Patrick McKenzie, but I see any of the six “full” names as correct, although many of the computer systems do not accept any of them). Similarly, I worked for Big Corporations that do business on a global scale and, in theory, designed their systems for all possible names. So, I have not seen a single computer system that would correctly handle the names, and I doubt that such a system exists anywhere .

So, for the good of all, I have compiled a list of assumptions that your system can probably make about people's names. All these assumptions are wrong. Try to at least reduce the list when you design the system next time.
')
1. Each person has one canonical full name.
2. Each person has one full name that he uses.
3. At this point in 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 in a certain number of characters.
7. Names do not change.
8. Names change, but only in certain limited cases.
9. Names recorded 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 sensitive to case change.
14. Sometimes there are prefixes or suffixes in names, but you can safely ignore them.
15. Names do not contain numbers.
16. Names can not be written in CAPITAL letters.
17. Names cannot be written in lowercase letters.
18. There is order in names. Selecting one of the record ordering schemes will automatically lead to a constant order among all systems if they all use the same ordering scheme.
19. Name and surname necessarily different.
20. People have a surname or something similar, common to relatives.
21. The name of the person is unique.
22. The name of the person is almost unique.
23. Okay, okay, but the names are quite rare, so there are no million people with the same name and surname.
24. My system will never deal with names from China.
25. Or Japan.
26. Or Korea.
27. Or Ireland, Great Britain, the USA, Spain, Mexico, Brazil, Peru, Sweden, Botswana, South Africa, Trinidad, Haiti, France, the Klingon Empire — all of these use “weird” name schemes.
28. The Klingon Empire was a joke, right?
29. To hell with cultural relativism! People in my society , at least, have the same idea of ​​a generally accepted standard for names.
30. There is an algorithm that converts names to one and the other without loss. (Yes, yes, you can do it, if the algorithm at the output returns the same as at the entrance, take yourself a medal).
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 rather soon after it.
34. Okay, okay, for a year or so.
35. Five years?
36. You're kidding, right?
37. Two different systems in which the name of the same person is indicated will use the same name for it.
38. Two different data entry operators, if they are given the name of a person, will necessarily enter the same character set, if the system is well designed.
39. People whose names break my system are strange aliens. 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’m happy to name them. You can add in the comments other items for this list of delusions, and send people a link to this list the next time they come up with a brilliant idea to make a database with the columns first_name and last_name.

Source: https://habr.com/ru/post/146901/


All Articles