▲ | voodooEntity 7 days ago | |||||||||||||||||||||||||||||||
Why is typeless considered something good? | ||||||||||||||||||||||||||||||||
▲ | anentropic 7 days ago | parent | next [-] | |||||||||||||||||||||||||||||||
You're going to read the configuration in a target programming language So if the config format has its own type system you then have to convert between config types and language types If the config type doesn't map exactly onto the target lang type you either ignore it and accept some values won't round-trip cleanly or without error, or you fall back to using strings (e.g. various possible integer type sizes, signed/unsigned etc, or decimal values via JSON) Not saying it's always the right choice, but I can see why having lowest common denominator stringly-typed values as the config format can be seen as a feature allowing you to define the type system that the config will be parsed under to suit each particular application | ||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||
▲ | ablob 7 days ago | parent | prev [-] | |||||||||||||||||||||||||||||||
I guess its because you can allow for custom data formats. You'll have to validate/parse the file anyways, and maybe having utc timestamps is worse than local date-time notation. Especially if the user is supposed to edit the file by hand. I know for sure I'd like "timeout: 1h6m10s" more than "timeout: 3970". So unless you want to support really specific datatypes just being typeless is better. Putting everything in double quotes to get a string, while spec-wise would be typed, is not enough when the backing data type is not going to be a string. So you might as well throw it away and let the program handle all type conversion. | ||||||||||||||||||||||||||||||||
|