Skip to main content
. 2021 Nov 4;11:21680. doi: 10.1038/s41598-021-99288-8

Table 1.

Summary of language-level differences among Swift/T, Nextflow, CWL and WDL.

Aspect Swift/T Nextflow CWL WDL
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/)