科学家重命名基因,以防 Microsoft Excel 将其误读为日期(2020)
Excel 自动转换与新开关
- Excel 历来会自动把“像基因名”的字符串(例如 SEPT2、MARCHF1)转换成日期或数字,破坏科学数据,尤其是在 CSV 来回导入导出时。
- 2023 年,Microsoft 在 Windows/macOS 上加入了按文件关闭自动数据转换的开关;有人认为这来得太晚,而且仍不完善(边缘情况、宏、旧版本)。
- 也有人认为 Excel 早就允许设置列类型(“设置单元格格式” → “文本”、导入文本向导、Power Query),所以问题在于用户工作流和认知。
隐式转换是更广泛的问题
- 一些评论把这看作 JavaScript、MySQL、YAML、PHP 等中常见的更大“隐式转换 / 类型安全”问题的一部分,有时与空指针一起被称为另一个“十亿美元错误”。
- 也有人反驳说,宽松的转换同样带来了巨大的生产力提升,而且人们之所以广泛选择它们,就是因为它们方便。
- 讨论还涉及:究竟应该把问题表述为“类型安全”(更可操作),还是笼统的“期望与现实不一致”。
为什么科学家仍在使用 Excel
- 许多人认为,科学家受限于机构 IT、许可证和标准化要求;即使想换,也无法自由选择替代工具。
- 有人说,大多数领域专家在这个用途上已经不用 Excel 了,但仍有少数人(再加上管理员、临床人员、编辑)会继续破坏共享数据。
- 支持重命名的观点认为:把少数基因名改掉,是一种低摩擦、可覆盖整个领域的缓解措施,比起让所有人重新培训并替换工具更现实。
CSV、格式与替代方案
- CSV 被批评为本质上含糊不清(没有模式、没有类型);Excel 双击打开 CSV 的行为会悄悄转换并丢弃前导零、加号以及像基因名一样的标识符。
- 解决办法包括:先把列预格式化为文本、使用导入向导、小宏,或者在 CSV 中把文本编码成 Excel 公式(
="Data")。 - 提到的替代方案包括:LibreOffice(同样会自动转换,但更慢、兼容性更差)、带有假想
.xljson扩展名的 JSON、数据库、Jupyter/R/Python、Emacs org-mode。
责任与预期
- 有人把责任归咎于科学家没有掌握工具;也有人认为这要求不合理,因为 Excel 的默认行为隐藏且不断变化。
- 多条评论强调,这不仅是技术问题,也是社会/组织问题(IT 守门人、厂商锁定、用户培训)。