3 ms·
This is a great question. Our approach to this is described here: http://www.youtube.com/watch?feature=player_detailpage&v=BUgxmvpuKAs#t=2393s http://www.youtu
by aboytsov 14y ago
This is a great question. Our approach to this is described here:
http://www.youtube.com/watch?feature=player_detailpage&v=BUgxmvpuKAs#t=2393s http://www.youtube.com/watch?feature=player_detailpage&v...
In short, we don't feel like it's an either or question. We want to have Drake as a command-line frontend to the core functionality, but we would love to see/have other frontends developed as well. Currently, there's no Clojure DSL for Drake, but I think it'd be totally awesome.
The reason we started from command-line is because our workflows are heterogenous, and we also didn't want to limit Drake to developers and associate it with coding. Clojure can be quite a big learning curve if you only need it to specify steps and link them together through file dependencies.
We had an important design goal in mind: Drake should be as simple as writing a shell script. If it's not, our experience shows that most workflow start as trivial shell-scripts with one or two steps, and by the time it grows into something unmanageable, it's kinda too late. :)
On a related note, Drake supports Clojure code inlining for manipulation of the parse tree. It's not an equivalent, just a somewhat related feature. It allows you to modify the steps, dependencies, and anything else in the parse tree directly from Clojure.