Gremlin developer tooling

198 views
Skip to first unread message

Jason Plurad

unread,
Sep 1, 2017, 8:04:01 PM9/1/17
to Gremlin-users
Ray Scott started to kick around ideas on more of a full-blown developer tool (or tools?) for Gremlin. I think the idea deserves a top-level thread, so here we go.

First, there are a few existing TinkerPop projects in this space to check out and learn from. Check out Graphexp and Gremlin-bin from the community. Also check out vendor-specific tools for ideas, like DataStax Studio, Neo4j, OrientDB, Compose for JanusGraph, etc.

So let's dream more about a new Gremlin developer tool. What ideas would be interesting to have in such a tool? Graph viz of some sort obviously. I'd want a subgraph viz, and maybe a summarization of what types of things are connected in the neighborhood. I'd want some sort of graph manager to see which graphs are available on a Gremlin Server.

If you were building the tool from a clean slate, Electron could make a lot of sense. It gives you a nice framework for a cross-platform desktop application. Since it's written with JavaScript, HTML, CSS, you'd be able to take advantage of existing open source packages for graph viz. There's potential reuse between the viz for the dev env and viz for your web-based apps.

Another possibility is JupyterLab, the next generation architecture for Jupyter notebooks. It lays down the framework for a more integrated environment with a file browser, terminal, notebooks, kernels, etc. It retains the notebook format as sharable file, which I think is key for bootstrapping people new to Gremlin. You can show off the results of your traversals, including snippets of code and viz, then other folks can import your notebook, replay the results on their own machines, then modify the queries to tinker with their own queries/analysis. Gremlin-bin and Neo4j's GraphGist also capture some of this sharability idea.

But if you're looking for a full-blown developer IDE, it could make more sense to align as a plugins/extensions for an existing IDE: Eclipse, IntelliJ, Visual Studio, etc. The developer probably has other code in other languages and file formats that they'll want to work with. Also think about integration with Git for source control, test runners, and all the other things available in modern IDEs. From what I remember of Eclipse extensions, it was more complicated than I cared for, but it is possible. No idea how much work it would be for the other IDEs, but it makes sense to meet developers in the tools of their choice.

Ultimately, developer tools are generally a matter of personal preference. I could imagine a future with many different developer tools for Gremlin. I'd welcome to everybody out in the community to toss around ideas and let's see where it goes.

Ray Scott

unread,
Sep 6, 2017, 5:18:54 PM9/6/17
to Gremlin-users
I haven't had much time to look into this recently, but tonight I've spent some time researching modern terminal emulators and came across. Upterm, which is built using the Electron Framework.


It's not the world's greatest example as it doesn't quite do what I was hoping it would - save your work. But they recently switched to using Microsoft's Monoco Editor that is part of VS Code. So I think that's how they get the autocomplete hooks. Monoco supports Java syntax, so would that mean Groovy too? They don't specifically support Groovy though. 


I thought Upterm would be more of a free-form text editor. About 3 years ago I saw something to that effect on Hacker News (while I was in the middle of something else), but lost the link, and never did find it again. The idea with that lost concept was similar to what I have IntelliJ's Go IDE Gogland, where you get a little play button in the gutter for certain definitions. "// go generate" that actually allow you to run a single statement instead of the entire source code. 

I think even just being able to save scripts and load them back in again to run would be useful. 

I'm guessing with Electron it's be a matter of using websockets to communicate with the Gremlin Server.

Ray Scott

unread,
Sep 6, 2017, 5:35:51 PM9/6/17
to Gremlin-users
The point I'm trying to make is that it need not be massive undertaking from the start.

Ray Scott

unread,
Oct 25, 2017, 3:52:03 AM10/25/17
to Gremlin-users
Another example of a front-end tool was soft launched by Google recently. It's a https://colab.research.google.com (Chrome browser) and it looks like it's been kicking around internally for a few years. It's essentially a frontend for Jupyter. There's a waiting list for access to the backend runtime so you can't actually do much with it until you're granted access. I still dream of this for Golang too for my own notes.


On Saturday, 2 September 2017 01:04:01 UTC+1, Jason Plurad wrote:
Reply all
Reply to author
Forward
0 new messages