First of all, I think it's a cool library! Thank you, guys, for releasing it!
There's just this minor problem with it. The README calls it a "data structure query language" and an "SQL constructor." It's referred to as a "DSL" and an "ORM" in the linked talks in Russian. However, I believe it's best described as an abstract syntax tree (AST). In fact, this representation of SQL as a tree composed of maps and vectors is pretty close to the actual parse tree used internally in PostgreSQL: https://github.com/pganalyze/libpg_query
I don't know about others, but it was hard for me at first to appreciate dsql, primarily because I couldn't understand what problem it solves. I thought, why would anyone need a DSL on top of SQL, which is already a DSL? And what's the point of yet another query language that translates to SQL but looks more cryptic than SQL? Turns out, it's just plain old SQL in the form of a syntax tree, and despite it being a bit hard to read, it's the best representation if you need to programmatically construct and modify your queries (or parts of them). It eventually clicked, but it took some effort. I think it could've been much easier if the library had a different name and description.
Another problem with the current name is that it's impossible to find on Google. Try searching "dsql" or even "clojure dsql"; it just doesn't show up.
I believe naming this library something like sql-tree, sql-syntax-tree, or sql-ast would be helpful for both discoverability and clarifying its purpose. What do you think?
First of all, I think it's a cool library! Thank you, guys, for releasing it!
There's just this minor problem with it. The README calls it a "data structure query language" and an "SQL constructor." It's referred to as a "DSL" and an "ORM" in the linked talks in Russian. However, I believe it's best described as an abstract syntax tree (AST). In fact, this representation of SQL as a tree composed of maps and vectors is pretty close to the actual parse tree used internally in PostgreSQL: https://github.com/pganalyze/libpg_query
I don't know about others, but it was hard for me at first to appreciate dsql, primarily because I couldn't understand what problem it solves. I thought, why would anyone need a DSL on top of SQL, which is already a DSL? And what's the point of yet another query language that translates to SQL but looks more cryptic than SQL? Turns out, it's just plain old SQL in the form of a syntax tree, and despite it being a bit hard to read, it's the best representation if you need to programmatically construct and modify your queries (or parts of them). It eventually clicked, but it took some effort. I think it could've been much easier if the library had a different name and description.
Another problem with the current name is that it's impossible to find on Google. Try searching "dsql" or even "clojure dsql"; it just doesn't show up.
I believe naming this library something like sql-tree, sql-syntax-tree, or sql-ast would be helpful for both discoverability and clarifying its purpose. What do you think?