First steps with Jupyterlab

If this is not in the correct forum, can someone move ot to the right one? Maybe Tooling? Thanks.

I don’t know much about Jupyterlab, so I am here to learn. I read up on it, but I need some to-the-point guidance and answers. I saw it in action and was impressed, as it looks better to me than VS Code and certainly better than a poor terminal. But once I learned it’s always online, I was turned off. So here are some basic questions. I hope you will properly educate me.

What is Jupyterlab?

What are its essential functions?

Can it be used fully offline (like an offline IDE)?

If online, it makes use of some online server, including extra computing power, to process things?

Does it have (some) Vim ways?

I didn’t see you mention anything Julia specific, so maybe you’d get help by browsing the JupyterLab page itself?

I’ve used JupyterLab for Python development professionally. It’s a nice step up from Jupyter Notebooks but not really a full IDE. Mostly I use it because it’s the only way my company allows me to access our higher power compute resources.

For Julia, Juno is really a great starting point. It’s basically a preconfigured Atom setup. And Atom seems to be a decent IDE. Although I still miss PyCharm which is excellent for Python, but I don’t know if it supports Julia yet.

1 Like

Thanks.

Yes, you are right. I neglected to mention Julia, but it is indeed in the context of Julia. (Or I wouldn’t have posted it on a Julia forum, but I should’ve been clearer anyway, and posted it in Tooling.)

I went through their pages, but really wanted answers to those questions. This whole Jupyter thing is almost totally alien to me, though I understand some of it. I never had a need to use it. So I am gathering information to then think how I will proceed.

Atom is no option for me.

I understand a bit better. Apologies about the misunderstanding, and welcome to Julia if you’re not a regular user already.

First I have a question, and the rest of this answer will address your original questions. To better understand your technical needs, what aspect of Atom makes it no option for you?

What is Jupyterlab? What are its essential functions?

It combines a notebook style interface for interactive development with a file manager and terminal to provide a basic IDE experience. The notebook interface allows you to enter code into text editing areas called cells and run the code seeing the output immediately. This is especially useful for testing new ideas and learning how some piece of code works.

Can it be used fully offline (like an offline IDE)?

Yes. Usually you start the program by running a command like jupyter lab in a terminal and then you load the IDE in the browser. For better or worse you always access JupyterLab via the browser.

If online, it makes use of some online server, including extra computing power, to process things?

It’s possible to do this too. I setup this environment once. It is a convenient way to provide a graphical interface to a server that would normally only offer a terminal interface.

Does it have (some) Vim ways?

Not that I’m aware of. The text editing capability is minimalist although autocomplete is usually available. Usually I copy code from the notebook into a file when I when to reuse the code so that I can use my preferred editor (PyCharm for Python and Juno for Julia).

1 Like

No need to apologize. We all have flaws. Thanks for your answers.

To answer your question about Atom: I find it bloated and I dislike their installation (and deinstallation) practices.

About Jupyter: they always use the term notebook, which was always immediately unintuitive, vague or annoyingly ambiguous to me.

But anyway, the fact that it runs in a browser might be a waste of resources to me. It gives me the idea of it being bloated too, though I could be wrong.

If bloat is a primary concern I suspect you’d be better using jupyter notebook which opens a slightly lighter weight interface. You still pay the cost of a browser tab (up to 200 MB of you use say Firefox) but in general the notebook is very responsive.

The whole notebook interface is really best for highly exploratory work where you want to see the effect of each command. Especially it helps if you generate a lot of plots.

For light weight I think your best options are Vim or Sublime Text (though I have less experience with this option). If you want to setup Sublime here’s a post discussing it

I personally prefer the more fully featured IDEs like IntelliJ because I’ve adjusted my workflow to accommodate them. Atom is okay for me, but I do agree there’s room for improvement.

1 Like

Thanks.

Yes, I was investigating some options, including Sublime. All this attempting to lay a foundation for an environment is costing me quite some time. VS Code, while impressive, seems slower than ST3.

DataVoyager.jl seems like a good option for exploration, so I wouldn’t need Jupyter, but I noticed non-sharp graphics. On the Github page it looks like it won’t be solved anytime soon. I used a poor, yet responsive, terminal to see the effects of commands (which I was used to anyway and which works).

So I tried Git Bash, which was impressive, but there seems to be much input lag.

I think it will be Jupyter or Sublime.

IntelliJ you mentioned. I considered it, but it indeed without even having tried it, seems bloated for me.

Specifically regarding your comment about Vim, while the coding philosophy of Jupyter is fundamentally different than Vim, there’s a nice extension that allows for some familiar bindings both within cells as well as navigating between them. It can be found here: jwkvam/jupyterlab-vim

1 Like

If you’re looking for a minimal dev environment (without Electron bloat etc) and are comfortable in a terminal, then (n)vim + tmux + a Julia REPL might be a good option. Note that it will require quite a bit of configuration to feel good.

Maybe that will do the trick, although Jupyter would cost me a browser window (and tabs). Is that Vim plugin the only of its kind for Jupyter? (Is there a better one?)

That looks very interesting. I never considered tmux. But I have come to a point in life where I don’t feel much like having to configure these kinds of things anymore, unless I must.

If you don’t want to use Jupyter, don’t use Jupyter. Instead you can use something like Juno/Atom which does allow for “cell” definition and evaluation. Then, you can install vim mode plus in Atom, and this gets you Jupyter-like evaluation, a variable workspace, debugging, and vim keybindings.

The plugin I linked is the best one I’ve found so far. Ultimately I decided to keep vim away from Jupyter since the notebook style environment doesn’t mesh perfectly with the rapid editing style of Vim.

Edit: forgot to respond to the last part of your question.

But Atom, as we already thought, is much more bloated and their installation/deinstallation practices are bad.

No worries. It’ll be probably Sublime or Jupyter.

I like Jupyterlab – although it appears to be a resource hog. One thing I don’t know how to do, is edit a notebook. Suppose I want to search and replace to change a variable name throughout a notebook. Is it possible to open the notebook in a “file” view and do search and replace? I assume it is possible, but I haven’t found out how to do it.

Did you check any documentation? (I would think this should be a reasonably trivial thing.)

How much RAM does Jupyter Lab take on your machine?

Can anyone tell me about the stability of Jupyter Lab, assuming it is necessarily combined with IJulia.jl? The Github page, section Issues, of IJulia does not give me an air of stability, but what do I know about it? More specifically there seems to be trouble with Julia 1.2 and another issue is about Dataframes.

I haven’t checked RAM consumption. But I have currently 4 tabs/notebooks open on my 32GB RAM Dell workstation (Xeon processor, 6 cores I think), each with some 40-100 cells, and when I switch among them, the input cells sometimes are blank. If I click in one of the blank cells, it gets populated with the text that really is there. I suspect that this is caused by them taking up some memory, but I may be wrong.

Jupyter notebook is probably a lighter tool, but I really like the file browser in Jypyter lab…

It should be trivial. I haven’t really seen any documentation. The link earlier in this thread is just a nice blog, I think. I saw some impressive videos 1-2 years ago. I should probably google or youtube jupyterlab…

Yes, that would do you good.

Are you on Windows? You could use Ctrl Alt Delete to see memory usage. If on Linux, you could use the top command in a terminal.

Works great, I didn’t encounter any issues with Dataframes or 1.2 .

1 Like