posit-dev / positron

Positron, a next-generation data science IDE
https://positron.posit.co
Other
2.82k stars 91 forks source link

Julia language as a native citizen? #3679

Open e-kotov opened 4 months ago

e-kotov commented 4 months ago

Since it is a data science IDE now, not just R, or Python. Any plans for Julia support? Currently it is awkward that even though VSCode internals of Positron recognise Julia code and highlight it, but the choice of kernels is limited to R and Python (I have Julia installed).

Screenshot 2024-06-28 at 08 10 54
pat-alt commented 4 months ago

Just learned about this project and this was the first question that came to my mind. I'm generally quite happy with the Julia VSCode extension, but would love to test Positron for Julia.

juliasilge commented 4 months ago

Thank you so much for your interest in Positron! 🙌 Positron is in fact built with the kind of extensibility that would allow us to add support for Julia, or other data science languages that become important in the future. Positron's API for extensions is not fully mature yet so supporting another language would be a bit further in the future than we are thinking right now.

chlazaris commented 4 months ago

It would be great indeed to offer native support for Julia and any other language important to Data Science. Thank you everyone and @juliasilge. Looking forward!

wesm commented 4 months ago

If anyone in the community is interested in looking at this -- aside from needing a Jupyter kernel (which Julia has: https://github.com/JuliaLang/IJulia.jl), a place to start would be to implement a code generator to create Julia RPC handlers for the custom messages described here

https://github.com/posit-dev/positron/tree/main/positron/comms

Code that uses these custom Jupyter comm handlers can be found in the positron_ipykernel for Python or the Ark R kernel

seeM commented 4 months ago

In addition to Wes's advice, it should also be possible to hook up any Jupyter kernel to Positron by creating an extension that calls positron.runtime.registerLanguageRuntimeManager and implements positron.LanguageRuntimeManager and positron.LanguageRuntimeSession as needed. The R extension would be a good reference: https://github.com/posit-dev/positron/tree/main/extensions/positron-r.

We would like to make the above easier for arbitrary Jupyter kernels in future (https://github.com/posit-dev/positron/issues/3585).

You should be able to do that before even implementing the additional comms Wes mentioned, and you should then have basic access to at least the console pane. From there, you can implement the comms to get additional support for the rest (variables, plots, help, data explorer, etc).

Do note, however, that third-party language packs are still experimental:

  1. We have not yet tested this approach with external extensions (i.e. not bundled with Positron).
  2. We are likely to make breaking changes to the positron extension API at this stage.

If you try this and get stuck, please feel free to post here; I'm happy to give some guidance!

nicomakesdirt commented 3 months ago

Seconding interest in Julia!

liu20001028 commented 2 months ago

please add julia support

ntluong95 commented 2 months ago

Please bring Julia to the game

liu20001028 commented 2 months ago

Did you planned add julia

multidis commented 1 month ago

+1 for Julia support

AcademicMJS commented 1 month ago

Is there any official or unofficial information regarding the ongoing or planned support for Julia in Positron?

Are there any known workarounds or beta features available for Julia users who want to integrate it smoothly with Positron? 😄

juliasilge commented 1 month ago

To give a little update since July, the situation is still the same as outlined by:

To reiterate what Wasim shared, we are definitely up for collaboration and help on the needed steps! It is still important to keep in mind that Positron's extension API is experimental at the current time.