W C standard nie ma ograniczenia na długość identyfikatorów. Natomiast w dawnym C gwarantowano, że pierwsze 8 znaków na pewno będzie służyć do odróżnienia identyfikatorów -- ale nie specyfikowano, co z dalszymi znakami. W związku z tym, zmienna_1
i zmienna_2
mogły być nierozróżnione, bo na pierwszych ośmiu znakach identyfikatory są identyczne. W standardzie zwiększono liczbę znaczących znaków identyfikatora do 31. http://publications.gbdirect.co.uk/c_book/chapter2/keywords_and_identifiers.html
Stąd techniczny aspekt skracania nazw identyfikatorów.
Drugim aspektem jest fakt, że w dawnych czasach, w konsoli o szerokości 80 znaków i wysokości 25 linii, długie nazwy stałyby się kompletnie nieczytelne.
Edit Jeszcze tak mi przyszło do głowy: krótsze nazwy identyfikatorów powodują mniejsze zużycie pamięci podczas kompilacji, kompilacja jest też szybsza.
W pierwszej wersji Fortranu ograniczenie długości identyfikatorów wynosiło 6 znaków. Nie wiem, jak w Cobolu, ale zapewne też coś takiego tam istniało/istnieje. Długość nie ma kompletnie wpływu na szybkość wykonania programu czy zużycie pamięci (dla języków kompilowanych oczywiście; w językach interpretowanych -- PHP, Python, etc. -- ma to wpływ na szybkość i zajętość pamięci, ale raczej niezauważalny).