We gave them extensions for a reason - to let people easily tell what kind of code it was.
Historically, that isn't correct. File extensions were invented in the 1960s to distrnguish files for the same program but with a different purpose. For example, I might have a program named FOONLY. It is written in Fortran, so its source file is FOONLY.FOR. When I compile FOONLY.FOR the output of the Fortran compiler is FOONLY.REL. When I link FOONLY.REL the output of the linker is FOONLY.EXE.
In a system like this, hiding the file extensions would be counter-productive.