4 ms·
Those who don't learn their history are doomed to find new and innovative ways to repeat history. If you're older than 40, you remember that there did exist an
by 0xbadcafebee 2y ago
Those who don't learn their history are doomed to find new and innovative ways to repeat history.
If you're older than 40, you remember that there did exist an aeon, long, long ago, when people did not use data object serialization formats as config files. When config files were written not to be easy to parse, but to make it easier for human beings to configure software. When nobody believed there was one single good way to do everything. When software was written not to aid computers, but to aid humans.
- wodenokoto 2y ago40 year old chiming in to say, what the hell are you talking about?
- throwaway150 2y ago+1 Yeah. I've got no idea what your parent comment is talking about. > When config files were written not to be easy to parse, but to make it easier for human beings to configure software. *eyes rolling*. All I can remember is the hundreds of hours I've spent trying to figure out how to configure something in Apache httpd, BIND, iptables, and god forbid, Sendmail!! Config files were written not to be easy to <anything>. There was no rhyme or reason. Every project had their own bespoke config. All from the whims and fancies of the devs of the project. Good thing that was all in the past and I had no job and no responsibilities. If software today made configuration like they did 40 years ago, I'd just give up!
- Magma7404 2y agoKEY=value, INI files?
- wodenokoto 2y agoThat was my initial thought too, but I just don't see how they fit the description.
- bonzini 2y ago> When config files were written not to be easy to parse, but to make it easier for human beings to configure software Config files have always been a variant of key-value or section-key-value, except that we used to have ad hoc (and probably buggy, inconsistent, incomplete or all three) rules for quoting; array items separated by a mix of spaces, commas or something else; comments (semicolon, percent, sharp) different for each program. Case sensitivity was also a crap shoot, sometimes different between keys and values. These days TOML (which more or less just works) just works. I have mixed feelings about YAML but certainly I would not swap it with endless variants of sendmail's m4 madness.
- bonzini 2y ago> These days TOML (which more or less just works) just works The second "just works" should have been "is almost always enough".
- 0xbadcafebee 2y agoThere's a universe of config files out there that are not key-value. Most exist for specific applications. It can be hard to configure specific functionality, so developers gave users a particular way to express it. Again with the TOML vs YAML? Ya'll can't come up with anything but another version of the same old thing? You don't need to do the same thing everyone else does with a tiny twist. Think outside the box. Expand your mind! Sure, Sendmail/M4 was a pain in the ass. Postfix was more along the lines of key-value. But Exim had its own rule format, and Qmail took simplicity to the extreme by creating a different file for all the different options. How about an X11 config file? Nginx? Puppet? Bind? Fstab? Vimrc? Rsyslog? Netrc? Cups? Pppd? Iptables? Apt? Cron? Sysctl? SSH? Just name a program on Linux that wasn't created in the last 15 years and it will have a different config file format, tailored to the users and use cases of that application. And none of them are JSON, YAML, or TOML. You don't have to make yours completely unique, but you also don't have to go "oh well, there's only 3 formats to choose from, I guess I will have to settle for one of those". DO YOUR OWN THING! It's your program! Don't be a slave to convention!
- bonzini 2y ago
- deleted 2y ago[deleted]