Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Really bad first-time user experience #477

Closed
Feuermurmel opened this issue Aug 7, 2022 · 4 comments
Closed

Really bad first-time user experience #477

Feuermurmel opened this issue Aug 7, 2022 · 4 comments
Labels

Comments

@Feuermurmel
Copy link

Feuermurmel commented Aug 7, 2022

Really bad first-time user experience

Hi there. Yesterday I gave JupyterLab Desktop a try and had a bad and off-putting experience. I wanted to use that experience to provide feedback to the developers to help improving the app.

I know this is not a bug report in itself, but I decided on sharing this story here because I think that some of my points here maybe could be converted into bug reports or feature requests. But because it is so much, I wasn't sure whether it makes sense to just create a bunch of issues all at once. It's probably better if this is looked at by a developer or experienced user who can decide what's helpful to record as issues, what's already been reported and what should just be ignored.

Context: This experience is all from the first ~3 hours of using JupyterLab and I haven't put more energy into it after that. I've looked into similar projects over the past 10-or-so years, e.g. the IPython QT frontend, nteract, Jupyter notebook support in PyCharm. I never invested more than 30 minutes into one of these tools because it didn't work out for me. I'm an active daily user of Mathematica 12 and IntelliJ IDEA 2022.

To improve readability, while reporting my experience, whenever something went wrong, I'll insert quote blocks to describe what I would have expected to happen or how I think that the app's behavior could be improved.


I downloaded the macOS app from JupyterLab Desktop's GitHub page after getting there from the blog post JupyterLab Desktop App now available!. There I found the link labelled macOS Installer.

This made me question whether I want to continue. I had a lot of bad experiences with macOS apps requiring an installer. Expecting a bad experience here too, I questioned whether I have the energy to continue with that. The link doesn't actually lead to an installer but instead to a DMG containing the app, so it could be labelled e.g. simply macOS.

I launched the app for the first time and was shown this dialog:

image

I wanted to re-use my existing environment because I'm low on disk space. So I selected Select Python path to open a file browser. I had the path in my clipboard already, so and I hit command-shift-G and command-V to navigate there. This popped up the following error message:

Screen Shot 2022-08-07 at 14 28 32

It's a minor thing but having this work as expected would have improved the user experience for me.

Before I opened the file browser, I wondered why I couldn't paste the path from my clipboard directly into the field with an orange border. It looks like a text input field by the way of having an I-beam cursor when moving the mouse over it, but activating it and hitting command-V did nothing. If it's not a text input field then maybe it should be styled differently.

Personally I would completely redo this dialog. It has 7 interactive controls to choose between 3 actions (quit, install bundled environment, use existing environment). So it could instead just have three buttons for those actions (e.g. "Quit", "Use bundled environment", "Choose existing environment"). The latter of those buttons would open the file browser and continue with re-launching the application when a path is selected.

So I navigated to the path manually and then selected Apply and restart, but I hit #473 in the process. Investigating this cost me about 45 minutes (clearing and re-installing dependencies a few times) until I gave up and set it to Install Python environment using the bundled installer and continued.

When something fails while setting up the environment, the app shouldn't simply continue with restarting and instead display an error, even if it's just a stack trace.

JupyterLab finished launching, and I was greeted with this launcher (missing the Notebook options):

Screen Shot 2022-08-07 at 12 56 03

I don't know whether this is an expected state for the app to be in and whether it makes sense to handle it, but it would have helped me a lot in this case if just a simple message was displayed like "Hey! You don't have any kernels installed, that's why there isn't an option to create a notebook, follow this link for instructions on how to add a kernel."

I didn't know that there was anything wrong yet, so I created a new notebook via File > New > Notebook and got this dialog:

Screen Shot 2022-08-07 at 12 57 09

The drop-down menu was inactive, so I had no other option than to leave it at No Kernel. I could enter expressions into the created notebook but not evaluate it. So I thought I have to figure out how to add a kernel. I couldn't find an option for that in any of the menus or anywhere else in the UI. I searched the web with queries like "jupyterlab desktop add kernel" but couldn't find anything that helped me. Then I tried adding a kernel from the command line using /Users/michi/Library/jupyterlab-desktop/jlab_server/bin/jupyter-kernel install which allowed me to figure out the problem that prevented the Python kernel from being added automatically. This took another hour to figure out.

