微软的烂设计与苹果的优秀设计

转载自: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,引入到了苹果系统中。才使苹果的系统今天与众不同。

结论,巨人可能不是被别人打到的。本文中的设计对比也可推广到其它概念。

微软的烂设计与苹果的优秀设计(转载)相关推荐

  1. 推出 5 年后,微软想用设计「全面复兴」Windows 10

    本文转载自 爱范儿,作者 周宇 今年 M1 芯片版 Mac 在性能.续航等方面的优异表现,直接引爆了大众舆论,它与 Windows .Intel 处理器的对比层出不穷. 不过微软也不是什么都没做,20 ...

  2. 程序人生 - 推出 5 年后,微软想用设计「全面复兴」Windows 10

    今年 M1 芯片版 Mac 在性能.续航等方面的优异表现,直接引爆了大众舆论,它与 Windows .Intel 处理器的对比层出不穷. 不过微软也不是什么都没做,2020 年初它就宣布提前完成了10 ...

  3. 连载丨《极简设计:苹果崛起之道》——硅谷伊甸园(一)

    引言:苹果辉煌的背后,是四十年如一日所秉承的设计理念和企业文化.艾斯林格,乔布斯的亲密战友.青蛙设计创始人,他在积淀了30年后,以70岁高龄回顾了苹果语言诞生的历程,交织着他本人与乔布斯在这一合作中的 ...

  4. Spring Cloud 架构设计之苹果Apple账户注销 Revoke tokens auth/revoke

    Spring Cloud 架构设计之苹果Apple账户注销 Revoke tokens auth/revoke 前言 近期,本人在开发一款互联网产品,项目地址https://github.com/yj ...

  5. ui设计的好网站(转载)

    设计师网址导航  http://hao.uisdc.com/ 站酷 国外: Dribbble - Show and tell for designers.Behance 这两个网站就够了啊 ----- ...

  6. ux431黑苹果_UX设计中苹果领导地位的下降

    ux431黑苹果 My Samsung Galaxy S10+ just got a software update. It's now running the latest version of O ...

  7. 【历史上的今天】9 月 19 日:世界上第一个表情符号;微软发布 Virtual PC;苹果 UI 扁平化的开始

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 9 月 19 日,在 39 年前的今天,人类历史上第一张电脑笑脸":-)"诞生, ...

  8. 三国战记,微软Windows phone,谷歌android,苹果iOS,手机云计算云服务三国混战

    北京时间2011年6月7日凌晨一点,万众期待的苹果开发者峰会WWDC在美国召开,来自全球的苹果开发者共同参与了此次盛会.此次发布会上苹果正式对外展示了应用于Mac电脑的Lion系统,应用于苹果iPho ...

  9. 微软鲍尔默回应被苹果超越:将开发更好产品

    针对苹果超过微软成为全球市值最高的高科技公司的消息,微软首席执行官史蒂夫·鲍尔默 (Steve Ballmer)周四表示,其目标是开发更好的产品,提高盈利能力. 鲍尔默周四在印度首都新德里说,&quo ...

最新文章

  1. LeetCode之461. Hamming Distance
  2. 数据结构实验之链表二:逆序建立链表
  3. 创建c语言编译错误,创建C语言项目时,无法编译成*.exe文件,提示系统找不到指定的文件...
  4. java stream操作案例
  5. 华庭-Oceanbase分布式索引
  6. stm32之spi之NSS管脚信号
  7. (cljs/run-at (JSVM. :all) 一次说白DataType、Record和Protocol) 1
  8. 'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件的解决办法
  9. xml转excel(Office XML转excel)
  10. Linux界面介绍及基础知识
  11. 【SSL】2021-08-19 1100.神秘数列
  12. 怀旧服ouf头像插件_魔兽世界7.0前夕ShadowedUF简洁头像插件
  13. java公众号图片上传_调用微信公众号接口上传图片素材
  14. 计算机丢失msvcp90dll怎么办,msvcp90.dll
  15. 电脑录屏没有声音该怎么办
  16. NameNode HA的部署方法
  17. 基于java的物流信息管理系统(计算机毕业设计)
  18. 【Kay】Java判断正数和负数个数
  19. 马克•安德森:软件正在占领全世界
  20. DirectX 11 编程指南

热门文章

  1. PHP生成圆角二维码logo
  2. ES6的语法及基础知识
  3. 领略集成灶品牌排名,集成灶好还是油烟机好?森歌给你答案
  4. Android麦克风录音的实现
  5. python电子英汉词典显示_Python实现汉英字典
  6. C/C++ 1e-6
  7. 运营新人也可以做的副业平台丨闲鱼运营(上)
  8. OpenCV图像锐化---USM锐化和Laplace锐化
  9. ubuntu apt-get 安装软件时package has no installtion candidate问题
  10. linux7 ppt,Linux操作系统7.ppt