It's a shame that it's only primarily used for Data Science experimentation & teaching.
Features that actually are important: Code can be written in fragments. The output is a program. Fragments can be appended to.
It's not a bad tool but I think it's a bit ugly and relies too much on saving state in the notebook.