• 从Unix看文言文为什么短


    文言文为什么短?

    我是搞网络的工人,略懂文字,从Unix视角谈。

    Unix/Linux程序很像文言文,列举一些:

    ls, pwd, sed, awk, ab, bc, cd, cc, cat, dd, df, ex, fg, ip
    
    • 1

    不是干这一行的基本不明白上面这些命令是干什么的。

    再看一些文言词:

    汝 子 若 君 尔 彼 其 或 所 何 安
    
    • 1

    是不是很像。这里面有什么关联?

    • 存储开销
      Unix早期磁盘磁带昂贵,古代龟甲竹简丝帛纸张昂贵,信息越短越好。

    • 传输开销
      Unix早期直到1990年代,网络带宽小且昂贵,古代书信运输手段有限且昂贵,信息越短越好。

    • 持久化开销(写开销)
      Unix早期键盘简陋,分时使用终端,需快速输入,古代识字写字成本高,会挤兑农时,信息越短越好。

    短信息实际是一种压缩,虽有利于存储,传输和持久化,但解压缩成本也高,无论Unix命令还是文言文,都需要时间来记忆,会就会,不会就不会,Unix尚有manual,文言文就只能靠昂贵的教育了。

    无论是Unix短名字,还是文言文,随着时间的发展都成了一种文化,虽然我们现在依然会说ipt,但大多数人还是喜欢iptables这个名字,同理,我们也不会再满嘴之乎者也。

    时至当代,存储开销,传输开销,持久化开销已不再是问题,Linux程序逐渐以system替换了sys,以network替换了net。

    然而上述只是一条线,还有另一条线。

    文言文对应的有口语白话文,Unix程序对应的有源代码,或者叫编程语言写的程序。

    持久化存储的信息需压缩至简,这是受到一些限制不得已而为之,但如果日常交流也这般,非但不会有收益,还会平添开销,你先跟对方说个谜语,再自己解释这个谜语,岂不是冗余?

    因此在无需存储,无需传输的直接交流场景,就是口语白话文了。

    看一下sed源码中的一处定义:

    /* Sed operates a line at a time. */
    struct line
    {
      char *text;                   /* Pointer to line allocated by malloc. */
      int length;                   /* Length of text. */
      int alloc;                    /* Allocated space for text. */
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    虽然很难理解sed是stream editor的缩写,但看它的源码却无任何障碍,源码不光是编译成二进制,更重要是它还是工人之间交流的媒介。如果你写的源码不能表意,交流成本就会变高,甚至不得不重写。

    与文言文相对的白话也是为了交流,它重点考虑的是对方听懂。简单讲就是要直白。

    直白的源代码,直白的口语,最大的优势是它们可以最小成本地适应变化。

    编程语言不断变化,不断有新的编程语言问世,日常口语也根据地域,时间发生变化,直白的语言不需编解码,不需压缩解压缩,因此应对变化更灵活。

    编程语言一直在演变,但二进制却没变,我们的口语也一直在演变,但写出来的文字却很稳定,这便是。

    秦始皇书同文,并没有要求语同言,不是因为他做不到,而是他故意的。

    写是一回事,说是另一回事,“写”是为了跨时空交流的,必须考虑存储,传输,持久化成本,“说”是为了当下交流的,是否直白几乎是唯一的考量。

    浙江温州皮鞋湿,下雨进水不会胖。

  • 相关阅读:
    王道3.1 顺序栈以及链式栈
    76基于matlab的免疫算法求解配送中心选址问题,根据配送地址确定最佳配送中心地址位置。
    table组件,前端如何使用table组件,打印数组数据,后端传输的数据应该如何打印
    Samba配置文件举例
    一个完整的flutter组件开发的过程
    .Net单元测试xUnit和集成测试指南(1)
    RecyclerView的好朋友 — SnapHelpter
    使用DownThemAll批量下载网站上的文件
    Springboot系列(三十二):Springboot集成 kafka(环境搭建+演示)|超级详细,建议收藏
    [LeetCode周赛复盘] 第 320 场周赛20221120
  • 原文地址:https://blog.csdn.net/dog250/article/details/124524401