0

从Unix看文言文为什么短

 3 years ago
source link: https://blog.csdn.net/dog250/article/details/124524401
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

从Unix看文言文为什么短

dog250 于 2022-05-01 15:30:00 发布 3690

文言文为什么短?

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

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

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

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

再看一些文言词:

汝 子 若 君 尔 彼 其 或 所 何 安

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

  • 存储开销
    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. */
};

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

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

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

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

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

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK