YAML: The Configuration File from Hell?

2025-09-23

This article is a rant against the complexity of YAML configuration files, arguing that its purported 'human-friendliness' hides numerous pitfalls. The author uses several examples to illustrate inconsistencies between YAML versions, unpredictable parsing results, and potential security risks, such as issues with sexagesimal numbers, tags, and boolean parsing. The author recommends simpler alternatives like TOML or generating JSON to avoid YAML's problems, suggesting more powerful options like Nix and Python for complex configurations.

Read more
Development

RCL's Design Dilemma: The Challenge of Floats

2025-03-04

The author faced a challenge while building the new configuration language RCL: how to handle floating-point numbers. As a superset of JSON, RCL needs to balance JSON semantics, the type system, and code readability. The article delves into the trade-offs between integer and floating-point types, such as whether to distinguish between integer and floating-point types, and how to handle numerical equality and type conversion. Ultimately, the author chose a single numeric type, "Number," to simplify language design and improve user experience. This solution is implemented in RCL 0.8.0.

Read more