[ 
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)

Reply via email to