top | item 43095939

TOML [Tom's Obvious Minimal Language]

10 points| wanderer2323 | 1 year ago |toml.io

12 comments

order

b4ckup|1 year ago

I tried to use toml in as config format for the app I am building at my day job. I ditched it for json because it's representation is not unambiguous, meaning the same object tree has many many different valid representations in toml. This makes it really hard to implement roundtripping of the config string to object tree and then back to config string without losing the specific toml representation chosen by the config author and no library that I've encountered supports it properly. For me this was a very important use case (config migrations). I implemented my own json parser that preserves json formatting and comments in half a day. Maybe json is harder to read and write but imo it's simplicity is a good feature.

ciupicri|1 year ago

I think you meant JSON5 since JSON doesn't have comments.

LorenDB|1 year ago

Required reading for anybody considering using TOML for something: https://github.com/madmurphy/libconfini/wiki/An-INI-critique...

motorest|1 year ago

This critique starts off with little to no credibility, with statements such as this:

> Although it claims to be a human-friendly language, TOML constitutes a step back into something more robotic and primitive when compared to INI files and libconfini's approach.

INI files are a complete, utter mess to the point it's even hard to argue they exist as a specified format. TOML's value proposition is specifying a INI-like language.

The critique is an exercise in myopic nitpicking, and confuses specification with implementation. The doc even whines because strings and numbers are different types. Go figure. The whole document is a textbook example of "not even wrong'. A waste if time.

By the way, TOML is supported as the config language of tools such as Rust's Cargo and Cloudflare's Wrangler. It's funny how things actually work in the real world in spite of these documents.

misnome|1 year ago

I don’t think toml is by any means a perfect format but that critique seems almost farcical and self-contradictory in many of its’ complaints. It seems to explicitly want all of the ambiguity and confusion that we’ve spent decades repeatedly failing to learn again and again.

I am not sure it isn’t a well-written parody of a rant.

nickm12|1 year ago

I agree that this is probably a parody, but maybe it's the ravings of someone not right in the head. As a parody, it's not laugh out loud funny, but well-done in the sense that it sits on the border of believably.

cirwin|1 year ago

This inspired me to write https://conl.dev

I agree with his premise that TOML is not user friendly, but INI is not useful enough. CONL attempts to land in the gap

AstroJetson|1 year ago

I still like using Lua as my .ini file data source. I can use a wide range of inputs from numbers to tables. Parsing the file is easy, and getting it into another program is less work that trying to add a parser.