SOML, el formato de configuración que evita que 'country: no' se convierta en 'false'

SOML – A Config Format for Humans

SOML (Sindre's Objectively Marvelous Language) es un nuevo formato de configuración que combina la comodidad de YAML con la estricta tipificación de JSON. Su regla clave: el tipo de un valor proviene de su sintaxis, nunca de su contenido. Así, '123' es string y 123 es int, sin ambigüedades. Incluye fechas, instantes y duraciones como valores nativos, comentarios en cualquier parte, strings literales sin escapes y una forma canónica para hashing. Es un borrador que busca comentarios.

En YAML, el contenido de un valor decide su tipo. En SOML, la sintaxis decide, así que 'no' es un string, 3.10 es un float y 2 es un int, en todas las implementaciones.
  1. layer8

    > lo que ves es lo que obtienes: […] '10.20' y 10.20 son un string y un float, exactamente como están escritos.

    Esto parece tanto poco especificado como incorrecto. Asumiendo un número de coma flotante IEEE 754 binario de precisión simple, 10.20 es en realidad 10.19999980926513671875. Con doble precisión, sería 10.199999999999999289457264239899814128875732421875. Así que lo que ves no es lo que obtienes, y además no está claro qué obtendrás exactamente.

    > El tipo de un valor proviene de su sintaxis, nunca de su contenido […] allowed-origins: [

    'https://example.com'

    'https://example.org'

    ]

    Esto parece URLs, pero son strings. ¿Y si tuvieras:

    > allowed-origins: [

    'httpș://example.com'

    'ħttps://example.org'

    ]

    Siguen siendo strings y por lo tanto están bien para el parser de SOML, pero probablemente no sea una configuración válida en términos de los tipos a nivel de aplicación de los valores. Que la sintaxis te diga los tipos es de utilidad limitada en cuanto el esquema de la aplicación tiene ideas más específicas sobre los tipos que el lenguaje de configuración.

  2. lightandlight

    Irónicamente, el proyecto parece generado por un LLM.

    No quiero leer la interpretación de Claude sobre por qué tu proyecto es importante. Quiero que me lo digas directamente.

  3. ActionHank

    Tengo que ser honesto: cada vez que hay una solución como esa que hace las cosas más "humanas", simplemente han eliminado la estructura / sintaxis.

    Supongo que para que no tengas que aprenderlas, y así cualquiera de la calle pueda editar los archivos, pero se romperá de una manera tan grave sin esas barandillas, normalmente de alguna forma poco obvia.

    Lo que nos lleva de vuelta a inventar alguna nueva cosa "humana", pero con más reglas implícitas, y el ciclo continúa.

  4. mofle

    Hola a todos. Soy el que está trabajando en esto (un humano). Todavía es pronto. Es algo que he querido desde hace muchos años, pero nunca tuve el tiempo para invertir en ello hasta ahora.

    Ya está impulsando el frontmatter de mi sitio web: https://github.com/sindresorhus/sindresorhus.github.com/blob...

  5. james_marks

    Por el título, pensé que era una especificación para configurar humanos. No sé muy bien qué significa eso, y sigo decepcionado por no saberlo.

Más de este día

2026-11-02