Programmørers misforståelser om navne

For to uger siden blev en oversættelse af "Programmørers misforståelser om tid", som i struktur og stil er baseret på denne klassiske tekst af Patrick Mackenzie, udgivet for to år siden. Da notatet om tiden blev særdeles positivt modtaget af publikum, giver det naturligvis mening at oversætte den originale artikel om navne og efternavne.

John Graham-Cumming i dag klagede på sin blog, at det computersystem, han arbejdede med, ikke accepterede hans efternavn på grund af ugyldige tegn. Selvfølgelig er der ingen ugyldige tegn, for enhver måde en person repræsenterer sig selv på er - per definition - en passende identifikator. John udtrykte stor frustration over situationen, og det har han al mulig ret til, pga navnet er essensen af ​​vores individualitet, næsten per definition.

Jeg boede i Japan i flere år, programmerede professionelt, og brød en masse systemer i stykker bare ved at ringe til mig selv. (De fleste kalder mig Patrick McKenzie, men jeg accepterer alle de seks "fulde" navne som korrekte, selvom mange computersystemer ikke accepterer nogen af ​​dem.) Ligeledes har jeg arbejdet for store virksomheder, der driver forretning på globalt plan, og i teorien har jeg designet deres systemer til alle mulige navne. Så, Jeg har ikke set et eneste computersystem, der håndterer navne korrekt, og jeg tvivler på, at et sådant system overhovedet findes nogen steder.

Så for alles skyld har jeg udarbejdet en liste over antagelser, som dit system sandsynligvis vil gøre om folks navne. Alle disse antagelser er forkerte. Prøv i det mindste at reducere listen næste gang du designer et system.

1. Hver person har ét kanonisk fulde navn.
2. Hver person har ét fulde navn, som de bruger.
3. På et givet tidspunkt har hver person ét kanonisk fulde navn.
4. På et givet tidspunkt har hver person ét fulde navn, som han bruger.
5. Hver person har nøjagtig N navne, uanset værdien af ​​N.
6. Navne passer ind i et vist antal tegn.
7. Navne ændres ikke.
8. Navne ændres, men kun i visse begrænsede tilfælde.
9. Navne skrives i ASCII.
10. Navne skrives i én indkodning.
11. Alle navne svarer til Unicode-tegn.
12. Navne skelner mellem store og små bogstaver.
13. Navne skelner ikke mellem store og små bogstaver.
14. Nogle gange er der præfikser eller suffikser i navne, men du kan roligt ignorere dem.
15. Navne indeholder ikke tal.
16. Navne kan ikke skrives med HELE STORE bogstaver.
17. Navne kan ikke skrives helt med små bogstaver.
18. Der er orden i navne. Valg af et af postbestillingsskemaerne vil automatisk resultere i en ensartet rækkefølge blandt alle systemer, hvis de alle bruger det samme bestillingsskema.
19. For- og efternavne er nødvendigvis forskellige.
20. Folk har et efternavn eller noget lignende, der er fælles for pårørende.
21. En persons navn er unikt.
22. Personens navn næsten enestående.
23. Okay, okay, men navne er sjældne nok til, at der ikke er en million mennesker med det samme for- og efternavn.
24. Mit system vil aldrig håndtere navne fra Kina.
25. Eller Japan.
26. Eller Korea.
27. Eller Irland, Storbritannien, USA, Spanien, Mexico, Brasilien, Peru, Sverige, Botswana, Sydafrika, Trinidad, Haiti, Frankrig, Klingon-imperiet – som alle bruger "mærkelige" navneskemaer.
28. Klingon-imperiet var en joke, ikke?
29. Forbandet kulturrelativisme! Mænd i mit samfund, i det mindste have samme idé om en almindeligt accepteret standard for navne.
30. Der er en algoritme, der konverterer navne på den ene eller den anden måde uden tab. (Ja, ja, du kan gøre dette, hvis outputtet af algoritmen er det samme som inputtet, tag dig selv en medalje).
31. Jeg kan trygt antage, at denne ordbog over uanstændige ord ikke indeholder efternavne.
32. Folk får navne ved fødslen.
33. OK, måske ikke ved fødslen, men ret hurtigt efter.
34. Okay, okay, inden for et år eller deromkring.
35. Fem år?
36. Du laver sjov, ikke?
37. To forskellige systemer, der angiver den samme persons navn, vil bruge det samme navn for denne person.
38. To forskellige dataindtastningsoperatører, hvis de får en persons navn, vil helt sikkert indtaste det samme sæt tegn, hvis systemet er godt designet.
39. Folk, hvis navne bryder mit system, er mærkelige fremmede. De skal have normale, acceptable navne, som 田中太郎.
40. Folk har navne.

Listen er på ingen måde udtømmende. Hvis du vil have eksempler på rigtige navne, der modbeviser nogen af ​​disse punkter, vil jeg med glæde give dem. Tilføj gerne flere punktopstillinger for denne liste over misforståelser i kommentarerne, og send folk et link til denne liste, næste gang de kommer på en genial idé om at lave en database med kolonnerne fornavn og efternavn.

Kilde: www.habr.com

Tilføj en kommentar