5 ms·
I've used YAML as the format for a config file, and I certainly regret that choice. Trying to explain to someone that doesn't know YAML how to edit it without s
by fabian2k 7y ago
I've used YAML as the format for a config file, and I certainly regret that choice. Trying to explain to someone that doesn't know YAML how to edit it without setting them up for failure is quite annoying. There are too many non-obvious ways to screw up, like forgetting the space after the colon or of course bad indentation.
- ljm 7y agoI’m not keen on how so many tools and services opt for YAML by default, either. Both JSON and YAML are a nightmare to handle once you’ve got 3000 line files and several layers of nesting. CI would be a lot nicer to use if it didn’t rely on a single YAML file to work. And if you want to switch, suddenly you had a build step to convert back to YAML.
- js2 7y agoI keep my YAML CI files as minimal as possible by putting the logic into a Makefile and/or shell scripts and just have the YAML invoke that.
- booleandilemma 7y agoGiving meaning to whitespace causes so many headaches and yet people still embrace Python, for some reason. I don’t understand it.
- whatshisface 7y agoYour editor makes a world of difference here. Since you shouldn't be writing brace-language code without indents anyways, the biggest issue remaining is mixing tabs and spaces. Gedit makes this a big pain with it's default config (it doesn't even auto-indent) but Atom and IDLE handle it well.
- kevin_thibedeau 7y agoPython 3 rejects mixed whitespace so the problem will be caught quickly.
- userbinator 7y agoCode you write yourself is not usually the source of problems with significant whitespace; it's situations like posting code on websites and discussing it where code in a whitespace-significant language becomes next-to-useless when leading whitespace is stripped, whereas code in any other language will still survive and then easily be autoformatted without changing its meaning.
- pshc 7y agoCan’t remember the last time this has actually happened to me. In what websites are people posting code without code block formatting support? Like, instant messengers?
- contradictioned 7y agoFunfact, even Facebook, Whatsapp, and Telegram support preformatted text in triple backticks.
- icebraining 7y agoIf I were to use such a shitty website, I'd rather make a pastebin and link to it, instead of forcing every reader to reformat it themselves.
- vgetr 7y agoI’ve heard this argument in a lot of contexts, and it has always struck me as saying, “if hitting yourself with this bat hurts, try wrapping this towel around it and maybe it will hurt less.”
- bobbylarrybobby 7y agoIf I pinky promise to indent my code anyway, then why does it matter whether I also have braces or not? In fact, braces allow me to press one button in my editor and get the indentation absolutely perfect, without affecting semantics. Braces also allow for easily copying and pasting blocks of code because the braces delimit the semantics of the copied text. Because your code is already indented, with white space indentation you have to check that a) you pasted the first line at the right indentation level b) every subsequent line is also at the right level relative to the first line. No small feat.
- otabdeveloper4 7y ago> If I pinky promise to indent my code anyway, then why does it matter whether I also have braces or not? Without braces copy-pasting becomes a context-sensitive headache. That's poor usability.
- codetrotter 7y agoAdmittedly I’ve been writing code in Python for many years now but, even from the start I never had a problem with the significance of whitespace. Quite the opposite. I like to format my code nicely anyways (or rather, mostly my editor does it for me because I’ve asked it to do so). I indent with two spaces usually, regardless of language. And have my editors configured to insert two spaces when I press tab. JavaScript, Rust, Python, C. Same difference, in terms of how I use whitespace.
- ben509 7y agoThe main headaches are due to people either wanting to copy and paste code from various sites, or wanting to write really deeply nested code. If you're writing well structured, original code in Python, it's generally cleaner and easier than other languages because the syntax avoids ambiguities that other languages have.
- DangitBobby 7y agoThe difference in my experience is that once you know what's wrong with your whitespaces in Python, you're out of the woods. The interpreter is your friend from that point onward. YAML parsers, on the other hand, give you these really strange errors that are pretty difficult to understand, and it doesn't end with whitespaces.
- h1d 7y agoThere are quite a few comments saying they don't like python even from 10+ year users. Language becomes popular largely through library ecosystem and resources around it, not just how the language looks. I think Google embracing it had a good role in acquiring mind shares. https://news.ycombinator.com/item?id=20672051 https://news.ycombinator.com/item?id=20672051
- bastardoperator 7y agoYAML is easier to read and write. That's the benefit. It's also always going to be smaller than anything JSON or XML. Maybe it's not as correct, maybe some people don't like it, I don't really mind it. I don't see it really going anywhere soon either considering Kubernetes and the lack of alternatives in widespread usage. I've never had someone that needed extensive help understanding YAML and that's besides reviewing work for people just coming up to speed. Find me an IDE or editor that doesn't have YAML support. Also, YAML supports comments so if you have pitfalls people need to know about you can document them inline. Your argument is people who don't know things might screw stuff up. Well Yeah! This applies to everything.
- jtdev 7y ago>”YAML is easier to read and write.” You may be surprised to find that there’s significant disagreement on that point.
- bastardoperator 7y agoNot surprised at all, people on the internet complain about everything. When they build something better I'll be the first to jump ship.
- geocar 7y ago> When they build something better I'll be the first to jump ship. Will you though? With learning a tool (almost any tool), its value increases with more use until you find a local maximum. The amount of effort to switch to something with a higher maximum at that point will definitely be considered by most people as part of the cost of that competitor. It is very hard to write off years of your life on anything. When was the last time you did this? It could take a few months at a minimum, just to see if you can understand it. Then, perhaps years of building things another way just to get good at it. Would you really give a few years of your life in making configuration suck less forever? If you're serious, I have a potential solution: We don't have configuration files (or indention) or parsing problems, and users aren't the slightest bit confused on how to configure our applications (although they are often surprised if they've ever had to use a configuration file!). The downside is it's going to require a lot of re-learning on your part, and there's little I can do to make it any easier for you.
- h1d 7y agoYAML is so bad for human writing. Everytime I write ansible tasks, I get confused with indentation and how to do arrays etc. JSON and YAML is frankly a generation behind compared to TOML or JSON5.