Hiding Implementation detail from “real users”/ customers/ clients rather than Programmers. A car driver doesn’t need to know the internal manufacturing details as it creates complexity. Similarly, the real end users of the system/application needs not to know internal application details, he/she just concerns whether the required functionality has been developed or not?
So, basic idea is to cope with complexity.