Delegation is a basic principle of engineering. Do what you need and don’t tell you the details.
But sometimes you need the details.
Would you like me to arrange for someone to pick you up? It would be my pleasure. Did I not mention that we’ll charge your account $2,500 for the service? I’m sorry, but you should have asked.
It’s very convenient if you can invoke a remote procedure call as if it were a local call to a page in memory. Or access a file across the Internet with the same fopen()
call as you’d use for one on an attached hard disk.
Not so much as the cost rises a thousand- or a billion-fold.
A great deal of effort has gone into trying to shield programmers from learning the data definition, manipulation, stored procedure, and query languages of the DBMS their system is built on.
Why bother? They’re not that hard to learn and get good at.
More importantly, there are common situations where switching from shipping the data across to analyze in your program and analyzing it in a stored procedure within a database server process drops the cost in network traffic from terabytes to a few KB.
Don’t bend down to pick up pennies. But understand the implications of what you do well enough to know if there’s serious money involved.