In addition, SQL design is simply really good. It's of the few successful declarative language: you get what you describe. It's also a total, in that all programs terminate. These are really good characteristics to have.
SQL is really good. My issue is you run into inconsistencies in the way you expect a function to work (when they're shared semantically across SQL and BQL in this case) and that eventually leads to confusion. Like working in the Arduino language versus C.