|
|
|
|
|
by TylerE
4077 days ago
|
|
No it's not. Because there is no such thing as a ReQL query in a string. It's an object, usually built by chain methods. There is no textual representation. Edit to your edit: It seems you are fundamentally not getting it. The ReQL is live code in your native programming environment. That means you can inspect it and manipulate it. SQL doesn't get interpreted (or whatever, it's black box) until it hits the server. Imagine you're in a world where there are no XML parsing libraries. SQL is a string containing XML. ReQL is a DOM object. One is much more useful than the other. |
|
You are a comparing a language (SQL is independent to the language you're programming with) to an API.
RethinkDB has API available for three languages: JavaScript, Python & Ruby. If you take look carefully while it tries to be consistent across them, there are still parts that are specific to given language. If you would want to use RethinkDB with a language that is completely different (for example a functional language), assuming RethinkDB would support it, you're guaranteed that the interaction with the DB would be completely different, while you could still use the same SQL language[1].
If you want to compare RethinkDB's API to something similar you should compare it with something like JOOQ[2].
Just to preemptively respond to argument about translating DSL to SQL. Currently modern driver communicates with database using binary protocol, the SQL is compiled on client side. You could actually skip SQL altogether, but then you would lose flexibility of being able to support many other databases.
[1] http://pgocaml.forge.ocamlcore.org/
[2] https://en.wikipedia.org/wiki/Java_Object_Oriented_Querying