读完了 The UNIX Haters Handbook,好奇*NIX 的优势到底是什么?

2016-04-07 15:34:34 +08:00
 iheshix


刚刚读完《 The UNIX Haters Handbook 》。怎么说呢,虽然知道作者们是“爱之切恨之深”,但是还是很好奇,既然*NIX 有这么多的缺陷,为何还一直都有那么多人在用?难道是因为 CS 的同学都忙着写代码赚钱?忙着做科研?忙着用电脑完成其它工作?而并没有太在意电脑这个工具本身是否好用?又或者是,大家的哲学就是“够用就好,即使麻烦些,能忍就算了”?

读完这本书,发现电脑行业深深各种坑啊。其实不光*NIX , Windows 也是背负着一身的历史问题在往前走。这个世界就是如此不完美,不过大家为什么不花点时间去修复这些问题呢?从根本上解决这些问题呢?习惯的力量太大?*NIX 是如何存活到现在的?

PS :突然就想起了当年, 199X 年,对中国用户来说,和 IBM 其名的,一家叫 AST 的公司。当时 AST 的 486 、 586 ,也是很贵的,买不起的。
7397 次点击
所在节点    Linux
63 条回复
hooluupog
2016-04-08 00:24:08 +08:00
unix haters book 上面罗列的很多问题现在的 unix 已经修复,在 linux 上面也早已不复存在。
看完这本书推荐楼主再看看《 unix 编程艺术》这本书,这本书里面 windows , mac OS 甚至在当时经典而超前的 BeOS 都有涉及,看完就知道 unix 怎么走到今天的。比如有的东西(x window system)如今显得落后了,但其中的思想还是很经典的。 unix 的流行就像病毒那样流行或者说是传染起来的,第一个病毒也是 unix hacker 搞出来的( hacker 以前是编程厉害的大牛的称谓,现在和骇客,黑客这些联系起来了)。

另外还有一本书“集市和大教堂”,很精准的阐释了商业公司运作和开源社区的模式的区别。
其实你仔细观察下这几年开源社区的蓬勃发展,各种开源软件的出现,以及 github 的火热,和当年那些 unix hackers 非常相似,火热的造轮子,然后发布出去被膜拜,接着大家一起造,形成一个个社区,只不过当时没有 github ,主要是在邮件列表上进行,很多经典的大辩论都可以在归档的邮件列表中查到(比如 RSM ,比如 linus 和 minix 之父的辩论等等)。 unix 下面一大堆经典的工具链就是这么不断的造出来并延续至今的。

要说它的优势是什么?为什么会流行?我觉得最大的优势就是自由,任何厉害的人可以在上面证明自己,信誉驱动,这是 geek 和 hackers 们的天堂。而早期的开荒者都是 hackers ,那时候还不会考虑什么客户啦,用户体验啦之类的东西。
当然这个传统和风气沿袭至今,也导致 linux 桌面一直很难有一个统一的好用的桌面系统出来,因为文化差异太大。

楼主说的完美的问题。
计算机科学到底算不算科学?软件工程到底算不算工程?如果算科学那么对比经典物理学如何呢?如果算工程,那么可靠性如何?为何无法避免 bug ?软件分分秒秒都在出 bug ,建造的房子如果也这么出 bug 那早就出人命了。所以,你想找一个完美的软件系统是不可能的,根本上也是解决不了的。你越追求完美,它越没有实用价值。

" cp 、 mv 、 rm ,都是因为当初是电传终端,为了提高效率而采用的缩写,为什么就没有某个发行版本,把这些改成大家能够理解的命令? copy 、 move 、 remove 不也挺好么? "
=======================================
不是为了提高效率而缩写,而是本身就是这个命名风格, unix/linux 系的东西都是这种命名风格,沿用至今。对比下 linux api 和 windows 的 api 的风格差异你会一目了然。说不上谁好谁坏。现在有 IDE 补全还好说,以前那种命令行环境下,屏幕又小,敲那么多字母要敲死人的。以前的键盘按键分布也和现在的 wasd 键盘有差别,所以有历史遗传的因素在里面。为什么不改过来?因为没看到足够的好处或者非改不可的必要。

至于有了鼠标,图形界面是不是命令行工具就不需要了?肯定不是。有些事情命令行还是比点鼠标要快的,而且使用起来更灵活。有些安全性较高的地方,后台是不允许有图形环境的, bug 多,潜在的安全漏洞也多。
iheshix
2016-04-08 06:11:37 +08:00
@yixiang 嗯,感谢你的答复,不过我也写程序,我能理解*NIX 的方便之处,只是回想起当初我自己学的时候,也是一个坑一个坑踩过来的。其实就是感觉*NIX 对小白用户太不友好。电脑的话,普通人也应该可以享受嘛。但是*NIX ,对于普通人,就谈不上享受了。
iheshix
2016-04-08 06:16:20 +08:00
@qcts33 感谢你的回复,对,其实我就是想了解这里面的设计理念和设计原则。 Worse is better 嘛,你可以说这种原则是存在的,也可以说它是假的。我感觉它更像是那种理论与现实的选择。就是说,不求多完美,但只要能帮我高效完成任务就行。这是一种典型的,创造者角度的思考方式,因为它并没有照顾到别人的使用体验。也许这也是因为 UE, UX 都是后面才发展起来的吧。
iheshix
2016-04-08 06:16:49 +08:00
@levn 是的。
iheshix
2016-04-08 06:31:49 +08:00
@hooluupog 非常感谢!你的这个答案比较接近于我期望看到的答案。我觉得讲的很有道理,您提到的两本书,我会接下来就去看看。

