I see your point and it is valid. Actually, if it were up to me, I'd say beef up ODBC to make it more robust, more able to handle complex data types, aggregates, different call conventions, more detailed error reporting, no-configuration connections, etc., and make that the only database interface. That way we'd separate out two distinct parts:
- how to connect to databases generally from a given programming environment
- how to connect to a given database type
I mean, either that or replace ODBC with something better that accomplishes a similar goal.
Frankly I consider the current system, where each database needs a separate driver for each programming environment, kind of pointless.