[ https://issues.apache.org/jira/browse/TINKERPOP-1232?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15260582#comment-15260582 ]
ASF GitHub Bot commented on TINKERPOP-1232: ------------------------------------------- Github user spmallette commented on the pull request: https://github.com/apache/incubator-tinkerpop/pull/296#issuecomment-215168374 This line doesn't seem completely accurate to me: > Jython is a JSR-223 ScriptEngine implementation that enables the evaluation of Python on the Java virtual machine. Jython provides a JSR-223 implementation but isn't Jython on its own much more than that? Something else I hadn't thought of before. We refer to all of this generated code as `gremlin-python` but there's actually two distinct sets of classes at play - one that works directly with the JVM and one that creates groovy scripts for submission over `RemoteConnection`. Seems like there should be some distinction in naming there whether at the class level or the module level. Maybe this doesn't matter for the tutorial, but does matter on implementation of TINKERPOP-1278 ? Anyway, despite my thoughts/questions - this is an good tutorial and an important one for organizing the community into something coherent around these issues. VOTE +1 > 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, 3.2.0-incubating > Reporter: Marko A. Rodriguez > Assignee: 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)