drake chiming in here. TL;DR: I think the most direct apples-to-apples comparisons here are DrWatson vs MLFlow and
drake vs GNU Make.
Is this something similar to https://ropensci.github.io/drake/
DrWatson has different goals: version control, sharing, project file structure, and provenance (keeping track of simulation settings). In these respects, it is more like MLFlow, especially when it comes to tracking.
drake, on the other hand, tries to be Make for R.
drake synchronizes expensive computations in an end-to-end pipeline so repeated full runs take minimal time.
drake analyses your targets and functions to figure out what needs to run and what can be skipped, taking into account that some computational steps depend on others,.
I will say that DrWatson and
drake are similar in that they both abstract away output file management and reduce manual bookkeeping.
No, from the 6-minute video I just watched they don’t seem similar. DrWatson also seems to have a much simpler and cleaner approach to helping you (e.g. you don’t have to make a “DataFrame” out of every function in your code!)
I disagree with that characterization of the data frame (the
drake plan). You do not need to wrap up all your functions in it. In
drake, you can define your supporting functions wherever and however you want, and then your commands in the plan simply reference those functions as needed. Most of your code lives in the functions, as is the case for cleanly-implemented scientific workflows in general,
drake or no
drake plan is like a
Makefile for R. The main differences are
- You are writing R code.
- The syntax is much easier than Make wildcards.
- You do not need to list out all the dependencies of each target manually by hand.
drake automatically discovers dependency relationships among your targets and functions using static code analysis. (See the graph above.)