It's great that PyCharm has incorporated IPython notebook, but, it's still a little awkward to use, especially when developing proper code at the same time. And still, after years in Python trying every IDE, I have to say the Matlab IDE was better, BECAUSE: You could execute "cells" of code at any time.
Pycharm ALMOST has this, it's just not smoothly put together.
Much better than incorporating notebook would be if PyCharm allowed you to
1) Split code in normal .py files into cells (with maybe a "##" or something)
2) Enter commands and execute code code in the console (in the context of a breakpoint) by either typing in an expression or selecting a cell and clicking Shift-Enter or something.
Suppose I want to stop at a breakpoint, evaluate a chunk of code, and then query the status of some internal variable that's not immediately accessible through the "Variables" window
- Highlight chunk of code
- Open "Evaluate Expression" window
- Press "Evaluate"
- Go back to console/variables to check any output/state changes
- Open "Evaluate Expression" window again
- Query the state somehow
- Select cell containing chunk of code
- Press Shift-Enter or something to evaluate
- Look at console/variables to see state output/state changes.
- Select Console
- Select Console
- Query the state
The latter requires no switching between windows. It also allows you to modify and run your code in place, rather than modify, copy-to-evaluate, modify, copy-to-evaluate that's currently required. It merges the Console and Evaluate window into one, so you don't need to keep switching. And unlike IPython notebook, it allows you to cement your interactive changes into permanent code in py files.