Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why are C names shortened? [closed]

Why there is a function called strcat and not a function called stringConcatenation, or stringConcat or string_concat or something like that? Why there is a clrscr function and not clearScreen or clear_screen?

Does it have something to do with source code size in past days, where every byte was worth gold on overly-sized floppy disks? Or is this fueled by programmers' inherent laziness? Is it a convention?

like image 572
Raphael Avatar asked Sep 16 '11 17:09

Raphael


2 Answers

This is partly historical.

In very old C compilers, there was no guarantee that more than the first 8 characters of an identifier name would be used to determine uniqueness. This meant that, originally, all identifiers had to be eight or fewer characters, so method names were all made short.

For details, see Identifiers in the C Book.

like image 163
Reed Copsey Avatar answered Oct 03 '22 07:10

Reed Copsey


When C and its associated tools were first being developed, input devices were not nearly as easy to use as modern keyboards. I've never actually used an ASR-33 Teletype, but as I understand it typing stringConcatenation on such a beast was significantly more difficult than typing strcat (and without autocompletion, you would have had to type the entire name with no typos). It took a substantial amount of pressure to activate each key. Output was also painfully slow by modern standards.

This also explains why common Unix command names are so terse (mv and cp rather than move or rename and copy).

And it's probably also why old linkers only supported such short names. Programmers would generally create short names in the first place, so there was little point in using scarce memory to allow for longer ones.

In addition to all this, there's a case to be made that shorter names are just as good as longer ones. Names of library functions, whether strcat or stringConcatenation (or is it stringConcatenate? String_Concatenate? stringCatenation?) are essentially arbitrary. Ease of typing isn't as important as it once was, but it's still a consideration.

like image 29
Keith Thompson Avatar answered Oct 03 '22 09:10

Keith Thompson