How does rMarkdown compare with existing tools in DataMade's stack or possible alternatives.
Like rMarkdown, Pweave is an implementation of noweb, but one that primarily targets Python instead of R.
The main advantage of Pweave is that it is Python.
While rMarkdown does allow for Python code chunks, there is typically some setup code and that does need to be done in R. With Pweave, it's all Python.
That is really the only advantage.
Like rMarkdown, Pweave requires an additional runtime beyond standard Python. rMarkdown requires R and Pweave requires IPython.
Pweave is not actively maintained, and has not been updated in three years.
rMarkdown has better editor support than Pweave. For the following editors, rMarkdown is as good and usually better than support for Pweave, if there any Pweave support exists.
rMarkdown also has its own IDE, RStudio
Beyond active devlopment and editor support, Pweave is missing many features compared to rMarkdown. Of greatest consequence are 1. chunk specific caching and support for 2. multiple languages, particularly SQL.
Chunk specific caching can dramatically reduce build times which is critical in speed of development.
Our past experience suggests that SQL will be a common language we will use in literate reports, and first class support is very nice.
Jupyter Notebooks overlap in functionality with rMarkdown. The main differences is that Notebooks are intended to be an interactive exploration tools and rMarkdown is intended to be a documentation and document creation tool.
I have not used Notebooks extensively, but three attributes make it less attractive.
- While possible, it is more difficult to generate attractive documents from Notebooks.
- The file format of Notebooks is not plain text and not natively diffable by github or gitlab, thus making PRs difficult
- While possible, Notebooks are not primarily intended to be scripted instead of interactive, thus making bit of mismatch with our ETL philosophy
We can do and do generate statistics and graphs in one tool and then copy the data or graphics into Google Docs or a markdown file. Sometimes this is the appropriate approach, as described in the recommendation document.