Query Language extension to Julia

Hello Julia people!

I want to ask you if you would like to develop a query language extension to Julia?
We have done PythonQL (www.pythonql.org), however the Python community is not too keen
on pushing it through. Also, I’m really the only committer right now, and to make PythonQL work
really fast, I need to code a bunch of stuff in C++, which disturbs me and brings back bad bad memory leak memories. I think developing such a thing in Julia will be more appropriate, and maybe we won’t have to code in C++ after all?

Best regards,
Pavel Velikhov
pavel.velikhov@gmail.com

5 Likes

Hi Pavel,

Cool — yes I do think you’d enjoy developing this in julia, since you would not need C++ to get performance. A couple features listed in your readme (named tuple syntax (a=1, b=2) and try anywhere) are already in julia 0.7. Julia’s macros also let you add extensions like this in a standard way.

I recommend taking a look at Query.jl and comparing notes.

4 Likes

Hi Pavel,

I took a look at your docs – Julia has many parts of what you want to do supported well. Julia does not do what you want to create, out of the box. Nonetheless, you should find the work to get from your design to a first workable set of features is as much about getting comfortable with some best practices as it is about writing code to work with other code you write.

We are a helpful community. Feel at ease posting questions as they arise.

2 Likes

Hi Pavel,

that looks very cool! Query.jl probably has very similar (if not identical) goals to that, so we should definitely coordinate. I should also add that I would love nothing better than collaborators on that project. It has been pretty much a one person exercise so far, whereas it is not a one person project in terms of scope :wink: Happy to answer any questions etc. you might have.

Cheers,
David

6 Likes

Also be aware of DataFramesMeta.jl.

Originally in this post I wrote how DataFramesMeta.jl is more limited but has a simpler code base than Query.jl. As I look back at the code for them I realize that none of that is quite true, both are quite capable, both are quite simple, but each has a somewhat different approach. DataFramesMeta.jl seems to be a little bit more geared toward providing functions for interfacing with DataFrames and a thin metaprogramming layer for convenient access macros, whereas Query.jl seems more focused on developing a standard query language which translates directly into code for manipulating a wide variety of tabular formats with a very minimal interface in between. Also DataFramesMeta.jl is focused entirely on DataFrames where as Query.jl is for more general objects. (I’m sure @davidanthoff will correct me if my impressions are wrong.)

Both seem remarkably simple compared to what this would take in most other languages, so both are significant Julia success stories in my mind.

1 Like

Wow, thanks! Well, I am quite limited on my time myself. An alternative that I actually might prefer is if PythonQL becomes a reference implementation, which I can continue developing. And Julia could pick out features that she likes.

On another note, would appreciate some docs that describe how to set-up an environment, alternative to JPython

From my part, I am willing to write the documentation for the language.