Totally agree. The hardcoded isAdult: true
repeated in all #2 examples seems like a bug waiting to happen; that should be a property dynamically computed from the age during access time, not a static thing.
That's part of the problem. Different number of whitespaces indicate different nesting levels and the YAML spec does not enforce them. These two horrible YAMLs are valid and are not equivalent:
a:
b:
- c
- d
- e
f:
"ghi"
a:
b:
- c
- d
- e
f:
"ghi"
You can't say python's whitespace usage is as bad as yaml's. YAML mixes 2 and 4 spaces all the time. Python scripts don't run if you write this kind of crap.
And whitespaces is really just the tip of the iceberg of YAML problems...
yes, from my other comment
the only mistake of Python when it comes to whitespaces was allowing hard tabs
but that's easily fixed with an editor setting - on the other hand, unbalancing braces (and not realizing it) is too easy all the time.
YAML sucks because, among other things, indenting it is not obvious.
In contrast, the only mistake of Python when it comes to whitespaces was allowing hard tabs, which makes it too easy to mix them if your editor is not configured.
Improper indentation stands out more than missing or unbalanced braces and it's really not an issue to delimit code blocks.
False dichotomy. Optional braces are bad practice because they mislead the programmer that is adding an additional clause to the block.
This misleading behavior wouldn't happen in Python, as it would either be invalid syntax, or it would be part of the block.
Indentation problems are pretty obvious to the reader. Even more than missing or unbalanced braces.
I'm a native pt speaker and I had never thought of the word as slur. I remember it being commonly said on TV, music, and written on newspapers without this connotation. It was certainly more common than the preferred alternative "mestiço".
insert standards xkcd
what do you mean by one server per tool?
it ends when you become lunch
The misleading behavior is about what you expect to execute in the source code you're looking at vs what's actually executed.
What you describe is a logic ambiguity that can happen in any program / language.