确实,既有历史的因素在里面,也有这群人的个性因素在里面。我现在也在写代码,但更多的,我在做一些设计方面的工作。平时我就很好奇有些时候开发人员和设计人员确实有思维理解上的鸿沟。一些对设计人员重要的,开发人员觉得不重要,反之亦然。也许真的是看问题的角度和出发点就完全不一样吧。

至于计算机科学和软件工程的问题。这又是一个可以扯上好几天的话题。就像一些书中说过的,肯定不敢让写代码的同学来造汽车。那开出去不到半公里汽车就要散架。我的感觉是,软件工程,更接近于一种实用工程学,但它有比较神奇的,没有像建筑学那样有明确的标准和体系结构。代码的执行效率,写代码之前算个复杂度,优化下算法这种,基本靠自觉。都不是强行标准。计算机科学的范围就更大了,也许真的是因为这门学科还太年轻,没有足够的经验吧。

和大家一起聊了这么多,还是感觉很有收获。接下来我就继续读书,看看能不能稍微再进一步了解下。多谢!
qian19876025
2016-04-08 07:50:32 +08:00
加入黑名单 尽发些无聊问题 别人有需求就使用呗
mengzhuo
2016-04-08 07:55:52 +08:00
unix 系最大的特点是一个程序只干一件事!不会英语寸步难行,会英语的跟飞的一样。
windows 最大的特点是,一个程序啥都能干!

举个最近出的例子,一个同事要统计特定文本中特定错误代码,你猜猜他在 windows 上花了多少时间?
你再猜猜我用 ack | awk | sed | sort | uniq 组合花了多长时间?
iheshix
2016-04-08 08:24:02 +08:00
@mengzhuo 说的是呢!
Neveroldmilk
2016-04-08 08:29:27 +08:00
@mengzhuo 用管道命令吊打 Windows ,太不厚道了吧。其实 windows 做个脚本也行,但是代码量就跟 python 差不多了。
iheshix
2016-04-08 08:32:10 +08:00
@Neveroldmilk 这也算是一种对开发人员友好吧。:-D
qnnnnez
2016-04-08 08:38:50 +08:00
*NIX 就是原则太多了
mengzhuo
2016-04-08 08:53:57 +08:00
@iheshix 不算对开发人员友好 是对英语母语用户友好

如果这段脚本用中文说你就知道多友好了
找出 | 取出某列 | 替换 | 排序 | 去重
iheshix
2016-04-08 09:08:16 +08:00
@mengzhuo 这个仔细想想也不算是个槽点。毕竟计算机本身还是基于英文的嘛。而且你看,即使换成中文了,其语义还是清晰通畅的,相对于 Windows ,可能其中每一个单词都需要写好几行脚本来实现。当然,说不定在这个世界某个地方,有个作者就写了一个 WinForm 的有窗体的应用,点几下鼠标就能达到同样的目的。
也许我们只能说,*NIX 上的针对这种文本处理的原子操作,因为历史原因,比较丰富吧。

不管怎样,仅仅看语义和逻辑的话,确实很容易理解啊。也算是*NIX 的一种好吧。
oska874
2016-04-08 09:34:30 +08:00
应该再读读 The Windows Haters Handbook , The Mac Haters Handbook
searene
2016-04-08 09:40:26 +08:00
我只用过 Linux 系列的,感觉上面最缺少的还是各种专业软件(计算机领域除外),比如做图形的、音乐的等等,比起 Windows 或者 Mac 上还是差了好多。界面也是个问题,现在用 i3wm 有时候会崩溃,估计还是不太成熟。虽然如此,编程却离不开它,因为各种编程工具很好很强大,软件包管理工具也很方便。最近在用 arch linux , wiki 写的非常详细,遇到的问题大部分都可以找到解决方案,可以很方便的定制系统,这些都是 windows 不能比的。
iheshix
2016-04-08 09:48:33 +08:00
@oska874 哈哈哈!如果有的话。希望微软自己出一本 The Windows Haters Handbook ,那就和这本 The UNIX Haters Handbook 一样权威有效了。
iheshix
2016-04-08 09:56:47 +08:00
@searene 恩啊。不过情况也在慢慢改善。 Linux 在高端的一些行业,还是挺有市场的。梦工厂也是用 Linux 集群来渲染动画的吧?
iheshix
2016-04-08 10:11:40 +08:00
基本结贴啦。暂时先这样吧。
rainysia
2016-04-08 13:30:41 +08:00








是时候出一本 *nix 从入门到入院了
iheshix
2016-04-08 13:34:14 +08:00
哈哈哈
@rainysia

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/269268

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX