Some of you may have noticed this PR:

https://github.com/apache/tinkerpop/pull/693

It is for an object graph mapper. It is fairly large and, at a glance, a
nicely developed body of work (docs, tests, javadoc, etc). As the author
didn't bring this up on the dev list before issuing the PR, I'm unsure of
their intentions, but I assume they would like gremlin-objects to be the
standard OGM for TinkerPop.

Without drilling too deeply, my immediate concerns with accepting this into
the code base:

1. It promotes use of a method of development that seems in competition to
the Traversal API rather than one that complements it. For example, it adds
a new Query object and uses Structure API semantics. It also adds new
interfaces for providers to implement if they want to support this feature.
2. I'm not clear on how well this approach would support remote traversals
especially since we discourage Elements from being returned with
properties.
3. The author admitted that this is a Java only solution. Given the size
and complexity of this PR I'd be concerned about trying to implement it
across languages. Our general design goal has been to keep GLVs simple.
Recall again - elements in GLVs don't hold properties at all - it's not
even an option.
4.I tend to see DSLs and OGMs linked a bit in terms of what they do. DSLs
are new - just one version old. I'd like to seem them develop a bit longer
and get some feedback on usage to see how they address users problems for
writing Gremlin in their domains.
5. If we accept this, we are saying that this approach to OGM (and there
have been a number of them, Ferma, Peapod, Frames, etc.) is the "right" way
and as of right now I'm not sure I'm willing to get behind that. I tend to
think there are many ways to OGM and that different people will like
different ways - this is largely the reason why we tend not to focus our
development in this area.

I think I'd like to see gremlin-objects develop on its own for a while
separately, build its own community following, and work out whatever rough
edges it may have. TinkerPop would add it to the tool listing on the home
page and promote it as an option for those looking for an OGM. We've had
this recommendation before to other pull requests and project suggestions
and I think it tends to work out well for all parties.

For those reading this not familiar with our processes, this is just my
opinion on how we should move forward. Others may not feel this way. Please
feel free to share your thoughts.

Thanks,

Stephen

Reply via email to