你在一个盒子里。

主要观点:工具常同时想得过大和过小,新语言声称有优势导致用户因切换成本而持续使用,进而工具不断增长直至停滞,有两种方式可逃离此陷阱,一是限制增长(不受欢迎),二是降低切换成本,包括保持向后兼容、标准化、FFI(通过外国函数接口通信较难)、IPC(通过进程间通信可自由组合工具但接口无结构)等,各方式都有优缺点,程序如同监狱,数据被困其中,不同语言和工具虽有尝试但仍受局限,下一篇将讨论如何逃离此“盒子”。

关键信息:

  • 切换成本与工具增长:工具承诺能做一切但用户因切换成本持续使用,导致工具过度增长。
  • 互操作性方式:限制增长不受欢迎,降低切换成本有多种方式,如保持向后兼容、标准化等。
  • Unix shells:传统通过shell和IPC自由组合程序,但数据流向为DAG,接口无结构。
  • 结构化IPC:powershell和nushell扩展传统Unix管道,但存在互操作性等限制。
  • RPC:通过建立带结构信息的通信实现良好互操作性,但添加到程序较复杂。
  • 程序如监狱:数据被困在程序“盒子”中,各语言和工具虽有尝试但仍受局限。

重要细节:

  • 语言方面,如ripgrep与GNU grep语法相似,多数编译语言保留花括号等。
  • RPC有前后兼容框架,不同语言互操作只需写绑定。
  • Unix shell管道中程序以多种方式自由交互,如传递输出等。
  • powershell基于.NET运行时,nushell有自身特点和限制。
  • 不同语言和工具在互操作性等方面的具体情况及面临的问题,如CUDA二进制格式未记录等。
阅读 18
0 条评论