...
Not everyone loves Jupyter!
...
Why is this?
Jupyter notebooks can encourage bad software development practices. |
|
---|
|
Counterintuitive to object oriented programming and can discourage OOP practices. |
|
---|---|
Most jupyter notebooks and their output are not easily reproducible |
. |
|
---|
|
|
You may run a notebook always skipping a cell, while the next person to run it doesn’t skip that cell. In these situations, you’ll end up with different output.
|
Being able to run snippets of code in arbitrary order can be unintuitive.
| |
Jupyter lacks version control |
|
---|---|
Jupyter can be slowwwwwwww…. |
|
...
We can’t tell you what to use, but can offer some best practices
While we may recommend best practices, and provide reasoning, the tools you use for your research are entirely up to you.
Over the long term, this boils down to discipline and using the right tools for the right jobs.
**Generally, these rules will often apply, but one cannot predict every use case:
Jupyter is probably not the right tool to share application code**
Jupyter was built for collaboration, communication, and interactivity. It is not meant to running critical code**
It's convenient to show ideas to others, or experiment with your code, or for draft code
Once you’re done experimenting, code it properly in a serious application if you plan to use the code in production**
If the code needs to run for a long time, it’s likely not a good idea to write it or run it from a jupyter notebook**
Jupyter is not intended for asynchronous tasks**
It's designed to keep all cells in a notebook running in the same kernel.
This means that if one cell is running a long, asynchronous task, it will block the execution of other cells.
This can be a major problem when you're working with data that takes a long time to process, or when you're working with real-time data that needs to be updated regularly.
In these cases, it can be much better to use a tool designed for parallel computing.
...
Jupyter wasn’t originally intended for use on an HPC
...