为什么纯文本仍然是我们拥有的最优秀的技术之一

Hacker News Top 新闻

摘要

一篇博客文章,论证纯文本凭借其简单性、可移植性、人类可读性,以及与 grep、sed 和 awk 等数十年历史的 Unix 工具链的无缝集成,仍然是计算领域中最持久、最值得信赖的技术之一。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/10/05 20:44

# 为什么纯文本仍然是我们拥有最好的技术之一 来源: https://deadparrotbbs.com/why-plain-text-is-still-one-of-the-best-technologies-we-have/ 我相信五十年后仍然可读的计算机文件格式并不多,但纯文本就是其中之一。这听起来可能像是勉强的赞美。文本文件无法内嵌电子表格、无法保留复杂的页面排版、无法运行演示文稿,也无法提供许多我们期望从现代应用中获得的便利。相反,它所做的是以计算机中最简单、最被广泛理解的形式之一来存储文本,而这种简洁性正是它经久不衰的重要原因。 ## 几乎不会出错 Unicode 标准将纯文本基本定义为一系列字符编码,不包含与富文本相关的附加格式信息。字体、颜色、排版等呈现细节属于别的范畴。 从用户的角度来看,重要的部分更为简单:文件本身就包含文本内容,不需要特定的应用程序来解读它。我可以在 Linux 上创建一个文本文件,复制到 Windows 机器上,放到 Web 服务器上,在终端中打开,用命令行工具搜索,用任意数量的程序进行编辑,或者发给使用完全不同系统的人。文件中几乎没有什么内容取决于它是如何创建的。 这与许多文档格式不同,在那些格式中,信息与能理解该格式的应用程序或应用程序系列紧密绑定。有时这并无大碍,有时格式有完善的文档且得到广泛支持。但在其他情况下,打开一个旧文件就意味着要寄希望于相应软件仍然存在。 纯文本几乎没有这样的包袱。 ## 我们一直在使用它是有原因的 纯文本并不是什么需要被拯救的被遗忘的技术。它仍然是计算基础架构的一部分。 源代码通常是文本。配置文件往往是文本。日志文件通常是文本。Unix 和 Linux 系统中到处都是文本文件。Web 背后的许多机制也以某种形式涉及文本。HTML、XML、JSON、CSS、Shell 脚本、编程语言、配置格式以及许多其他东西,都是围绕人类可以检查的字符构建的。 当然,这些是结构化的格式,而不是普通的散文。HTML 文档与一个 `.txt` 文件中的笔记并不相同。它们的相似之处在于,内容仍然是可见的。用一个基本的文本编辑器打开文件,即使你不完全理解其中的每一部分,你也能看到里面有什么。 这具有实际价值。当一个文本配置文件出问题时,我可以直接检查它、复制它、比较不同版本、搜索某个特定设置,或者进行备份,而不需要创建它的那个程序。能在其正常应用程序之外保持可读的数据,更容易进行故障排查和长期保存。 ## 纯文本与各种工具配合良好 纯文本最大的优势之一是,海量的工具已经知道如何处理它。 在类 Unix 系统中,一个文本文件可以交给 `grep`、`sed`、`awk`、`sort`、`diff` 以及许多其他已经存在数十年的实用工具。脚本可以处理成千上万个文件,而不需要假装自己是一个在菜单中点击的人。 这种优势不仅限于命令行。图形编辑器、编程环境、笔记应用、文件管理器、搜索工具、浏览器以及无数其他程序同样可以处理文本。真正的优势在于,信息并不紧密耦合于某一个界面。 现代软件往往采取相反的方式。应用程序可能会决定你的信息存放在哪里、如何组织、如何同步、如何搜索,以及允许哪些其他软件访问它。这些系统可以提供有用的功能,但它们也使应用程序在数据中变得越来越核心。 纯文本将更多这类选择留给用户自己。 ## Markdown 找到了一个有用的折中方案 纯文本最明显的弱点在于格式。标题、强调、链接、列表、引用和其他结构能让文档更易阅读,而基本的 `.txt` 文件并没有提供一种标准的方式来表达其中大多数结构。 Markdown 是一个务实的折中方案。它是一种用于结构化文档的纯文本格式,借鉴了电子邮件和 Usenet 中早已熟悉的惯例。它于 2004 年推出,如今它的各种变体已被用于软件文档、网站、笔记、书籍以及许多其他类型的写作。 它真正的优势在于,即使 Markdown 处理器消失了,源文件仍然有用。标题看起来还是像标题。项目符号列表看起来还是像列表。链接仍然同时包含其描述和目标地址。格式语法是可见的,而不是埋藏在二进制结构内部。 这是在不牺牲纯文本主要优势的前提下增加有用能力的一个好例子。渲染后的输出可能很方便,但源文件仍然是普通的文本。 ## 文本的耐久性出奇地好 持久性可能是纯文本最强有力的论据。 计算机历史充满了被废弃的文件格式和应用程序。有时恢复一份旧文档意味着要找到过时的软件、找到导入过滤器、运行模拟器,或者通过多个中间格式进行转换。 文本文件并非完全不受兼容性问题的影响。旧文件可能存在字符编码问题,而行尾符的差异多年来也让人头疼不已。但与试图从一个冷僻的专有格式中恢复信息相比,这些问题通常是可以管理的。 如果我找到一个旧文本文件,当前计算机上某个程序能打开它的概率非常高。即使排版粗糙或编码需要处理,文字内容本身通常是可以恢复的。 现代 Unicode 也使纯文本的能力远超旧有的"ASCII 文本只包含英文字母、数字和标点"的概念。今天的纯文本可以表示世界各地的文字体系和字符,同时保持同样的基本理念:文件包含的是编码后的字符,而不是专有的呈现格式。 简单并不一定意味着原始。 ## 纯文本也很容易掌握 随着软件向账号、云存储、同步服务和订阅制转变,纯文本的优势变得更加明显。 一个文本文件可以简单地存在于我电脑上的一个目录中。我可以将它与其余文件一起备份,随意选择同步方式,将它纳入版本控制,复制到另一台机器上,或者存储在我自己控制的服务器上。所有这些都不需要开发我所用编辑器的公司继续运营,或者继续维护某个服务。 这并不意味着每一个笔记服务或云应用都是坏主意。专用应用能提供纯文本本身难以轻松实现的功能。协作、数据库、内嵌媒体、复杂排版以及不同类型信息之间的关系,都有其合理的用途。 没有必要将所有类型的数据都强行塞进一个 `.txt` 文件中。有用的区分标准在于:额外的复杂性是解决了一个真实的问题,还是仅仅变成了另一个依赖。 当纯文本已经足够时,它会消除许多后来可能碍事的东西。 ## 局限性是真实存在的 纯文本并非解决一切问题的答案。 我不会想用文字来描述一张照片中每个像素,也不希望一份财务工作簿被变成一堆数字,让我需要手动重建所有公式。富文档之所以存在,是因为呈现方式和结构有时确实重要。 应用程序也提供了有用的抽象。数据库可以强制执行关系,而一个装满文本文件的目录做不到这一点。文字处理器可以处理那些手动复现起来相当繁琐的页面排版。专用软件的存在是有充分理由的。 问题不在于使用更丰富的工具。问题在于假设更丰富的工具总是更好,即使这份工作并不需要它们。在相当多的情况下,最简单的、足够胜任的表示方式仍然最持久。 ## 无聊是一种特性 纯文本是那种因为工作得太可靠而几乎让人感觉不到其存在的技术之一。它没有试图提高用户参与度的公司,没有账号要求,没有订阅等级,也没有一个会因商业模式改变而被停用的服务。 它是可移植的、可检查的、可搜索的、可脚本化的、易于备份的,而且对过时有极强的抵抗力。这些特质并不令人兴奋,但它们很有用,尤其是在长时间的跨度下。 在观察了数十年软件和文件格式的兴衰之后,我对那些功能更少却存活得更久的技术产生了相当的敬意。纯文本不能解决所有问题,也不应该解决所有问题。它所提供的是存储信息的一种稳定方式,而这种方式对周围的软件要求极低。 对于如此基本的东西来说,这已经是一项了不起的成就。

相似文章

纯文本文件面临风险

Lobsters Hottest

本文探讨了由于智能手机和LLM等技术转变导致纯文本文件使用量下降的问题,认为这可能使纯文本编辑生态系统受到侵蚀,因为软件开发者正日益依赖基于LLM的工作流程。

文本作为严肃的优化层(8分钟阅读)

TLDR AI

本文认为,文本优化——修改提示、上下文、记忆和检索——应被视为与权重优化并列的合法学习机制,突出了其样本效率和通过更新时计算进行扩展的能力。

传统Vi编辑器

Hacker News Top

一篇回顾传统Vi文本编辑器及其在Unix系统中经久不衰的相关性的文章。

好工具无形

Hacker News Top

一篇哲学博文,主张好工具应隐形且无摩擦,批评了将工具的缺陷视作有趣谜题而加以称颂的倾向。作者以 vim 和 Sublime 等文本编辑器为例,说明工具选择如何成为部落身份认同。