JulianEberius / SublimePythonIDE

ST3 only: A rewrite of SublimeRope for ST3, uses the Rope library to add python completions and refactoring to ST3
GNU General Public License v2.0
267 stars 38 forks source link

Improve "Python not found dialog" #80

Closed szhu closed 8 years ago

szhu commented 8 years ago

Improve "Python not found dialog"

Old New
New

Rationale and changes:

JulianEberius commented 8 years ago

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 commented 8 years ago

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.

* 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 commented 8 years ago

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 commented 8 years ago

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 commented 8 years ago

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 commented 8 years ago

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 commented 8 years ago

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 commented 8 years ago

Thanks for looking into this! Happy new year :fireworks: