Separating interface from implementation of one of the core practices for making large code bases tractable.
Of course, but that's doable without making programmers maintain headers, and some modern languages do that.
Of course, but that's doable without making programmers maintain headers, and some modern languages do that.