Since we're going down memory lane...
I jumped on Windows NT as soon as it became available and avoided all that Windows 95 nonsense. What a dead end.
In the last decade I have written numerical routines in assembler. Some things like 24 bit fixed point are not easily implemented in higher languages.
C to assembly is not that inefficient with a decent compiler. OTOH, just look through any C++ program and look at all the extra instructions.
I was looking for an ioctl and couldn't believe that there was no 0xc138fd09.
I knew that high and low were split, but I wasn't expecting this!
Code:
129788: 529fa0c8 mov w8, #0xfd06
12978c: 72b82708 movk w8, #0xc138, lsl #16
129790: 11000d01 add w1, w8, #0x3
Assembly is still very important for reverse engineering.