免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2651 | 回复: 3
打印 上一主题 下一主题

[Linux资讯] 编程珠玑番外篇之番外篇-N 答 UNIX 痛恨者王垠 (March 3, 2013) [复制链接]

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-05 10:13 |只看该作者 |倒序浏览
本帖最后由 ulovko 于 2013-03-07 09:10 编辑

王垠最近的一篇文章中,提出了很多有趣的观点。其中最核心的一点,就是 *NIX 系统的设计哲学非常糟糕,而 Windows 系统才是真正为开发者设计的系统。凡是涉及到哲学层面的争论,最后都是以谁也说服不了谁收场。我相信王垠有足够的理由来证明 UNIX 设计哲学的糟糕,但遗憾的是,他的文章并没有表现出这一点。我摘抄一些论点并作答复。

Unix 的 shell,命令,配置方式,图形界面,都是非常糟糕的。每一个新版本的 Ubuntu 都会在图形界面的设计上出现新的错误,让你感觉历史怎么会倒退。但是这只是表面现象。Linux 的图形界面(X window)在本质上几乎是不可治愈的恶疾。

以现在的眼光看,X Windows 是一个设计过于繁复的系统。实际上,20年前出版的 The Unix Haters Handbook 里,就有专门的一章论述为什么 X Window 的 client-server 架构是糟糕的。可是,这和 Ubuntu 的设计演化之间似乎没有太多关联。Ubuntu 所谓的图形界面设计的错误(以 unity 为例),都是桌面环境层面的问题。一个设计师在这个层面犯错误,就像一个画家因为构图不够工整就去怪画布不行一样,之间还相差不少逻辑链条。
美国英文: The-UNIX-HATERS-Handbook1994.pdf (3.47 MB, 下载次数: 10)
简体中文: The-UNIX-HATERS-Handbook1994-zh_CN.pdf (5.06 MB, 下载次数: 37)
X Window 和其他操作系统上的 GUI 系统最大的不同,是它和宿主操作系统的松耦合。因为这种松耦合的存在,在不需要图形界面的地方,操作系统可以不带 X Window。很多云服务的服务器,都是没有 X 的。当下如日中天的移动操作系统如 Android 和 iOS 都是 UNIX 家族操作系统,而这两者都没有用 X Window 提供 GUI 支撑,而是另外开发了一套专门适合触摸式移动设备的图形界面系统。图形系统和操作系统间的松耦合,使得操作系统可以从头搭建适合具体设备的图形界面交互(如 Cocoa Touch),并且快速的迭代(如 Project Butter)。

在 GUI 和内核的耦合关系上,架构的确决定了产品的形状。我们都知道,微软 NT 内核和 Widnows UI 系统是绑定在一起的。Windows Phone 8 要和 Windows 8 共享内核和其他组件的结果,就是它们都必须兼顾桌面和移动平台。为此,微软做出了两个可以做榔头也能做螺丝刀的东西。一个是 Windows 8,支持触摸屏,Modern UI 界面长得像手机界面;一个是 Windows Phone 8,界面很适合触摸设备,却又同时支持移植来的桌面程序,造成有的程序界面长得像桌面。无论你认为哪个操作系统的图形界面漂亮,哪条路更加有光明的未来,微软的这些系统之间的关系之繁复,开发迭代的周期如此之长,都是客观事实。

UNIX 系统的Unix 的 shell,命令,配置方式的确有不少的问题,在痛恨者手册里也有详细的论述,我以前也写过,就不一一列举了。

Unix 依靠自己的“宗教”和“哲学”,“战胜”了别的系统在设计上的先进,统治了程序员的世界。胜者为王,可是 Unix 其实是一个暴君,它不允许你批评它的错误。它利用其它程序员的舆论压力,让每一个系统设计上的错误,都被说成是用户自己的失误。其它系统里面某些优秀的系统设计,也许就要被历史掩埋……

一个操作系统,是不可能凭着“宗教”和“哲学”就能统治程序员的世界的。程序员不是天主教徒,UNIX 也不是程序员世界的教皇。实际上,所谓的 UNIX 系统,不是一个特定的系统,而是一个家族的系统。这个家族的系统包罗万象。不喜欢微内核的做了宏内核,不喜欢一切还不都是文件的做了 Plan 9, 不喜欢 X Window 慢如蜗牛的做了 XGL 加速。优秀的设计不断地加入这个系统,改造这个系统。UNIX 来源于 Bell 实验室,X Window 却是 MIT 的,BSD 来自于 Berkeley, Solaris 来自于 SUN, Mac OS 来自于 Apple。如果说这里面有宗教的话,这一定是世界上最诡异的宗教,里面的教徒还天天打架。

在 UNIX 系统中,所有的设计,都在开放的环境下竞争。我们可以说 UNIX 不是一个设计良好的系统,但是它的设计哲学在竞争中获胜的原因,不是因为它是“暴君”,控制了程序员的思想,而恰恰是因为它的开放,所以最终汇总了很多优秀的东西。至于 UNIX 这种不怎么好的系统为何最终获胜,20年前的一篇文章也讲得很清楚了。

因为 TeX 的语言是非常糟糕的设计。它的设计者几乎完全不明白程序语言设计的基本原则,不明白什么叫做“抽象”。

