The vast (VAST) majority of the "YAML sucks" examples are solved just by quoting all your weird literals. YAML is definitely annoying at times (list of maps get weird in a hurry, for example, and significant whitespace almost always bites you sooner or later) but these kinds of articles seem disingenuous at best.
> The vast (VAST) majority of the "YAML sucks" examples are solved just by quoting all your weird literals.
But none of the examples you see do that, and your tools won't do that. The whole YAML ecosystem nudges you into writing your stuff unquoted, and it works most of the time and breaks just often enough to trip you up in production.
Then there's docstrings which have special language support, textwrap.dedent, type annotation strings, several different interpolating systems and most people don't even know some of them.
YAMLs strings are overblown and are just the result of having a few modifiers. Of all the things to complain about having ways to make chucks of text readable is the weirdest one. Don't even dare look at how many weird strings bash has.
2. I think bash is a bad tool and we just can't get rid of it because it's ubiquitous and people are used to it. Stockholm syndrome. I wish something like Oil shell or Nu shell would take over, ideally a shell which passes objects, not strings.
I love YSH! But that's an odd take since it's heavily inspired by Python and also has a bunch of string types and 5 different types (i did have to look that up) of string interpolation. Combine that with OSH and you have a language ecosystem that has more weirdness than Bash and Python combined.
* three string syntaxes (regular, formatted, and raw) plus byte arrays.
* single vs double quotes, which are insignificant, other than that you don't need to escape the containing literal quote type.
* inline vs multiline.
These all compose in a predictable way.
If you want to be a jerk, you can multiply 4 * 2 * 2 and say "ZOMG 16 string types!!", but that's about as fair as saying that having positive/negative, octal/hex/dec, int/float, and standard/scientific means that a language has 24 numerical types.
They are actually really useful when you want multi-line formatted strings without indentation and had to be made official when people wanted to take them away.
> If you want to be a jerk, you can multiply 4 * 2 * 2 and say "ZOMG 16 string types!!"
And now you understand how they calculated the number of string types in YAML.