Hey there Tom, great to hear from you! Yeah, after the earlier conversation on Gitter I posted here since this sounded like more of a Julia issue than Plots specifically. I hadn't noticed your response there.
My main experience with a REPL is Matlab, so I come with that bias. I would argue that I can't think of a time you would want to suppress a plot window, or UI window in general. I agree on suppressing console output, but not so much with UIs. Matlab defaults to displaying with an explicit option to disable that. At the very least I would think that having show=true as a default makes much more sense than not. At least more often than not I suspect that you'd want a window open, and certainly on first use. The problem I see is, as a new user to the language, the results seemed very arbitrary. Sometimes a plot window showed up, sometimes it didn't, and it was hard to decipher why. Adding a print statement after a plot generated different behavior. I think that is fair to classify as a gotcha, it sure got me. The second issue is that the command executes/fails silently with no result, which is extremely hard to troubleshoot. I spent many hours today trying to track down what was going on before I finally understood the issue. I think defaulting to UIs being displayed would be a benefit to overall adoption, it would feel like things "just work", which was a big part of the reason I really like matlab, things just work in that environment, there are very few gotchas. I think that's a fair comparison to draw in this case. This is the most mind boggling of the cases, I had simply added a print statement for debugging purposes and had no concept that it was drastically changing the execution flow: function test(); plot(); end; test() # UI window opens function test(); plot(); println(); end; test() # Silently fails Of course now I understand that I can wrap it in display() or enable the show=true setting. But I'll bet a lot of people following me will run into this too.