+1 

I have often thought the language specification should be a project
separate from the implementations, and done in a formal but plain
English format similar to OMG or IETF specifications. 

I suspect Sqlg's code base would have been fastly different if it had
evolved from a grammer instead of an api.

Cheers
Pieter

On Thu, 2020-12-24 at 14:41 -0500, Stephen Mallette wrote:
> As a project, over the years, we've often been asked the question as
> to why
> Gremlin doesn't have an ANTLR style grammar. There have been varying
> answers over the years to explain the reasoning but in recent years
> I've
> started to see where our dependence on Java for driving Gremlin
> design has
> not translated well as we have expanded Gremlin into other
> programming
> ecosystems. Using Java has often allowed idioms of that language to
> leak
> into Gremlin itself which introduces friction when implemented
> outside of
> the JVM. I think that there is some advantage to designing Gremlin
> more
> with just graphs/usage in mind and then determining how that design
> choice
> looks in each programming language.
> 
> I think that using an ANTLR grammar to drive that design work for
> Gremlin
> makes a lot of sense in this context. We would effectively have
> something
> like a gremlin-script which would become the new language archetype.
> New
> steps, language changes, etc. would be discussed in its context and
> then
> implemented in the grammar and later in each programming language we
> support in the style a developer would expect. An interesting upside
> of
> this approach is that we can implement gremlin-script in the
> ScriptEngine
> and replace GremlinGroovyScriptEngine which would help us strengthen
> our
> security story in Gremlin Server. Groovy processing would just be a
> fallback to Gremlin scripts that could not be processed by the AST.
> In fact
> users who didn't need Groovy could simply not install it at all and
> thus
> boast a much more secure system.
> 
> I think that inclusion of a grammar in our project is an exciting new
> direction for us to take and will help in a variety of areas beyond
> those
> I've already related.
> 
> If we like this direction, Amazon Neptune already maintains such a
> grammar
> and would be willing to contribute it to the project to live in open
> source. The contribution would go through the same IP Clearance
> process
> gremlint is going through since it was developed outside of
> TinkerPop. I'd
> be happy to guide that process through if we draw to consensus here.


Reply via email to