Julia plugin

Answered

Hi there,

is anyone working with the Julia programming language?
Julia has a good position in the latest RedMonk programming language rating, is among the top 100 languages in the TIOBE software index and looks very promising for scientific applications. The only thing that it seems to be lacking is a good IDE.

My hope would be for Jetbrains to come up with a Julia IDE, but that would probably take some time, so in the meantime I would be hoping for someone to be able to come up with a Julia plugin for IntelliJ IDEA. Since it's been a few years since I have been writing any IDEA plugins, it would take me a lot of time to do this myself, so my question is: Is there anyone out there who (1) is working with Julia and (2) could quickly write up a plugin for IDEA? Useful features would include things like highlighting, code completion, code inspections, run configurations and whatever else you can think of...

Regards,
Jens

4 comments
Comment actions Permalink

Note there is already juno that is based upon atom.

-2
Comment actions Permalink

Julia goes towards 1.0 would be nice to have intellJ plugin.

1
Comment actions Permalink

First, there is already an attempt to implement such a plugin [1]. "Quickly writing up" a plugin that supports context-aware completion and meaningful inspections is just not possible. I have to admit that some weeks ago I thought for a moment to start such a plugin. There are several obstacles: First, a clear specification of the language does not exist and the only official resource is the c-implementation of the parser and lexer. I searched quite a while but I couldn't find a BNF spec. Second, the language is still very fluid. When I followed the news correctly, type annotations are pretty new. For a plugin implementer, this means he needs to constantly patch core parts of the language to make it compatible with the latest additions.

As far as I understood it, Julia's types are deduced by the parser and the type-deduction that follows. For a good plugin in the league of what is available for Java, you need to know the types to make meaningful suggestions and inspections. The overall goal should be that if IDEA marks code as correct, it should be at least executable although it might not be semantically correct. In Mathematica (I'm the dev of the plugin) the situation is worse but I believe for Julia too, this not trivial. The advantage is that you have all code freely available and could look at the implementation.

Maybe one idea is to use Julia itself to deduce the types and use them in the plugin but I never did something similar. For this core part, someone with a deep knowledge of the language is required. Once this is done, adding IDE features that beat Juno is possible and other plugin developers could easily help implementing them.

One crucial feature of Juno (as far as I can tell) is that you can plot and show graphics directly in Juno. I'm sure this will be essential for many users to switch. In any case, I'm highly interested in such a plugin.

[1] https://github.com/snefru/juliafy

1

Please sign in to leave a comment.