The extra space occupied by comments costs nothing, and if the comments are well laid out there is no possibility that they can detract from understanding the code. The software itself is also a fine place to maintain the inevitable notes on revision levels, and interfacing to the hardware - it is the one item of documentation guaranteed to be passed to a new engineer on a job. It is difficult to understand how some individuals can churn out code without commenting or documenting it - but a lot do. The other side of the coin, is that I have personally had the experience of working on code from which some of the commenting had been removed - it existed, but the previous subcontractor had intended to use it as a lever to ensure the customer continued to avail himself of said subcontractors services. Needless to say, the customer found a new subcontractor - AirBorn Electronics.
Documentation is the castor oil of programming.
Managers know it must be good because the programmers hate it so much. Program testing requires some way to get diagnostic data out of the target, for analysis. Often this is by way of emulation tools, or through the hardware itself, for instance a serial port. Realtime programming The programming for control systems, Realtime programming, is quite different from the programming of a PC applications package. The programming of electronics systems is different again.