I am currently using VSCode on both my Windows and Linux desktops. I noticed that VSCode uses a lot of RAM, even though I only have two extensions, which are Julia and Bracket Pair Colorizer. One selling point of VSCode is the interoperability of multiple programming languages, but I only need the Julia support.
I would like to know if there are any alternative modern IDE for Julia besides VSCode and Atom.
I don’t think there is.
Do consider (neo-)vim + tmux + Revise + language server for completions (if you can get it to work) + maybe something like this and this.
I am aware of this option. The problem is that if I teach a class using Julia, then I need to teach the students vim first…
I don’t know if it counts as an IDE (probably not) but Sublime Text plus the Julia and SendCode plugins work well and is really lightweight compared with Atom/VSCode. I love how fast it starts up (<1 sec)! @PetrKryslUCSD’s primer at https://github.com/PetrKryslUCSD/HowToUseJuliaWithSublimeText3/blob/master/How-to-use-Julia-with-Sublime-Text-3.md is very helpful to get things set up.
Is that a numerical methods class? Would you consider just using Jupyter notebook?
if you’re teaching a class, you most likely don’t need an IDE. Just REPL/Jupyter + scripting .jl
I haven’t decided which class, but it will be finance/business classes. The students only have Pyhon + Spyder experience.
I haven’t used Jupyter Lab, and I don’t know if it can automatically set the folder of julia files as the present working directory as VSCode does. I do a lot of data importing, and I want my code to be portable.
I’d recommend using relative paths (with
cd(@__DIR__) at the beginning of your file instead of relying on IDE features.
I also think using a jupyter notebook might be what you need. Even though I have Atom and Juno, for simpler problems (where I don’t need to mess with lots of files) I find myself using jupyter. Install wasn’t too hard and you don’t have to learn much to be productive.
I would just use VSCode. It’s the only thing that’s I can consistently use in a setting where I have to show non coders what I’m doing.
That being said. I only choose to use VSCode in personal use when I’m showing someone what I’m doing or when I’m doing something complicated with git. Otherwise I use vim.
Please note that the Sublime Text set up can be arranged with the portable version. Customize the portable version and then distribute it to the students. That should ensure that all students use precisely the same software (hopefully minimizing the number of questions and troubleshooting).
I though using a specific editor’s specific function (i.e VSCode’s whatever) is the exact opposite of portable…
There’s an IDE like CLion + Julia plugin. It might not be lightweight, though. Would you have a try?
Thanks for the suggestion, but Clion is also a little bit too big for me.
Actually I am big fan of scintilla, if I could get CodeBlocks, CodeLite, or Geany work with Julia, that would be great. These editors are very lightweight and reliable.
I know this seems to be an unpopular opinion here, but I think the students should need to figure out their own editor. They are adults, presumably they’ve used computers before. Perhaps present Atom, VScode, vim and emacs as options, and let them do what they want. When I first learned programming in the late 2000’s, I was pretty much left to my own devices and I think that was good for me.
In conversations like these assume that students can choose to use whatever IDE they want but they are responsible for any issues that arise as a result of using something outside of the courses “chosen” IDE.
I am sympathetic to this solution, but I think it depends on the students and how motivated they are. Eg grad students who know they will be programming during their career may be more inclined to invest in exploring editors and setting up their favorite one with Julia.
Often the very idea that there are multiple very powerful general programming editors out there with their own strengths and weaknesses is news to some people, even if they programmed before. Many languages have their “special” IDE (eg RStudio) and the idea that you can use something else and be better off can be a revelation.
Otherwise, a Jupyter server with interactive notebooks may be the best option.
If you are on a linux machine you can use the editor gedit. There is text-highlighting for a lot of languages. And you can make yourself a script that you include in the Tools section to use julia…
if on your first row is a shebang instruction you can use something like this…
Or you could do what many others do: buy more RAM!