I would have a look at a framework like Ruby on Rails which makes use of the dynamical abilities of Ruby and the fact that you can add new methods to objects at runtime.
As a result you get a kind of seamless integration of your whole environment (Database, Plugins) into the language, enhancing it's features instead of being something "external" that needs to be queried via an interface.
just as one simple example: If I do an SQL query in a language like C++, I need to "ask" the resulting object for the value of a single field from a user table:
QVariant someValue = myUser.value(5);
It doesn't even know anything about the fields names and needs integer indices.
Rails has the ActiveRecord object, which simply is enhanced with methods that resemble the field names, so we can just write
If those users have many phonenumbers in a second table, a simple
and from there on I can use it like this:
my_user.phone_numbers.each do |phone|
<%= phone.number %>
(Which would print a list of a users phone numbers)
I don't say, that it's impossible to do this in other languages or that it's the better solution in any case, but it allows for very terse end expressive code, that often enough is very near to natural languages