# Lightweight IDE

**URL:** <https://discourse.julialang.org/t/lightweight-ide/28111>\
**Category:** Tooling\
**Tags:** ide\
**Created:** [August 28, 2019, 2:15pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111 "2019-08-28T14:15:54Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yifan\_Liu](https://avatars.discourse-cdn.com/v4/letter/y/4da419/32.png) [@Yifan\_Liu](https://discourse.julialang.org/u/Yifan_Liu)\
**Post date:** [August 28, 2019, 2:15pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/1 "2019-08-28T14:15:54Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [August 28, 2019, 2:33pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/2 "2019-08-28T14:33:38Z")

</div>

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](https://gist.github.com/pfitzseb/8fab21f09d6c15246d4a0960af3c65b1) and [this](https://gist.github.com/pfitzseb/a6529654c1d6faf2ba144aa8616a31aa).

---

<div class="post-metadata">

**Author:** ![Yifan\_Liu](https://avatars.discourse-cdn.com/v4/letter/y/4da419/32.png) [@Yifan\_Liu](https://discourse.julialang.org/u/Yifan_Liu)\
**Post date:** [August 28, 2019, 2:50pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/3 "2019-08-28T14:50:20Z")

</div>

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…

---

<div class="post-metadata">

**Author:** ![dawbarton](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dawbarton/32/215461_2.png) [@dawbarton](https://discourse.julialang.org/u/dawbarton)\
**Post date:** [August 28, 2019, 3:42pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/4 "2019-08-28T15:42:15Z")

</div>

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](https://github.com/PetrKryslUCSD/HowToUseJuliaWithSublimeText3/blob/master/How-to-use-Julia-with-Sublime-Text-3.md) is very helpful to get things set up.

---

<div class="post-metadata">

**Author:** ![singularitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/singularitti/32/17678_2.png) [@singularitti](https://discourse.julialang.org/u/singularitti)\
**Post date:** [August 28, 2019, 3:49pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/5 "2019-08-28T15:49:57Z")

</div>

Is that a numerical methods class? Would you consider just using Jupyter notebook?

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [August 28, 2019, 3:56pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/6 "2019-08-28T15:56:08Z")

</div>

if you’re teaching a class, you most likely don’t need an IDE. Just REPL/Jupyter + scripting .jl

---

<div class="post-metadata">

**Author:** ![Yifan\_Liu](https://avatars.discourse-cdn.com/v4/letter/y/4da419/32.png) [@Yifan\_Liu](https://discourse.julialang.org/u/Yifan_Liu)\
**Post date:** [August 28, 2019, 4:16pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/7 "2019-08-28T16:16:17Z")

</div>

I haven’t decided which class, but it will be finance/business classes. The students only have Pyhon + Spyder experience.

---

<div class="post-metadata">

**Author:** ![Yifan\_Liu](https://avatars.discourse-cdn.com/v4/letter/y/4da419/32.png) [@Yifan\_Liu](https://discourse.julialang.org/u/Yifan_Liu)\
**Post date:** [August 28, 2019, 4:18pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/8 "2019-08-28T16:18:17Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [August 28, 2019, 4:20pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/9 "2019-08-28T16:20:41Z")

</div>

> [@Yifan\_Liu](#):
>
> I don’t know if it can automatically set the folder of julia files as the present working directory as VSCode does

I’d recommend using relative paths (with `@ __DIR__ `), or `cd(@ __DIR__ )` at the beginning of your file instead of relying on IDE features.

---

<div class="post-metadata">

**Author:** ![klaff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/klaff/32/7637_2.png) [@klaff](https://discourse.julialang.org/u/klaff)\
**Post date:** [August 28, 2019, 4:24pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/10 "2019-08-28T16:24:41Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Zach\_Christensen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zach_christensen/32/7220_2.png) [@Zach\_Christensen](https://discourse.julialang.org/u/Zach_Christensen)\
**Post date:** [August 28, 2019, 4:30pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/11 "2019-08-28T16:30:46Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [August 28, 2019, 4:53pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/12 "2019-08-28T16:53:09Z")

</div>

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).

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [August 28, 2019, 5:48pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/13 "2019-08-28T17:48:32Z")

</div>

I though using a specific editor’s specific function (i.e VSCode’s whatever) is the exact opposite of portable…

---

<div class="post-metadata">

**Author:** ![singularitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/singularitti/32/17678_2.png) [@singularitti](https://discourse.julialang.org/u/singularitti)\
**Post date:** [August 28, 2019, 7:09pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/14 "2019-08-28T19:09:56Z")

</div>

There’s an IDE like [CLion](https://www.jetbrains.com/clion/) + [Julia plugin](https://plugins.jetbrains.com/plugin/10413-julia). It might not be lightweight, though. Would you have a try?

---

<div class="post-metadata">

**Author:** ![Yifan\_Liu](https://avatars.discourse-cdn.com/v4/letter/y/4da419/32.png) [@Yifan\_Liu](https://discourse.julialang.org/u/Yifan_Liu)\
**Post date:** [August 28, 2019, 7:35pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/16 "2019-08-28T19:35:23Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![ExpandingMan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/expandingman/32/866_2.png) [@ExpandingMan](https://discourse.julialang.org/u/ExpandingMan)\
**Post date:** [August 28, 2019, 7:50pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/17 "2019-08-28T19:50:36Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Zach\_Christensen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zach_christensen/32/7220_2.png) [@Zach\_Christensen](https://discourse.julialang.org/u/Zach_Christensen)\
**Post date:** [August 28, 2019, 8:15pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/18 "2019-08-28T20:15:42Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [August 29, 2019, 5:59am UTC](https://discourse.julialang.org/t/lightweight-ide/28111/19 "2019-08-29T05:59:28Z")

</div>

> [@ExpandingMan](#):
>
> I think the students should need to figure out their own editor. They are adults, presumably they’ve used computers before.

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.

---

<div class="post-metadata">

**Author:** ![mwolff](https://avatars.discourse-cdn.com/v4/letter/m/c2a13f/32.png) [@mwolff](https://discourse.julialang.org/u/mwolff)\
**Post date:** [August 29, 2019, 3:57pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/20 "2019-08-29T15:57:56Z")

</div>

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…

```julia
#!/bin/bash

DIR=$GEDIT_CURRENT_DOCUMENT_DIR
file=$GEDIT_CURRENT_DOCUMENT_NAME
echo ${DIR}/${file}
${DIR}/./${file}

```

best regards

Michael

---

<div class="post-metadata">

**Author:** ![tbeason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tbeason/32/15898_2.png) [@tbeason](https://discourse.julialang.org/u/tbeason)\
**Post date:** [August 29, 2019, 4:02pm UTC](https://discourse.julialang.org/t/lightweight-ide/28111/21 "2019-08-29T16:02:30Z")

</div>

Or you could do what many others do: buy more RAM! 😉

[Next page](https://discourse.julialang.org/t/lightweight-ide/28111.md?page=2)
