kuzudb / kuzu

Embeddable property graph database management system built for query speed and scalability. Implements Cypher.
https://kuzudb.com/
MIT License
1.29k stars 90 forks source link

Feature: GQL support #4031

Open adriangalilea opened 1 month ago

adriangalilea commented 1 month ago

Hello,

Any thoughts on implementing GQL?

Afaik is heavily inspired in cypher, so it may be feasible.

Learning new things is hard not because of the difficulty but because we have so many options and so little time.

SQL was a very good investment of your time regardless of what you wanted to do as a dev. GQL may turn out similar, adopting it may make learning and adopt Kuzu much more appealing (because you'd be learning GQL too)

semihsalihoglu-uw commented 1 month ago

Hi @adriangalilea: I don't think we will have the cycles to implement GQL from scratch. We might over time follow a similar strategy to what Neo4j articulated as their strategy to make Cypher "consume" GQL. This makes sense to me. However, it will not happen quickly, i.e., we will not be able to put any engineering focus on this. Every engineer in the team is currently quite busy with many other features that will keep us busy for a while.

That said, I'm curious to hear from people about which features of GQL are the most important for them. Happy to get your feedback on this.

adriangalilea commented 1 month ago

Hi @adriangalilea: I don't think we will have the cycles to implement GQL from scratch. We might over time follow a similar strategy to what Neo4j articulated as their strategy to make Cypher "consume" GQL. This makes sense to me. However, it will not happen quickly, i.e., we will not be able to put any engineering focus on this. Every engineer in the team is currently quite busy with many other features that will keep us busy for a while.

Understandable, you guys are doing incredible, keep at it.

That said, I'm curious to hear from people about which features of GQL are the most important for them. Happy to get your feedback on this.

I haven't even looked at the features of GQL, and is not relevant to me, is just I can justify the effort and time I'll put into learning as is likely going to pay of for decades. Kuzu goes from something I would want to learn but it's hard to justify the time, into a very easy choice if I learn GQL and Kuzu at the same time.

prrao87 commented 1 month ago

Hi @adriangalilea that makes sense, thanks for clarifying. My take is that the transition of most graph DB vendors to GQL is a gradual process (which mostly means making Cypher more GQL-compliant over time). We will likely also adapt to what the rest of the graph DB community converges toward, without having to make it a near term priority. I don't think learning Cypher would be a wasted effort long term, for these reasons :).

adriangalilea commented 1 month ago

I don't think learning Cypher would be a wasted effort long term, for these reasons :).

I never implied it was :)

Personal remark: I know Cypher is widely used in the industry, mainly due to Neo4j's stronghold, but I'm already using other graph DBs that don't use Cypher. I don't feel like learning yet another language only to potentially switch to GQL in a couple of years and possibly never touch Cypher again. Ideally, I'd bypass learning Cypher altogether.

It's not that Cypher is bad; it's just that GQL seems like a better long-term bet. It feels like learning SQL at the very beginning of its development and gaining a skill for life.