top | item 46839506

(no title)

aebtebeten | 29 days ago

In particular, 6-letter long function names may have been convenient on mainframes that used 6-bit alphanumerics in 36-bit words, the 36-bits having been backward compatible with 10-decimal-digit electromechanical calculators.

https://en.wikipedia.org/wiki/36-bit_computing#History

EDIT: I had thought 10 digits of precision were required for certain calculations, but the WP article points out that they may have just corresponded to the operators having had 10 digits on 2 hands, in which case we're being backwards compatible with Hox genes, specifically Hoxd, and tetrapod pentadactyly is backwards compatible to hundreds of millions of years:

https://www.popsci.com/science/why-five-fingers-toes/

discuss

order

nyrikki|29 days ago

Had more to do with punch cards and flexowriter tapes and octal, which predates large word sizes or even mainframes. Note the following from the MIDAS macro assembler [0]

Fortran predates this and was a different lineage than IBM, but not how six char symbols were a request

> The MACRO language had been used on the TX-0 for some three years previous to the writing of MIDAS. Hence, MIDAS incorporates most, of the features which have been requested by users of MACRO, such as more flexible macro Instructions, six character symbols and relocation.

Note that when porting b to the pdp-11, which was ascii vs the earlier FIODEC/flexowriter 6 bit paper tapes is why c case statements fall through, they used it to allow lower case commands in ed as an example.

Flexowriters are 1940s iirc, and TX-0 through the early pdps were octal so it makes sense to grow in multiples of the 3.3 bit lines of paper tape

[0] http://bitsavers.org/pdf/mit/rle_pdp1/memos/PDP-1_MIDAS.pdf

nyrikki|29 days ago

Also note you can count to 12 on one hand and 60 with the other. That is why the ancient Sumerians used it. Base 10 was added to Roman abacus but they still kept the uncia (12) for some functions.

IIRC that wasn’t droop until the renaissance when they read Archimedes attempt to calculate the number of grains of sand needed to fill the universe with grains of sand, he used decimal and they asserted it was superior.

So you can consider decimal as tech debt:)

jsrcout|29 days ago

At my first job circa 1990, our codebase was constrained to 6-character function names in the core libraries, which had to run on many platforms including mainframes. If I recall correctly, you could have longer names, but only the first 6 characters were significant to the linker.

Never thought about why that might be other than "yeah, memory is expensive".