Again, a simple message for that case would have saved me a lot of time and energy.

I solved the underlying problem, closed the app's window and double-clicked the notebook. The dialog for selecting a kernel was shown again, this time with the Python 3 kernel pre-selected (yay for automatically recognizing that it is possible to add the kernel now 👍). I chose Select and tried to evaluate an expression, which didn't work. Instead, the cell stayed in this state:

image

The status bar said Connecting and stayed in that state for a long time:

image

After some time it changed to Disconnected, so I selected Kernel > Reconnect to Kernel from the main menu, which changed the state back to Connecting, but without success. So I quit the application and re-launched it. After that, it was able to connect to the kernel.

While writing up my experience here, I had to figure out that the issue was caused by me not quitting the application and instead just re-opening the notebook from Finder. It's obvious to me that re-launching the application could be required after fixing an issue that prevented the kernel from being added but for some reason I didn't do it at that time and my experience was really bad because of that.

I think this case could be handled more gracefully. If an error message was displayed instead of stalling in the Connecting state, I would have been more inclined to re-launch the application right away (which would have been a better experience because I wouldn't have had the feeling that I was wasting my time).

Better of course would be if this problem wouldn't occur at all (at it just worked) or if the app would notice that a re-launch was necessary and tell me so.

(I later noticed while writing this down that this condition happens from time to time even after the application has been set up already, so this bug isn't isolated to that case)

I was able to evaluate expressions now. Now I wanted to move my notebook to a different location.

IMHO the user's home directory is a bad choice as a default location for new notebooks.

I saved the notebook, moved it in Finder to the new location deep down in my Documents folder and renamed it there. Then I switched back to the app and noticed that (a) the integrated file browser in the left panel didn't pick up that the notebook is no longer in my home directory and (b) that it still displayed the notebook's old name in the tab and title bar's.

It should just do (a) and (b).

I couldn't find a way to refresh the integrated file browser, so I hit command-R, which re-loaded the whole window. This lost me some changes I had in another notebook without warning.

To reproduce, click into the file browser and hit command-R. The window will reload without the usual Do you want to leave? message. This isn't ok.

Now I wanted to navigate the integrated file browser to the new location of my notebook. I did the usual thing on macOS and dragged the folder from Finder (the little proxy icon in the folder window's title bar) onto the integrated file browser. That resulted in this error message:

Screen Shot 2022-08-07 at 00 00 42

I didn't know about the Show in File Browser option in the notebook's tab's context menu at that time. My expectation is that dragging a file or folder onto an application's file browser navigates the browser to that file. Handling it like I wanted to make a copy of the folder doesn't make sense to me in a desktop application. Instead, there should be a Reveal in Finder context menu to allow people to use the Finder to copy and move stuff around.

I know that some IDEs handle it this way, that you can drag stuff onto the file browser and have it copied or moved there, but there's a reason that I had a different expectation in this case: I didn't really open a "project" within the app, it simply launched and showed me the contents of my home directory, the same way that e.g. a GUI Git client would show a file browser to select a Git repository on first launch (where I would be able to drag something from Finder to navigate).

So I had the file open twice now. I switched to the old tab and hit command-W. The whole window simply disappeared.

I would have expected command-W to close a single tab instead.

And now the app was in a weird state. Without an open window, there also wasn't a useful menu bar. Opening the notebook from Finder again worked though.

The menu bar should just be moved out of the window into the actual menu bar. I've already seen an issue here requesting that.

This is also about the time I noticed how long JupyterLab takes to launch or open a new window. On my Mac, it takes about 18 seconds when launching the application via double-clicking a notebook from Finder until notebook's content is displayed. As a comparison, Mathematica 12 takes about 4 seconds and IntelliJ IDEA 2022 about 8 seconds.

I finally started writing some code. While doing that, I accidentally hit command-,, which opened the app's settings in a new tab. To close it again, I hit command-W again, which prompted this dialog to show up:

Screen Shot 2022-08-07 at 15 25 06

I read Do you want to leave? and though "no", so I hit escape. This closed the window again. I re-opener my notebook via Finder and noticed that some of my changes had been lost.

That this dialog exists makes no sense to me. If the app thinks that I want to close all my open notebooks, it should simply ask for whether I want to save them. A dialog for that does exist, but isn't used here!

Hitting escape shouldn't lead to a destructive action.

You might say I'm stupid for hitting command-W or escape to close a tab and dismiss a dialog respectively. But it happened countless times by accident while and after complaining about it here 😭.

Also, I have Autosave Documents activated in the Settings menu. Why didn't it work here?! (I notice now that talking about an app losing some of my work because of bad UI design and/or bugs raises emotions in me, I hope it won't detract from the constructive messages I want to convey here. Bear with me).

Also, I would prefer it if notebooks would simply be saved whenever the window looses focus or when the tab/window/application is closed. I don't see a compelling reason to differ in behavior here from most other IDEs and macOS apps and also from practically all web applications (when considering that the UI was originally designed to be used as a web app).

This is also the point where I noticed that the app wouldn't remember the size and location of the main window between launches, which is a bit annoying.

Then I got annoyed about the editor not wrapping the code to the window's width, so I went looking for an option for that. The settings' built-in search lead me to believe that there is no such option:

image

I know that searching a collection of dialogs for a search string isn't trivial to implement, but having a search field but not working as expected is worse than not having the search field at all IMHO, because it may lead to wrong conclusions about the existence of a setting.

So I enabled word wrapping and got this:

image

Word wrapping without indenting wrapped lines is worse than no wrapping at all, so IMHO this option is practically useless for the code editor.

This is a feature that most other IDEs have. I'm accustomed to it thus would expect it to be supported in a new IDE I'm evaluating.

I wanted to enable word wrapping to make better use of my laptop's small screen. Without that, I thought I can also just decrease the font size a bit, but oh boy is that part of the settings dialog broken! Entering a single digit in the Font Size field leads to the settings being saved and the field losing focus. The Font Family field has the same problem. Try entering a long font name with that:

image

😐

This is where I gave up. It's clear to me that using the app is a hassle to me instead of a relief, sadly. I know that much of the behavior that I find odd stems from the UI being designed with a web-app in mind, but these odd behaviors are the reason I never found the JupyterLab web app appealing.

I'm sorry, I know it's a lot 😕. It took the better part of the day to write all this down. I did it because I hope it'll help this project move forward and improve and have a higher chance of being accepted by new users.

I'll gladly try to respond to any questions or elaborate on points, but it sometimes takes multiple weeks for me to find the right time concentrate on it again.

I also don't mind if my points here are being dismissed. I just tried to give a transparent insight into my initial experience with the app. None of this is political, religious or emotional to me (or at least I'm not expecting you to fix that in that case).

Happy to read your feedback!

@krassowski
Copy link
Member

Thank you for your valuable feedback. I am sorry that you had such an experience with this distribution of JupyterLab. I agree with your points.

It does appear that many of the errors (environment issue, kernel issue, connection issue) arise from a general problem during the installation of JupyterLab Desktop specifically on MacOS; it is absolutely not how it should work. I do not have sufficient experience with MacOS, but maybe @mbektas could help.

Regarding the problems with selection dialog:

The remaining issues need to be fixed in JupyterLab core:

I really appreciate the time you dedicated to sharing your detailed and thoughtful feedback. Would you mind if I bring it up on the upcoming Jupyter community meetings: JupyterLab call on Wednesday and wider governance call on Friday?

@mbektas
Copy link
Member

mbektas commented Sep 1, 2022

@Feuermurmel thanks for the detailed feedback, the time you dedicated to testing and sharing with us. I have been aware of some of the issues you reported (Command + R refresh, Command + W and state when there are no windows open but app still running) but didn't get chance to fix yet. Before each release, I test the app at least on macOS, Windows and Ubuntu but I never ran into some of the major issues you mentioned such as no kernel problem. We will be addressing the issues you
mentioned in the upcoming versions.

@mbektas mbektas mentioned this issue Sep 1, 2022
8 tasks
@jd-santos
Copy link

I've lost about 2 hours on a similar path and am currently stuck at the kernel disconnecting. Knowing there are potentially more issues ahead of that, I'm calling it quits and uninstalling. I really like the idea of a dedicated notebooks app, but I've just been completely defeated by this.

@mbektas
Copy link
Member

mbektas commented Jun 7, 2023

closing this issue. there has been many enhancements to the project recently that greatly improved the user experience. if there are ongoing problems please create separate issues for each.

@mbektas mbektas closed this as completed Jun 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants