title: Jupyter notebook's ability to retain variables on script exit, Any other IDE can do it?
body: <h2>Context:</h2>
  
  <p>Jupyter notebook has this nice ability to store variable values even when a block of code executed and exited. It is a more powerful version of "break point" in other IDEs. So far, I have noticed some benefits from this jupyter notebook ability:</p>
  
  <ol>
  <li>You can run the lengthy part of your code only once and use its results over and over again without rerunning them.</li>
  <li>you can inspect your current variables more flexibility, print them on console or into a file or into a table.</li>
  <li>you can try tweaking variables as well, before feed it to the next code block. There can be draw back to this, after tweaking my variables, they are forever changed, so I have to include lines of boilerplate code in my subsequent notebook script after the lengthy script: <code>lengthy_variable_new = lengthy_variable_original.copy()</code><br>
  <code># do things with lengthy_variable_new</code></li>
  </ol>
  
  <p>Now, let's imagine a a new ability: "saveState" a script, in which you can save all variables created by the user and all hidden ones, everything that is currently on heap or stack. So you can continue coding after the saveState point but you can restore the saveState point anytime you want.</p>
  
  <p>I understand that python language itself can only pickle things you want. It is handy for some cases but not all.</p>
  
  <h2>Question:</h2>
  
  <p><strong>Is there a proper term describing my "saveState" concept?</strong><br>
  <strong>Do we have it in pycharm or any other IDEs?</strong><br>
  I personally believe there is either a better way, or what I want is very hard to implement so that is almost easier just to re-run the code compared to restoring everything back to memory.</p>