기술적 인 이유가 있습니까? 이것은 Linux 또는 Unix 초기의 유물입니까? 그렇다면 지속되는 이유가 있습니까?
나는 기술적 인 이유를 생각할 수 없습니다. 역사적으로 ASCII 일뿐입니다. 읽고 입력하는 방법은 코더의 손에 달려 있습니다.
유닉스 역사-레포 /usr/src/cmd/passwd.c
char *uname;
insist = 0;
if(argc < 2) {
if ((uname = getlogin()) == NULL) {
printf ("Usage: passwd user\n");
goto bex;
} else {
printf("Changing password for %s\n", uname);
}
} else {
uname = argv[1];
}
아카이브 매뉴얼 페이지 (예 : 1BSD는 Bill Joy의 첫 번째 Berkeley Software Distribution )를 탐색하는 데 시간을 보냈 으므로 사용자 이름을 지정하는 것을 보지 못했습니다. 그것은 그것이 존재하지 않는다고 말하는 것이 아니라, 나는 그것을 보지 못했습니다.
그래서 우리는 역사적 인간적 맥락에 남아 있습니다. 1980 년에 기술을 시작했을 때 우리는 항상 로그인에 실명을 사용했습니다. 길이 제한이없는 한 일반적으로 첫 번째 이니셜과 성입니다. 로그인 이름이 이메일 주소로 사용 되었기 때문에 중요했습니다. 그때 아무도 익명의 이메일을 보냈습니다. 물론 몇 가지 예외가 있었음에 나는 기억하지 못한다. 전체적으로, 나는 이것이 사실이라고 생각합니다.
rfc5321 # page-63에 따르면 이메일 "name"을 숫자로 시작하는 데 제한이 없습니다. gmail은 모든 숫자 사용자 이름을 만듭니다. (지금 받아라, 그들은 빨리 가고있다).
따라서 [0-9]로 시작하는 사용자 이름을 거부하는 코드가 있으면 나중에 프로그래머가 "왜 이름을 숫자로 하시겠습니까?"라고 생각하면서 존재하게됩니다. 다시 한 번, 숫자로 시작하는 사용자 이름을 거부하는 역사적인 유닉스 코드가있을 수 있다고 말해야합니다. 나는 그것을 보지 못했다. 초기 암호 테이블은 수작업으로 편집되었으므로 90 년대 초에도 자주 사용하는 것을 기억합니다.
왜 그것이 지속되는 한, 나는 stroustrup, C ++ 11FAQ를 인용 할 것입니다. 새로운 표준 라이브러리는 언제 사용할 수 있습니까?
문제를 더욱 어렵게 만들려면위원회에서 나쁜 점에 동의하더라도 이전 기능을 제거하는 것이 불가능하다는 점을 기억하십시오. 수십 년간.