YAML really is the gift that keeps on giving.
@mhoye This is absolutely reasonable behavior - if you want a literal value to be interpreted as a string, enclose it in quotes.
The weakness I see here is inconsistent automatic type identification built into the file format standard. The defense is precision of expression - explicitly state information you know. If you know a value is a string, put it in quotes.
One of my biggest frustrations in computing is not being able to explicitly specify what I know to avoid the language, compiler, etc. guessing wrong. If you know something's a string, an integer, a float, a boolean - specify that explicitly and don't make the computer do extra work and give it an opportunity to disappoint you by guessing wrong.
I know, this violates the rule of modern computing which is that any hack that lets you crap out more code faster is an unalloyed good. How much time was saved leaving off quotes compared to the cost of rediscovering scientific notation?
@arclight I think it's a significant missed opportunity that compilers generally can't or don't modify the text of the code they're working on. If you're going to infer some types at compile time, why put off finding out if you guessed right until you're in production? Why not just push that guess back into the text of the program instead?