Overall I really like this extension and especially its interactive programming / notebook features. I am a big fan of jupyter notebooks, and wrote my own version for Scala (it was more inspired by Mathematica since Juypter didn't exist yet) a long long time ago.
However having all the output be in a dedicated window as this extension does, that allows for scrolling back in the order things were run rather than in the order they are laid out in the notebook is turning out to be better for some use cases. Also, it allows having the output side-by-side which takes better advantage of the horizontal to vertical pixel ratio of monitors.
Another thing I like is that editing cells as plain text using #%% to separate them is just a better more intuitive interface for a programmer than having a bunch of separate text-areas (imho). And it nicely dodges all the padding and unnecessary white-space problems that a Jupyter notebook has compared to a mathematica one, allowing more information to fit on the screen.
For one downside: I haven't ever used an extension that is so inclined to randomly pop up with tips and surveys while I am programming as this one. It's incredibly annoying and I've spent a lot of time trying to figure out how to disable it. Including looking through the code on github, but don't see anyway at all to do it.
It's a catch-22 situation because VS Code doesn't have the option to disable notifications like these, the person in charge of deciding if there should be a feature to prevent popups says that it's an extension issue and to take it up with them. And the extension clearly doesn't have the mindset that it is an issue and frankly I don't think it's an extensions job to re-invent the wheel on this every time so I don't blame them. They are using the tools they have as extension authors because it's clearly not the extensions job to set the style of of notification deliver to the user, only that there is one to present, perhaps with an associated urgency level. The IDE ought to then deliver it in the manner most desired by it's user.
Contrast this with Intellij which works around all of this by simply having a thought out system for notifications, wherein the user, can force them all to go to a log in a panel without a popup, which, for me is great because I'm coding, don't knock me out of the zone!
Thanks for taking the time to write down your thoughts! What are some of the use cases where you find the interactive window superior to Jupyter? Do you use Jupyter as a complement or a replacement to VS Code?
Sorry about the annoying behavior! Some of this is clearly our fault, and I've asked the team to come by and respond to this. I've also added this to the list of things to chat with the VS Code team about as well.
Disclaimer: I originally came up with the idea for the interactive window based on the design constraints of VS Code, but the team that is currently working on this deserves all the credit for building and extending the original idea.
Let me just say I didn't mean to come across as overly negative, I think everyone working on the extension has done a fantastic job, it's a very minor quibble in the grand scheme of things I use multiple different machines so while my settings sync over, some of the "we've already shown the user the popup" stuff might not be (or maybe i need to sync more settings). I just am not a big fan of pop-up notifications in general so turning them off is the first thing I do when I can.
Other minor stuff like that (none of this is at all urgent):
- Having an option to disable requiring a confirm for kernel restarts.
- Smooth scrolling in the interactive window regardless of the higher setting from vscode / electron that disables smooth scrolling.
- Don't scroll on output in the interactive window unless it's currently scrolled to the bottom (Allows reading things at the top while more results scroll in w/o having to fight the scrollbar)
- A bit better support for jupyter magics / builtins without displaying errors (e.g. things like %%html or %%javascript or !ls or 'display(dataframe)' all show errors)
In terms of why I like the split display:
I think it's more conducive to writing re-usable code than Jupyter and I can re-read things in the order that I ran them. It also keeps the code closer to together so I don't have to jump over a bunch of intermediate results when I go between different area of code.
Thanks for making the interactive window, it's been a real pleasure so far and overall I really powerful, I wish it was in every language!
Interesting that you would like to have the extension run in more than one language. What other languages do you use regularly where you'd get a benefit from the interactive window?
Comments
Overall I really like this extension and especially its interactive programming / notebook features. I am a big fan of jupyter notebooks, and wrote my own version for Scala (it was more inspired by Mathematica since Juypter didn't exist yet) a long long time ago.
However having all the output be in a dedicated window as this extension does, that allows for scrolling back in the order things were run rather than in the order they are laid out in the notebook is turning out to be better for some use cases. Also, it allows having the output side-by-side which takes better advantage of the horizontal to vertical pixel ratio of monitors.
Another thing I like is that editing cells as plain text using #%% to separate them is just a better more intuitive interface for a programmer than having a bunch of separate text-areas (imho). And it nicely dodges all the padding and unnecessary white-space problems that a Jupyter notebook has compared to a mathematica one, allowing more information to fit on the screen.
For one downside: I haven't ever used an extension that is so inclined to randomly pop up with tips and surveys while I am programming as this one. It's incredibly annoying and I've spent a lot of time trying to figure out how to disable it. Including looking through the code on github, but don't see anyway at all to do it.
It's a catch-22 situation because VS Code doesn't have the option to disable notifications like these, the person in charge of deciding if there should be a feature to prevent popups says that it's an extension issue and to take it up with them. And the extension clearly doesn't have the mindset that it is an issue and frankly I don't think it's an extensions job to re-invent the wheel on this every time so I don't blame them. They are using the tools they have as extension authors because it's clearly not the extensions job to set the style of of notification deliver to the user, only that there is one to present, perhaps with an associated urgency level. The IDE ought to then deliver it in the manner most desired by it's user.
Contrast this with Intellij which works around all of this by simply having a thought out system for notifications, wherein the user, can force them all to go to a log in a panel without a popup, which, for me is great because I'm coding, don't knock me out of the zone!
Thanks for taking the time to write down your thoughts! What are some of the use cases where you find the interactive window superior to Jupyter? Do you use Jupyter as a complement or a replacement to VS Code?
Sorry about the annoying behavior! Some of this is clearly our fault, and I've asked the team to come by and respond to this. I've also added this to the list of things to chat with the VS Code team about as well.
Disclaimer: I originally came up with the idea for the interactive window based on the design constraints of VS Code, but the team that is currently working on this deserves all the credit for building and extending the original idea.
Let me just say I didn't mean to come across as overly negative, I think everyone working on the extension has done a fantastic job, it's a very minor quibble in the grand scheme of things I use multiple different machines so while my settings sync over, some of the "we've already shown the user the popup" stuff might not be (or maybe i need to sync more settings). I just am not a big fan of pop-up notifications in general so turning them off is the first thing I do when I can.
Other minor stuff like that (none of this is at all urgent):
- Having an option to disable requiring a confirm for kernel restarts.
- Smooth scrolling in the interactive window regardless of the higher setting from vscode / electron that disables smooth scrolling.
- Don't scroll on output in the interactive window unless it's currently scrolled to the bottom (Allows reading things at the top while more results scroll in w/o having to fight the scrollbar)
- A bit better support for jupyter magics / builtins without displaying errors (e.g. things like %%html or %%javascript or !ls or 'display(dataframe)' all show errors)
In terms of why I like the split display:
I think it's more conducive to writing re-usable code than Jupyter and I can re-read things in the order that I ran them. It also keeps the code closer to together so I don't have to jump over a bunch of intermediate results when I go between different area of code.
Thanks for making the interactive window, it's been a real pleasure so far and overall I really powerful, I wish it was in every language!
Thanks! I'll definitely chat with the VS Code folks about whether we can have a unified solution to the notification problem.
Would you mind opening a set of Github issues so that we can get your suggestions onto our backlog? https://github.com/Microsoft/vscode-python/issues
Interesting that you would like to have the extension run in more than one language. What other languages do you use regularly where you'd get a benefit from the interactive window?
Thx!