微软的烂设计与苹果的优秀设计(转载)
微软的烂设计与苹果的优秀设计
转载自:http://www.cnblogs.com/Chrome/archive/2012/06/07/2539803.html
忍不住了,发发牢骚。注意这里讲的是设计。
路径以字母开始
不知那个蛋疼的人想出的办法,以A,B,C为开头区分路径。这样的后果:在windows上没有统一的路径。比如我在一个系统中把东西放在C:\temp下,在另一个系统中可能是D:\temp。而Unix的设计都是以/做为根,可以统一路径。
以\作为路径分割
这货难道不用C,不知道 \在C中有特殊意思?看看windows程序,一个路径要用\\的写。想想Unix用/,省去多少事。后来又自作聪明,在C#中发明了@语法。一开始蛋疼,造就了后面蛋继续疼。
注册表
接上面,Windows里没有统一路径,但有一个地方有。于是,所有东西又存在这个只有Windows才有的东西里。一开始蛋疼,造就了后面蛋继续疼。
Unicode
Unicode是软件趋势。但微软确采用统一用两个字节的UCS-2。后果,由于这货有’0’,所以C库要重写。表示英语的时候,存储大一倍。一个Windows API要写两个,一个是A结尾,一个以W结尾。一开始蛋疼,造就了后面蛋继续疼。除了Windows,UTF8是公认的标准。
2D矢量绘图
Windows一直用 GDI,这货不支持硬件加速,而且又极易出错,很容易造成资源泄漏。后来,微软终于有了自己的2D矢量引擎,但这货是用.Net实现,只能在WPF里使用。后来又有了另一个2D矢量绘图,但这货是捆绑在Direct10里的,叫Direct2D。同时捆绑在里的还有文字引擎DirectWrite。 IE9有个这货,终于可以提高性高了,但Direct10不支持WinXP, 于是IE9也不支持WinXP。Win用户真杯具。
另立门户发展DirectX
OpenGL本来就能完成的事,微软非要再发明一个轮子。DirectX本身游戏性不错。但在今天到处是游戏的时代,DirectX的思路显然过时。于是当微软要做手机的时候,会去想,还继续用DirectX?OpenGL/ES是事实上的移动标准。
OpenCL
显卡性能越来越强,于是出来标准来使用显卡的过余性能。OpenCL是事实上的标准。各大显卡公司都来玩,但微软不玩。非要搞个叫DirectCompute的东西。这次不是微软去支持OpenCL,而是显卡厂商去支持DirectCompute。用户再一次杯具。
另立门户的Win32
除了图形编程,Posix是操作系统的标准,一个用户学习完Advanced Unix Programming,理应会除了图形以后的程序开发。但在Win不行,这货另立门户,发展了一个自己的轮子。但轮子又不是全是自己发展的,比如socket,就把berkeley socket直接抄过来了。既然你觉得自己很牛,能重新发明轮子,可轮子还没做好,又去用旧轮子,那你发明的轮子意义何在?难道还是一开始蛋疼,造就了后面蛋继续疼。
系统函数钩子
当年一个很炫耀的Windows技术是钩住系统API。详细的例子都可以在Jeffrey Richter的<<Advanced Windows>>里Chapter 22 DLL Injection and API Hooking。这种技术很强大,比如可以做屏幕取词等功能。但早期只有病毒程序对使用这功能,后来,反病毒程序也使用这功能。微软不知不觉中又创造了一个产业。相对于苹果,会提供专门API做屏幕取词等功能,而不是各种各样看似高手的手段。
权限设计
用Unix的人都知道root是干啥的。文件权限的意思。但用了多年win的人,恐怕都不明白win的权限设计。有时一个目录没有删除权限,不知道自己已经是管理员,为啥还不行。登录系统用管理员,漏洞太多,不用管理员,限制太多。这些都是Unix一个su解决的事情。
Bash
Unix都有角本,都可以随便写。Win有个破角本,基本上只能写那么点事情。后来意识到Win还有服务器市场,发明Power Shell。做那么点破事,你给搞了个核武器。典型用导弹打蚊子。
64位设计
不知道用户看Documents and settings目录有啥感想。不知道用户看到Program Files和Program Files(x86)有啥感想。虽然universal binary是苹果的专利,但可以想象,微软在设计的时候都更本没考虑过64位的时代会到来。
苹果的优秀设计
基于Unix
这一条解决很多问题,不解释。
处处MVC
微软的图形入门程序,不管是MFC,还是WinForm,还是WPF/Silverlight/Win8 Metro都不是MVC的。除了WPF里的MVVM模式,微软根本没有MVC。而MVVM也不是微软发明的。相反,苹果图形设计一开始就会给你讲什么是MVC,而苹果自己也是用MVC这条路写过来的。
组件平台
说实话,微软的组件平台(COM)并不差。只是复杂。COM只有2个版。1.0就相当稳定,后来到1.1做小升级。而微软如果一直在语言上做文章或另外别的办法,COM会有非常好的前途。想想有多少人怀念VB6就知道了。面向对象发明人Alan Key同时也是Smalltalk发明人,就说过,自己看不懂C++。而离开了苹果的乔慧眼识珠,找到了和Smalltalk一种设计思想的Objective-C,引入到了苹果系统中。才使苹果的系统今天与众不同。
结论,巨人可能不是被别人打到的。本文中的设计对比也可推广到其它概念。
微软的烂设计与苹果的优秀设计(转载)相关推荐
- 推出 5 年后,微软想用设计「全面复兴」Windows 10
本文转载自 爱范儿,作者 周宇 今年 M1 芯片版 Mac 在性能.续航等方面的优异表现,直接引爆了大众舆论,它与 Windows .Intel 处理器的对比层出不穷. 不过微软也不是什么都没做,20 ...
- 程序人生 - 推出 5 年后,微软想用设计「全面复兴」Windows 10
今年 M1 芯片版 Mac 在性能.续航等方面的优异表现,直接引爆了大众舆论,它与 Windows .Intel 处理器的对比层出不穷. 不过微软也不是什么都没做,2020 年初它就宣布提前完成了10 ...
- 连载丨《极简设计:苹果崛起之道》——硅谷伊甸园(一)
引言:苹果辉煌的背后,是四十年如一日所秉承的设计理念和企业文化.艾斯林格,乔布斯的亲密战友.青蛙设计创始人,他在积淀了30年后,以70岁高龄回顾了苹果语言诞生的历程,交织着他本人与乔布斯在这一合作中的 ...
- Spring Cloud 架构设计之苹果Apple账户注销 Revoke tokens auth/revoke
Spring Cloud 架构设计之苹果Apple账户注销 Revoke tokens auth/revoke 前言 近期,本人在开发一款互联网产品,项目地址https://github.com/yj ...
- ui设计的好网站(转载)
设计师网址导航 http://hao.uisdc.com/ 站酷 国外: Dribbble - Show and tell for designers.Behance 这两个网站就够了啊 ----- ...
- ux431黑苹果_UX设计中苹果领导地位的下降
ux431黑苹果 My Samsung Galaxy S10+ just got a software update. It's now running the latest version of O ...
- 【历史上的今天】9 月 19 日:世界上第一个表情符号;微软发布 Virtual PC;苹果 UI 扁平化的开始
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 9 月 19 日,在 39 年前的今天,人类历史上第一张电脑笑脸":-)"诞生, ...
- 三国战记,微软Windows phone,谷歌android,苹果iOS,手机云计算云服务三国混战
北京时间2011年6月7日凌晨一点,万众期待的苹果开发者峰会WWDC在美国召开,来自全球的苹果开发者共同参与了此次盛会.此次发布会上苹果正式对外展示了应用于Mac电脑的Lion系统,应用于苹果iPho ...
- 微软鲍尔默回应被苹果超越:将开发更好产品
针对苹果超过微软成为全球市值最高的高科技公司的消息,微软首席执行官史蒂夫·鲍尔默 (Steve Ballmer)周四表示,其目标是开发更好的产品,提高盈利能力. 鲍尔默周四在印度首都新德里说,&quo ...
最新文章
- LeetCode之461. Hamming Distance
- 数据结构实验之链表二:逆序建立链表
- 创建c语言编译错误,创建C语言项目时,无法编译成*.exe文件,提示系统找不到指定的文件...
- java stream操作案例
- 华庭-Oceanbase分布式索引
- stm32之spi之NSS管脚信号
- (cljs/run-at (JSVM. :all) 一次说白DataType、Record和Protocol) 1
- 'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件的解决办法
- xml转excel(Office XML转excel)
- Linux界面介绍及基础知识
- 【SSL】2021-08-19 1100.神秘数列
- 怀旧服ouf头像插件_魔兽世界7.0前夕ShadowedUF简洁头像插件
- java公众号图片上传_调用微信公众号接口上传图片素材
- 计算机丢失msvcp90dll怎么办,msvcp90.dll
- 电脑录屏没有声音该怎么办
- NameNode HA的部署方法
- 基于java的物流信息管理系统(计算机毕业设计)
- 【Kay】Java判断正数和负数个数
- 马克•安德森:软件正在占领全世界
- DirectX 11 编程指南