In a sense, C is no worse or better than most other 3GL procedural languages. However, a well-written C program with good name choices for constants, variables and functions can be self-documenting, even with sparse commentary. This is also the case with the other 3GL procedural language in which I have professionally developed: timesharing BASIC (aka Business BASIC, which is only vaguely related to the BASICs commonly found on microcomputers).
Forth, to me, is unintelligible gibberish, not so much a computer language as an incoherent discourse on what is supposed to be going on inside a computer. I can no more relate what a Forth program says to what it does than I can relate a food recipe written in Mandarin Chinese to what the end dish will be.