Marko A. Rodriguez created TINKERPOP-1232:
---------------------------------------------
Summary: Write a tutorial demonstrating the 3 ways to write a
Gremlin language variant.
Key: TINKERPOP-1232
URL: https://issues.apache.org/jira/browse/TINKERPOP-1232
Project: TinkerPop
Issue Type: Improvement
Components: documentation
Affects Versions: 3.1.1-incubating
Reporter: Marko A. Rodriguez
Talking with [~rustyrazorblade] about collaborating on a Gremlin tutorial for
language designers. Here is what we came up with.
We will use Python as the host language and demonstrate 3 ways to create
Gremlin-Python.
* Using Jython: With Jython you have direct access to the JVM and thus can call
{{GraphTraversal}} methods directly. We can expose some Python sugar here and
there to show why its good to have a language specific variant. See
Gremlin-Scala for inspiration.
* Using JNI: With Python, we have a {{PythonTraversal}} Python class. That
class then uses Java Gateway to interact (via proxy) with {{GraphTraversal}}.
This was done in the past as an experiment with R using rJava.
* Using String: With Python, we have a {{PythonTraversal}} Python class where
{{out("knows")}} simply appends {{"out(\"knows\")"}} to a string builder. The
result can then be a String sent to a {{RemoteConnection}} for evaluation.
These three models are the three ways in which any language can embed Gremlin.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)