Cuneiform: Distributed Functional Programming and Foreign Function Interfacing
Cuneiform is a minimal workflow specification language with immutable state, lazy evaluation, lists, and second order functions operating on lists. In this, it borrows from Functional Programming languages. Cuneiform deliberately constrains users to specify workflows in a parallelizable way. Its execution environment Hi-WAY runs on top of Hadoop. In addition, functions (tasks) can be defined in any given scripting language, e.g., Bash, R, or Python. This way users can not only supplement features absent in native Cuneiform but can reuse any tool or library no matter what API it requires.