Guiding principles

These indicate the high-level direction of what this standard is intended to promote, with the detail of how to achieve this covered in the subsequent sections.

  1. Use the most suitable tool for the job, without excessive variety.

  2. Consistency is more important than any particular stylistic choice.

  3. Reusable modular components rather than duplication or repetition.

  4. Robustness against run-time failures (both standalone and under ecFlow).

  5. Maximise use of automated check/lint/formatting tools.

  6. Avoid either sticking with the past, or adopting the latest thing, for the sake of it.

  7. Make it easier to write and debug scripts that are needed, rather than getting in the way of scientific or technical work.

  8. Enable a gradual/piecemeal transition of existing scripts rather than a “big bang” rewrite of everything at once.