Parent language |
C, tcl |
Ruby and Groovy |
N/A |
N/A |
Compilation |
Compiled |
Interpreted |
Compiled |
Compiled |
GUIs |
– |
NextflowWorkbench27, DolphinNext28
|
Rabix composer |
Pipeline Builder29
|
DSL features |
Complete, extensible in tcl |
complete, extensible in Groovy and Java |
Limited standard library, extensible via javascript |
Limited standard library |
Variables |
Typed, unique within scope |
Qualified, unique within scope |
Typed, unique identifiers |
Typed, fully qualified names |
Loops |
Sequential for and parallel foreach |
Parallel queue channels |
Parallel scatter via ScatterFeatureRequirement |
Parallel scatter |
Conditionals |
If-else and no-fall through switch statements |
Via when declaration within a process |
When and pickValue fields proposed in CWLv1.2 |
If blocks producing optional output types |
Enforcing good practices |
– |
nf-core (https://nf-co.re/) |
CWL guide (https://www.commonwl.org/user_guide/rec-practices/) |
– |