而这些源于 Unix 的工具却像是“魔鬼棋”或者“三国杀”,有太多的,无聊的,人造的规则。有些人鄙视图形界面,鄙视 IDE,鄙视含有垃圾回收的语言(比如 Java),鄙视一切“容易”的东西。他们却不知道,把自己沉浸在别人设计的繁复的规则中,是始终无法成为大师的。就像一个人,他有能力学会各种“魔鬼棋”的规则,却始终无法达到象棋大师的高度。


这里,王垠把两个不相关的东西放到了一起。一个是工具的设计哲学,一个是我们如何学习知识。魔鬼棋本身是一种工具设计哲学,和成为大师无关。

在军刀工具一文中我提过,面向特定领域的软件工具之所以让人觉得复杂,是因为这个问题本身复杂。我们把解决特定领域问题而所需的知识叫做”领域模型“(domain model)。如果我们不了解领域模型,就不能理解为什么 Photoshop 比系统自带的 Paint 复杂几千倍, 或者为什么我们需要正则表达式这种诡异的东西。我们讲的复杂与简单,都是工具设计哲学层面的。

以王垠说的 TeX 为例。写出《计算机程序设计艺术》的 Knuth 到底知不知道程序语言设计的基本原则我们可以不加讨论。了解一点字体设计和排版的都知道,计算机排版问题是个复杂的问题。的确,软件工具的设计目标,是把复杂的问题简化。然而,大多数人不知道的是,简化问题是一个两步过程。第一步,我们需要把现实的问题映射到一个领域模型。第二步,是把这个模型简化到我们人可以处理的地步。很多时候这两步合并起来了,让我们觉得这两步好像是一步,并且认为所有的设计,都应该朝简化的方向走。这是一个对设计的错误认识。

举个非计算机领域的例子:用电饭锅煮饭非常简单,加米加水再按个按钮就行了。电饭锅的设计者的设计目标是操作简单且能完美地煮米。作为工具的设计者,它一方面需要了解大米是怎么煮熟的,另一方面需要提供给用户一个简单的按钮。TeX 作者,从一开始就不是设计一个电饭锅,而是一个精确的温控炉子。有了这个精确的温控炉子,想烧饭的可以把它封装成电饭锅,想做蛋糕的可以把它封装成蛋糕烤箱。设计电饭锅的人的设计,并不比设计精确的温控炉子的人好,或者差。设计者的初衷决定了产品的形状。 Kunth 的初衷,正是设计一个可以让他人排版出任何想排版的东西的系统。也就是说,做出一个最终非常简单的,只有一个按钮的排版系统不是他的设计目标。做出一个可以高度定制的系统才是他的目标。

其实,TeX 本身也是一个由繁到简的软件系统。它把所有排版中的问题,都提炼成了一些控制原语。有了这些控制原语,针对特定领域做优化就不是问题了。现在通用的科学出版排版工具 LaTeX, 正是这样的一种优化。这是有心设计的结果。我们抱怨 TeX 复杂,其实是抱怨排版本身复杂。Windows 系统上有许多排版软件,可以毫不客气地说,没有一个可以达到 TeX 所能到达的精确控制。以此责怪 UNIX 下的软件工具是魔鬼棋,就类似于责怪 Photoshop 为啥不象 Paint 那样简单一样,有选择性地忽视了两者所要解决地问题不一样。

我欢迎所有的 UNIX 使用者加入痛恨者阵营,因为我也是 UNIX 痛恨者。只有成为了 UNIX 痛恨者,你才是一个真正的 UNIX 使用者。至于 Windows, 我们对它没有感情,无所谓爱恨。

事件起因: http://bbs.chinaunix.net/thread-4069745-1-1.html
本文源自: http://blog.youxu.info/2013/03/03/unix-haters-2/

论坛徽章:
31
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43CU十二周年纪念徽章
日期:2013-10-24 15:41:34丑牛
日期:2013-12-01 10:11:07水瓶座
日期:2014-01-15 08:47:25
2 [报告]
发表于 2013-03-05 10:22 |只看该作者
目前国内开始了有这方面争论是个非常好的现象。我认为,争论才会产生火花,才能对某些方面有更加进一步的研究和深入。

这能证明,我们国家在这方面有研究的人,有探讨的人。

当周围一片死寂才真是可怕。


ps:我对他们争论的内容了解不多,就不做其它评论了。

论坛徽章:
4
15-16赛季CBA联赛之北控
日期:2016-12-06 11:11:0115-16赛季CBA联赛之广夏
日期:2016-12-06 15:04:1515-16赛季CBA联赛之四川
日期:2016-12-06 15:59:51黑曼巴
日期:2016-12-09 20:24:05
3 [报告]
发表于 2013-03-07 09:32 |只看该作者
打是亲、骂是爱

论坛徽章:
29
技术图书徽章
日期:2013-09-02 19:59:502015元宵节徽章
日期:2015-03-06 15:51:332015小元宵徽章
日期:2015-03-06 15:57:20操作系统版块每日发帖之星
日期:2015-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17操作系统版块每日发帖之星
日期:2015-09-21 06:20:002015亚冠之水原三星
日期:2015-10-30 00:06:07数据库技术版块每日发帖之星
日期:2015-12-24 06:20:0015-16赛季CBA联赛之上海
日期:2016-01-07 10:32:07操作系统版块每日发帖之星
日期:2016-01-08 06:20:00操作系统版块每日发帖之星
日期:2016-05-18 06:20:00IT运维版块每日发帖之星
日期:2016-07-23 06:20:00
4 [报告]
发表于 2013-03-07 10:06 来自手机 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP