Programming languages evolved from the era, where programmer used punching cards to write their code.Imagine a small mistake while punching :).The time when the programmer has to think about the bits and bytes to have a sufficient memory to run his program.
Have a look at below image, what it used to take to move 5 MB Memory from one place to another.
During this evolution from assemblies to higher level languages, to make things simpler designer came up with the concept of predefined functions, which added the abstraction between programmer and interfacing system. Programmer with this set of APIs is now happier to code.
The focus of coding changed from the lower level intricacies to those APIs. The coder is more now concerned about which functions to use for better memory utilization or a better performance.
With the new future technologies like SOA and Cloud, the programming is become more abstract that coder doesn’t even bother/know about the underlying architecture of the system. What he knows is set of APIs which will do the necessary functionality.
But how things are happening internally?
Hmmm… who cares as long as he is happy with getting the job done.