In [ ]:
from IPython.display import YouTubeVideo
YouTubeVideo('xU_xdogXFeE', width=600, height=400)
Out[ ]:
In [ ]:
from IPython.display import YouTubeVideo
YouTubeVideo('3FmBJ847_y8', width=600, height=400)
Out[ ]:

Notebooks.

A rendered REPL combining

REPL (Read–Eval–Print Loop)

  • Code
  • Logs
  • Documentation
  • Execution Results

Useful for

  • Iterative Development
  • Sharing Results
  • Integrating Various API Calls

Wins.

  • Shareable
  • Easy to Read
  • Documentation with Code
  • Outputs as Reports
  • Familiar Interface
  • Multi-Language

Notebooks: A REPL Protocol + UIs

Exploring and Prototyping.

The Good.

Notebooks have several attractive attributes that lend themselves to particular development stories:

  • Quick iteration cycles
  • Expensive queries once
  • Recorded outputs
  • Easy to modify

The Bad.

But they have drawbacks, some of which kept Notebooks from being used in wider development stories:

  • Lack of history
  • Difficult to test
  • Mutable document
  • Hard to parameterize
  • Live collaboration

Focus points to extend uses.

Things to preserve:

  • Results linked to code
  • Good visuals
  • Easy to share

Things to improve:

  • Not versioned
  • Mutable state
  • Templating

Notebooks are good integration tools.

  • Notebooks are good at connecting pieces of technology and building a result or taking an action with that technology.
  • They're unreliable to reuse when complex and when they have a high branching factor.

Some development guidelines.

  • Keep a low branching factor
  • Short and simple is better
  • Keep to one primary outcome
  • (Try to) Leave library functions in libraries
    • Move complexity to libraries

Comments

2020-04-10