Octal was widely used some 50 years ago by Digital Equipment Corp. (DEC) and other companies that had computers with a 12-bit word (e.g. the PDP-8) or other multiples of six, such as 18 and 36 (e.g. UNIVAC 1108). I used both the PDP-8 and UNIVAC 1108 in grad school. Characters in both machines typically used six bits, not 8.
PDP-8 instruction format -- note the bits are numbered 0 -> 11. Bit 0 was the MSB (most significant bit).
When DEC came out with the 16-bit PDP-11, they continued to use octal in their documentation instead of hexadecimal as used by the other minicomputer manufacturers coming out with 16-bit machines at the time. This was probably because of the multiple 3-bit fields within the PDP-11 instruction formats like Register, Mode and Src/Dest which lent themselves to be decoded as an octal digit. (Thanks to John Strohm for pointing this out.)
Interestingly, when Motorola came out with their 68000 microprocessor, which was heavily influenced by the PDP-11 and had the same 3-bit Mode and Register fields in the instructions, they chose to use only hexadecimal in their documentation.
Because the PDP-11 used octal notation, the original permission codes for Unix, which first appeared on the PDP-11, also used octal. This legacy persists in Linux, where the chmod command still uses octal to specify each of the three bit 'rwx' fields.
Some more trivia -- CompuServe, which was a widely used dial-up online service in the 1980's and early 1990's (before being overshadowed by AOL), ran on DEC minicomputers, at least originally. All user ID's were numeric, and at some point I made the observation that they never included any 8's or 9's in them, thus they were in octal. My old CIS ID was 70205.
0o
prefix (which is consistent with0x
and0b
but perhaps a little hard to distinguish from00
). And since Python 3, extra leading zeros a re a syntax error to prevent this kind of bugs.