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)

Reply via email to