Bespoke IDE for Julia desperately needed!

Just M-x eglot in a julia-mode buffer will automatically download (if necessary) and start the language server and connect to it when it’s ready. Note that on first startup in a project, the language server will take a long time before it is ready and that autocomplete by default is bound to M-tab which is likely already taken by some function of your OS.

This is why I’ve been linking the emacs manual repeatedly. It’s very thorough, and (unfortunately) it’s the only emacs resource I’m aware of that’s written without assuming a corpus of background knowledge. My time reading through it was well spent.

2 Likes

Sorry - now I get ‘error in process sentinel - server died’

When I invoked eglot, it asked me which mode and I said julia,
then it asked for the path and I gave the correct one.

I guess I was not in Julia mode? I’m sorry to be such a pain – this seems to be getting beyond me.

Hm. So that either means that the major-mode of the buffer wasn’t julia-mode (it should show “Mode:Julia” in the mode-line below the buffer) or eglot-jl-init wasn’t called before eglot was. Have you restarted emacs since installing eglot-jl and editing your init?

If you want to hop on zulip to chat, I may be able to help you faster:

https://julialang.zulipchat.com/#narrow/stream/228210-emacs

Thank you so much, that’s very kind. I will have another ‘poke around’ myself tomorrow and then (probably) take you up on your offer later in the day, if you are available. Sorry if I sounded discouraged above. I know that I just need to solve this once, but I think I just need a break from it now until then.

Thanks again, compleat

2 Likes

There used to be Julia Studio from Forio. It is based on Qt and is GPLv3 licensed. Given that latest commit to it was about 6 years, it uses a very old version of Qt, but it still gives someone willing to put together an IDE for Julia, a solid place to start.

2 Likes

which begs the simple question: who is gonna do it?

3 Likes

It looks like even python people are using text editors: https://www.datacamp.com/community/tutorials/top-python-ides-for-2019

In my case, I use Atom (locally) and vim (remotely) for both, Julia and Python. Also, using a text editor makes easier to work with more than one language at the same time.

2 Likes

FWIW I’ve used VS Code as my daily driver for probably a year and a half now and the only problem I ever have is with the Missing reference warnings. Other than that, everything just works exactly the way I want it to and I really enjoy it. For context, I started out using Atom/Juno and I also downloaded/dabbled with Sublime Text 3 for about 30 minutes before deciding that VS Code is the right fit for me (this is not a knock to ST3, it looked great, I just didn’t want to have to learn a new IDE).

3 Likes

Thanks for that. Part of my interest here is in teaching, as I teach Machine Learning to large lecture classes, and I am hoping to find something that is simple to install and intuitive to learn. I remember when R studio appeared and suddenly made it possible for me to include R in my various classes. It would be great if there were something like that for Julia, and while there seem to be a number of IDE options (as mentioned above) with lots of capabilities and facilities for expert users of various types, there is nothing I have seen that (in terms of installation and learning) simplifies the learning experience for Julia like RStudio did for R. For my own work, I am definitely looking at VSCode as a possibility for my main IDE, even though it does not seem to run properly on Linux (it at least does have the capacity to use through SSH, though).
Anyway, thanks for your comments.

2 Likes

What’s wrong with Jupyter notebooks for teaching ?
In the course I’m TA’ing that is what is used and it seems to be fine (this is the first programming experience for many of the students). Sure, a few people have had some initial installation problems (which were solved). But isn’t this likely to happen with any piece of software once you have a large enough group of users?

3 Likes

Jupyter notebooks are great for students rerunning and slightly modifying code, and are very good for lecturing and demonstrating. If only there were an editor/REPL combo to go with it, but the attempt at this (JupyterLab) does not seem very effective to me [one has to switch back and forth between nbs, editors, and consoles, and it frequently freezes/crashes my browser. I haven’t managed to be able to highlight code in JL and run it in the console, either] . It is difficult to see how things like a package manager helper and data import ‘Wizard’ (as in RStudio), as well as toolbars with buttons for ‘save’, and ‘run’, etc… could be included in this. I think that building a full IDE that works for all browsers is just too hard. I very much like the idea of notebooks, though, and would indeed be interested if somebody knew of an IDE that could run the notebooks independently of a browser (several have notebook ‘preview’ but not integrated support that I can see).

The other nice thing about using Jupyter is that you can create a GitHub repo (or GitLab, or a variety of other choices) of your notebooks and then users can run it all in the browser via Binder without having to install anything at all. I discovered this about a month or so ago and wished I would have found it a long time ago for purposes of doing Julia demos. The basic workflow is this:

  1. Create a new Julia directory for storing your notebooks and ensure that it has a Project.toml and a Manifest.toml. You should Pkg.add all dependencies so they are in the Project/Manifest files.
  2. Push all the materials to GitHub.
  3. Go to mybinder.org and enter the URL of the GitHub repo.
  4. You’re done!

I couldn’t believe how simple it was to get this going. The initial load of the notebooks in the browser is pretty slow but, beyond that, it works really well for demonstration purposes.

4 Likes

I’ve run VS Code without any hiccups on Ubuntu 20.04, albeit for a very short period of time. I eventually ended up switching back to Windows 10 because of unrelated Ubuntu issues that I was having.

Hi. I think it depends on things that shouldn’t matter, like which display manager and video hardware one is using.

We’re working on that for the VS Code extension, see Add notebook controller implementation by davidanthoff · Pull Request #980 · julia-vscode/julia-vscode · GitHub.

4 Likes

That will be great! Seems like special effort is being taken by VSCode developers for Julia, then.

Is there an easy step-by-step guide for someone who wants to use VSCode for Julia only? [for my students, and also for me - I got it all installed, but don’t really know how to use it fully]

KDE Cantor isn’t really an IDE, but it can run and edit jupyter notebooks without a browser or electron (as well as its own native notebook format). I haven’t tried the application myself, but here’s the blog post where they announced the capability last year:

Same here, VSCode is missing a lot of the polish of the JetBrains IDEs (for instance), but its pretty solid. I’ve switched to it for development in other languages as well (python, C++), just because it’s nice being able to have everything in the same environment rather than switching between three IDEs.

5 Likes

Update!!! I discovered a fix that makes VSCode work for my Ubuntu.

code --disable-gpu

Fixes windowing problem :slight_smile:

5 Likes

Update!!! Doesn’t work after all!! The ‘e’ key maps to ‘backspace’ in the VSCode editor. The same thing happened with Atom. It didn’t run without disabling gpu and then the same problem with the ‘e’ key (and ‘r’ I think as well).