Skip to content

Improve "Python not found dialog"#80

Merged
JulianEberius merged 1 commit intoJulianEberius:masterfrom
szhu:master
Dec 20, 2015
Merged

Improve "Python not found dialog"#80
JulianEberius merged 1 commit intoJulianEberius:masterfrom
szhu:master

Conversation

@szhu
Copy link
Copy Markdown
Contributor

@szhu szhu commented Dec 17, 2015

Improve "Python not found dialog"

Old New
New

Rationale and changes:

  • Permanent actions without a clear "undo" button are confusing for new users.
    Change: The "Don't show this again" button is moved to a more "dangerous" location (where "Don't Save", a destructive action, normally appears)
  • Modals can get really annoying, and some people will expect to open files with badly configured Pythons and not be faced with a modal.
    Change: Add an setting "suppress_python_not_found_error" to permanently turn off modals
    Change: Always error to console, even if modal turned off, for advanced users
  • Change: aesthetic changes to dialog
  • Change: add link to documentation
  • Users might not know who is responsible for the dialog
    Change: Add plugin name in dialog

| Old | New  |
| --- | --- |
| <img width="420"src="https://cloud.githubusercontent.com/assets/1570168/11857670/2a416ce2-a40f-11e5-9032-a07122bcb120.png"> | <img width="522"src="https://cloud.githubusercontent.com/assets/1570168/11857668/2a2d7db8-a40f-11e5-95ef-9da27016735b.png"> |

| New |
| --- |
| <img width="602"src="https://cloud.githubusercontent.com/assets/1570168/11857669/2a2dc854-a40f-11e5-99a4-cf29366c7885.png"> |

Rationale and changes:
 - Permanent actions without a clear "undo" button are confusing for new users.
   Change: The "Don't show this again" button is moved to a more "dangerous" location (where "Don't Save", a destructive action, normally appears)

 - Modals can get really annoying, and some people will expect to open files with badly configured Pythons and not be faced with a modal.
   Change: Add an setting "suppress_python_not_found_error" to permanently turn off modals
   Change: Always error to console, even if modal turned off, for advanced users

 - Change: aesthetic changes to dialog

 - Change: add link to documentation

 - Users might not know who is responsible for the dialog
   Change: Add plugin name in dialog
@JulianEberius JulianEberius merged commit 1701a89 into JulianEberius:master Dec 20, 2015
@JulianEberius
Copy link
Copy Markdown
Owner

Hi again,

this is a big improvement, thanks a lot. I know modals are annoying, but I don't expect this dialog to popup all that often, since at least the system Python should always be available on machines where the user decided to install SublimePythonIDE. If it is, in fact, not found, then something is seriously wrong, and a modal is ok I think. Still, adding an option to suppress the dialog is a good compromise.

Thanks again
Julian

@szhu
Copy link
Copy Markdown
Contributor Author

szhu commented Dec 20, 2015

at least the system Python should always be available on machines where the user decided to install SublimePythonIDE… then something is seriously wrong

From my experience*, you're making too many assumptions about the user. This is okay when you're making a focused product as this one. But since there is not really a cost of making this modal less annoying, and there is a 0.5~1% chance that this modal will seriously annoy someone, I think it's a very good idea to include this option.

Note that my argument is that you should consider adding this option even without knowing in which kind of cases you'll need it, because you don't know all your users.

However, here is an example in case you are wondering: The user might use Sublime for multiple projects on their computer, with some being available through SublimePythonIDE and some not.

  • Why would projects generally not have Python available? If you're on Windows, Python isn't installed by default. Even if you install it, it might not be in PATH. Perhaps the user launches Python via Cygwin, which does config things that subprocess.Popen does not. Perhaps Python is installed in a VM but the user wants to edit locally (I do this all the time with Rails apps actually).
  • What happens when you try to use SublimePythonIDE for these projects? SublimePythonIDE will simply not work for them, which might be more desirable than getting a modal, especially for people who quit/launch Sublime a lot.
  • Then why would the user have SublimePythonIDE installed? Perhaps SublimePythonIDE somehow works for venv-based projects only. But the user has other non-venv projects too that they want to edit in Sublime.

* I'm a computer science student who has worked with many other new students at my university with setting up their programming environment, etc (both officially and unofficially), and I can safely say that many students have environments that that set up "seriously wrong" by your standards. These are also students that would greatly benefit from a plugin like this.

Thanks for your merges + code review + this plugin btw!

@szhu
Copy link
Copy Markdown
Contributor Author

szhu commented Dec 20, 2015

I don't expect this dialog to popup all that often

Another thing: Sure, this is true for 99+% of users, but it's still probably a good idea to quickly show them how they can fix the problem as soon as possible, even if it's once per user.

@JulianEberius
Copy link
Copy Markdown
Owner

Wow, I see you put a lot of thought into the software you work with. This means future contributions from your side are definitively welcome :-)

About the modal: I'm not a big fan either, and I'm open for changes. But I'm also not happy about just printing to the console, because the user will have to know to look there for error messages. I tried to automatically open the console when printing the error message, but that switches the typing focus to the console, which I also didn't like if it happens repeatedly. Finally, with this "console-only" version, there was no way to quickly hit a "stop bothering me" button, the console would just pop up every X seconds.

So, if you have any suggestions, I'm all ears :-)

@JulianEberius
Copy link
Copy Markdown
Owner

P.s.: Maybe auto-opening the console exactly once per project (or view) might be another compromise (of course, including the option for permanent suppression you introduced). See: https://github.com/JulianEberius/SublimePythonIDE/tree/error_messages

@szhu
Copy link
Copy Markdown
Contributor Author

szhu commented Dec 27, 2015

But I'm also not happy about just printing to the console, because the user will have to know to look there for error messages.

This is why I didn't add an button to disable things permanently. Instead, the user has to go and manually change edit the setting. These kind of users are also the users who know to check the console.

Why I don't like the console popping up once per launch: In my experience, "exactly once" things seem like a good compromise until you see a user using it over and over again (or you become one of these user), you'll notice that they develop a reflex just for getting around the compromise.

Why I don't like the console popping up at all: 90+% of users I know don't know what the console is, and if it popped up, it would be confusing, hard to read (because there are other messages in here), and a lot of users don't know that those panels can be dismissed by pressing escape. Also they won't know how to make the console pop up again in the future.

@JulianEberius
Copy link
Copy Markdown
Owner

Ok. So we leave the dialogue as shown in this pull request, i.e., just as it currently is in master, and I can send out a minor update to Package Control (1.0.3) in the new year.

@szhu
Copy link
Copy Markdown
Contributor Author

szhu commented Dec 31, 2015

Thanks for looking into this! Happy new year 🎆

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants