Show HN: Valores Separados por Comas (CSV) a Valores Separados por Unicode (USV)
Resumen de la propuesta de USV
- USV (Unicode Separated Values) es un formato de texto similar a CSV que usa símbolos Unicode de “control picture” como separadores:
- Separadores de unidad, registro, grupo y archivo (␟ ␞ ␝ ␜).
- Escape y otros modificadores (␛, ␗, ␖).
- Beneficios previstos: menos escapes que CSV, jerarquía multinivel explícita (unidad/registro/grupo/archivo) y sintaxis bien definida con un borrador de la IETF y un tipo MIME propuesto.
*Comparación con CSV y formatos SV existentes
- Muchos consideran que CSV es “suficientemente bueno”, con un enorme ecosistema de soporte (bases de datos, Excel, herramientas Unix, bibliotecas).
- Quejas sobre CSV:
- “Estándar” inconsistente y reglas de escape inconsistentes.
- Problemas de locale (separadores coma vs. punto y coma, comas decimales).
- Los saltos de línea permitidos dentro de los campos complican el análisis.
- Contraargumento: estos son sobre todo problemas de herramientas/abuso; la facilidad de edición manual de CSV y su ubicuidad compensan sus defectos.
- Varios señalan que ya existen ASV (ASCII separators 0x1C–0x1F) y resuelven muchos problemas de escape, pero carecen de soporte en editores.
Control pictures de Unicode vs. caracteres de control ASCII
- USV usa los glifos visibles (U+241C–241F), no los códigos de control reales (U+001C–001F).
- Los defensores dicen que los editores y el copiar/pegar funcionan de forma más fiable con símbolos visibles y de ancho de letra.
- Los críticos:
- Estos símbolos están pensados para representar caracteres de control, no para ser esos caracteres; eso difumina la semántica.
- Los delimitadores de varios bytes requieren decodificación antes de separar.
- Los símbolos son pequeños y difíciles de distinguir visualmente; muchos usuarios necesitarían fuentes personalizadas o ajustes del editor igualmente.
- Algunos consideran que la equivalencia visual con ASV renderizado es un fallo de diseño “demoledor”.
Legibilidad, edición y accesibilidad
- Hay desacuerdo sobre si USV es realmente amigable para humanos:
- Algunos informan que editores convencionales (Emacs, etc.) muestran los ejemplos bien; otros necesitan hacer zoom mucho.
- Los saltos de línea opcionales en la especificación al principio generaban archivos largos de una sola línea, rompiendo herramientas basadas en líneas; más tarde el autor actualizó el conversor para insertar saltos de línea.
- Accesibilidad:
- Se afirma que los lectores de pantalla manejan bien USV; otros prueban lectores que no anuncian los símbolos.
Escape, SYN y complejidad del formato
- Existe un mecanismo de escape; los críticos sostienen que eso socava la idea de que “no se necesita escape” y reproduce la complejidad de CSV.
- Preocupaciones sobre:
- Reglas de escape dependientes de la clase.
- Modificadores adicionales como SYN heartbeat e “ignore next char”, que crean múltiples codificaciones a nivel de byte para el mismo documento lógico y complican checksums y parsers.
- Tras recibir comentarios, el autor indica que SYN se eliminará y la documentación se actualizará.
Adopción, estandarización y practicidad
- Muchos dudan de que USV gane tracción sin soporte de Excel/LibreOffice y de bibliotecas principales.
- Algunos lo ven como “otro estándar” según el famoso cómic de XKCD; la sugerencia es usar en su lugar:
- CSV bien especificado (RFC 4180), TSV, JSON/JSONLines, o formatos binarios/tabulares tipados (Parquet, Avro, SQLite).
- Los defensores argumentan que editores y bibliotecas podrían evolucionar, pero los críticos no ven una ventaja convincente frente a formatos de texto o binarios ya existentes.
Alternativas e ideas relacionadas
- Se mencionan alternativas: ASV, RSV (usando bytes UTF‑8 inválidos como delimitadores), SML, JSONLines, COPY TSV al estilo Postgres, valores separados por emoji y varios esquemas personalizados.
- Varios sostienen que mejorar el soporte de separadores ASCII y modos de tabla mejores en editores sería un camino más limpio que introducir USV.