Learning curve: Moving from procedural scripts to "functional" dataflow paradigm
 
Many StackOverflow questions come down to learning common design patterns
 
Syntax (CWL in YAML) was designed for interchange, not user editing
Users want more syntactic sugar (should not affect model)
--> Move to "compiler" paradigm
 
Error handling: Differences in engine implementations.
E.g. handling nulls, default values, fallback, cascading errors --> CWL v2.0
 
Implementation zoo: Varying degree of complexity, usability, scalability
.. how to pick CWL engine for your compute needs?