Advantages: Meant to be created/destroyed/recreated quickly, isolates dependencies so only the packages you use should be in the container
Challenges: High learning curve, can only access whatever other programs, libraries, and data you have placed inside the container, manually created and subject to human error
Web-based integrated development environment: development environment used in-browser
Advantages: work like normal in a development environment (RStudio, Jupyter, Spyder) and get the reproducibility features done in the background for you
Challenges: All work is conducted within the browser environment, and you must be connected to the Internet to use
Web-based replay system: provides a sandbox environment to run code hosted elsewhere (e.g. GitHub, Zenodo)
Advantages: only needs a link to someone’s code to be able to try to run it, low barrier to entry, publicly available
Challenges: relies on a person to generate a file declaring dependencies, otherwise it does a best guess as to what the code needs
Packagers: creates a self-contained package that has all the binaries, files, and dependencies required to reproduce research on the author’s computational environment. A reviewer can then unpack the research using the same packager in their own environment to reproduce the results, even if the environment has a different operating system from the original one