数组语言与电子表格的诅咒

像 APL 和 Kap 这样的数组导向语言,被视为比电子表格更有原则的复杂数据处理替代方案,但它们密集的符号记法和自右向左求值也带来了严重的可用性和可学习性问题。评论者把 Excel 那种杂乱但易接近的“网格加公式”模型,与数组语言那种紧凑、类似数学的表达方式进行对比;前者如今还加入了 lambdas、Python 和数组公式,而后者虽然强大,却往往让非专家难以理解。许多人最终得出的结论是:电子表格确实存在严重的正确性和可维护性问题,但任何替代方案都必须在人体工学、熟悉度和现实工作流程上先满足普通用户。

Excel 作为编程环境

  • 若干评论强调,Excel 本身已经是一个“正经”的编程语言:它现在有 LAMBDA、可复用 lambda(在较新的 365 版本中)、自定义函数、VBA,甚至内嵌 Python。
  • 数组公式和“溢出”的动态数组被认为是在不需要复制粘贴公式的情况下对范围进行操作的重要改进。PowerQuery 也被提及为另一个强大的内置工具。
  • 有人认为,对真实用户来说,公式只是获取他们关心的数据的一种手段;数据,而不是代码,才是主要目标。

电子表格的编译与分析

  • 人们对把电子表格转换成传统语言(Python、C#、Java)很感兴趣,这样可以暴露单元格依赖并增加结构。
  • 现已有 Python 库能将 Excel 公式解释为有向无环图(DAG),并让你以编程方式操作“单元格”。据说实现这类功能很复杂,因为缺乏正式的公式规范,而且有大量边缘情况。
  • 研究和工具(例如 lint 检查、语义气味检测)已经存在,用来发现不一致的公式和可能的错误。

电子表格 UX 与可靠性

  • 人们反复提出,希望能清楚地区分公式单元格和输入单元格;现有的变通办法包括“显示公式”、追踪从属单元格、使用 ISFORMULA 的条件格式,以及手工配色约定。
  • 一些人认为默认高亮会分散对数据的阅读;另一些人则认为这会降低认知负担并减少 bug。
  • 电子表格被描述为极其强大,但也很脆弱:很容易被意外修改,难以在规模上审计,却仍然被广泛用于关键场景,尽管其中隐藏着许多错误。

数组语言 vs. 电子表格

  • 文章声称数组语言更符合电子表格用户的思维方式,这一点遭到质疑;许多人说,典型用户想到的是行/列,而不是抽象矩阵。
  • APL 风格数组语言的支持者强调其高密度、可组合性、消除循环,以及一旦学会习语之后带来的“思维工具”优势。
  • 批评者则关注可发现性、陡峭的学习曲线、陌生的字形,以及与主流 Excel 用户的契合度差;他们认为与其相比,像 Scheme、Lisp、Python 这样更啰嗦但更熟悉的语言反而更好。

符号记法、可读性与人体工学

  • 围绕类似 APL 的 Unicode 字形展开了长时间争论:支持者把它们比作数学记号,认为它们能提升模式识别;怀疑者则认为它们像代码高尔夫,难以输入、无法搜索,也不易接近。
  • 有人建议采用双重表示(符号 ↔ 拼写出的名称),或者让数组语言使用 ASCII/英文单词(例如 Uiua),以降低采用门槛。

Kap 本身

  • Kap 被介绍为一种受 APL 启发的数组语言,带有类似电子表格的 UI,面向 JVM/JS/原生环境。
  • 作者(在讨论串中)表示,目标不是取代普通用户的 Excel,而是给“电子表格级别”的用户提供一个更有原则的环境,并与 Excel 紧密集成(复制/粘贴、实时链接)。
  • 一些评论者认为展示的示例(找出元音不超过 2 个的最长单词)过于人工化,并希望看到更现实、更偏业务的演示。