Windows的界面元素与macOS的界面元素设计完全相反,是故意的么?
比如窗口关闭、隐藏最小化按钮,macOS在左边,Windows就偏偏设计在右边;桌面图标macOS从右至左排列,Windows就从左至右排列;桌面任务栏 macOS放在顶部,Windows就在底部……
这是Windows创立之初故意与macOS反著以示区别吗?若是故意而为之,何故?
这里就借题发挥,探讨一下Mac OS与Windows总体界面和操作上的变化。
至于对问题的回答,我的看法是,macOS界面与习惯是一脉相承的,每一代的变化也较为温和,只是到了Mac OS X开始有较大变化。就时间而言,完全谈不上与微软对著干(况且Windows直到3.0才开始取得成功)。反倒是微软的Windows迭代时界面发生过较大变化,Windows 1.0到4.0(95和NT4)就有四种几乎不同的界面,自95起Windows界面框架基本确立,但后期的一些版本也有较大变化。
早期 System 与 Windows
于1984年发布的Macintosh System Software 1,界面如图
可以看出,Mac界面的基本布局就已经确定了。全局菜单栏,显示应用程序菜单,菜单内容随应用程序改变而改变。桌面图标也是放在右边,废纸篓在桌面右下角。应用程序的关闭按钮(后来的Mac OS称之为「关闭格」)在标题栏的左侧。窗口调整大小需要按住右下角的按钮才能进行拖放。
之前的System 1-3界面几乎没有变化,只有系统和功能上的改进。System 4,Macintosh II预装的版本,应该是最早支持彩色的。见菜单栏上的苹果logo。 另一个变化是,标题栏右侧多了一个缩放按钮(后来的称之为「缩放格」)。此按钮的功能类似于最大化,点击后,窗口会放大,再点一下又还原回之前的大小。这个按钮的功能在后来的System 7中稍有变化。后续的版本中,缩放格的功能是将窗口大小调整为最合适大小,以Finder为例,点击按钮后,窗口大小会调整为刚好能显示下所有内容时的大小,而不是「最大化」窗口。
这种设定一直沿用到了System 6,直到System 7才有一些改变。
早期System 1-4版本是单任务的,虽然在512K及更高内存的机型上能通过诸如Switcher软体来进行任务切换。System 5和System 6自带MultiFinder,启用后也有简单多任务支持。启用MultiFinder后,菜单栏右侧会显示当前应用的图标,点击该图标可以进行任务切换是按顺序切换到下一个任务的。也可以点击苹果菜单,在下面的任务列表中进行任务切换。而Windows一开始则是多任务的。
至于关机,早期的System 1和2并没有关机和重启的选项,如果需要关机,则需要在File菜单中选择Eject,将当前的软盘弹出,然后关电源就行了。
System 3开始,在Special菜单中才有关机选项。
硬体而言,当年的Macintosh机型大多使用黑白(二色)显示器,解析度为512x342(约3:2比例)。后来的Macintosh II支持256K/512K显存的彩色显卡,256K显卡可以支持512x384(4:3) 256色,更高的640x480解析度下只能显示16色;而512K显卡支持640x480解析度下显示256色。但Macintosh II属于高端型号,当时主流Mac机型还是512x342的黑白机型。
同期PC/Windows(80年代)的显卡/显示器就五花八门了,什么CGA卡,MDA卡,大力神卡(Hercules),EGA卡,到后来的VGA卡,IBM XGA卡,Wyse卡等等。各自的显示规格(解析度和颜色)也不同。更混乱的是,CGA除了IBM原厂的CGA卡,还有Compaq CGA,Tandy CGA,还有基于CGA的Color Plus等等;EGA除了IBM EGA,还有更高端的ATI EGA Wonder系列等等。 这些显卡所需的显示器也不同。后来多媒体PC所要求的SVGA显卡(当时最低标准是640x480 256色)也有各种各样硬体方案。这种局面直到VESA出现才有所好转。关于PC的这段历史,可以参看The Legacy of 3dfx一书中的Chapter 1 / The History of 3D - 1970 / 1994。
早年的Windows 1.0-3.x只是个应用软体,运行在DOS下,在Windows目录下输入win命令启动。
看看同期的Windows 1.0,于1985年发布(比Macintosh晚一年),采用平铺式窗口管理。打开新的程序后,原来的窗口会最小化到桌面底部的图标上,这个设定沿用到Windows 3.x。
窗口标题栏左侧的按钮,点击一下打开控制菜单,(连续)点击两下则关闭窗口,这个设定延续至今。标题栏右侧的缩放按钮,双击则最大化窗口。
菜单栏在应用程序的内部,不像Mac是全局菜单栏。但是Windows 1.x菜单的操作与Mac类似,滑鼠点一下某个菜单选项,弹出的菜单马上消失。需要一直按住滑鼠,选取具体菜单命令后再松开滑鼠。但Windows 1.0按Alt加一个字母键(如F)同样可以访问菜单,这个设定延续至今。
两年后的Windows 2.0,支持VGA显卡,采用堆栈式窗口管理,与现代的Windows一致。界面也更接近Windows 3.0。最小化的程序同样显示在桌面下方图标中。窗口左侧的控制图标稍有变化,与Windows 3.x接近,右侧控制按钮从箭头中可以知道含义,最小化 和 最大化/还原。Windows启动时默认打开的还是MS-DOS Executive文件管理器。
不过Windows 1.0和2.0上并不算成功,第三方应用程序并不多。微软开发Windows,最初也是想让图形化的Word和Excel在PC上安个家,不必四处漂泊。(早期Word的DOS版、Mac版和Unix版都不太一样,Excel最初也是在Mac上运行的。)有趣的是,Windows 2.0发布后,苹果状告微软,说微软抄袭了苹果的图形界面。当然,苹果也好微软也好,都是偷师Xerox Alto。
到了90年代,微软的Windows 3.0发布,功能更加成熟,同时界面和操作有了较大的变化。苹果也在1991年发布了System 7,系统的设计上有了较大变化,但界面总体变动不大。然而System 7的时间跨度达到了五年,其中也经历了7.0,7.1,7.5和7.6几个版本。7.0和7.1的界面和操作几乎一致;而7.5/7.6增加了控制条和上下文菜单(子菜单)支持。System 7时间跨越了Windows 3.1和Windows 95两代。
System 7的标题栏有了颜色,而且稍微有了些立体感。大部分图标也有了颜色。窗口标题栏右侧的缩放格的功能也变成了将窗口调整为最佳大小而不是最大化。菜单栏右侧也多了一个帮助图标,可以显示旁注。苹果菜单也开始可以自定义了,虽然后来Mac OS X中的苹果菜单又是固定项目了。另外,随著多任务需求的增加,System 7还稍微改进了窗口管理机制,点击菜单栏最右边的图标,会列出当前运行的应用程序,可以在此进行切换,还可以选择隐藏当前的应用程序或隐藏其他应用程序以专注于当前程序。
System 7.5允许使用低解析度的图片作为背景,当然这种背景也是不断重复的,称作是「桌面图案」,系统也预设了一些桌面图案。此外,早期Mac OS没有最小化窗口的功能,当窗口多起来时,切换窗口变得很不方便。Mac中一个应用程序可以有多个不同的窗口,与Windows不同的是,对于当时大部分应用程序而言,关闭了所有的窗口并不会让程序退出,需要在文件菜单中退出当前的程序。Mac OS还缺乏最小化窗口的功能。如果当前运行了多个应用程序,这些应用程序中也有多个窗口,工作区会变得非常凌乱。虽然可以隐藏应用程序,但隐藏后应用程序所有窗口也隐藏了。于是System 7.5中新增了一个叫窗口隐藏的功能,设置双击或三击标题栏将一个窗口「隐藏」,当然这并不是真正隐藏,而是将窗口缩得只剩标题栏。在Mac OS 8中,「窗口隐藏」更名为「窗口收合」。显然,这也并不是用户想要的功能。Mac OS的窗口管理和Windows差远了。
System 7.5还增加了控制条功能,可以进行一些简单设置,例如音量、亮度、解析度、共享等。控制条最初是给便携机设计的,在台式机上默认安装中是没有控制条的。还有就是苹果菜单也终于支持子菜单了。
题外话,System 7.5开始,苹果授权过其他厂商制造Mac兼容机。而苹果原装机叫做Macintosh,其他厂的兼容机总不能叫Macintosh吧,而系统还叫做Macintosh System Software。于是从7.5.2起,苹果自己的系统还叫原来的名字,而卖给第三方兼容机的系统则叫Mac OS。于是Mac也有了新的logo。到了System 7.6,苹果干脆就把系统都叫做Mac OS了,原装机也一样。
再看看Windows 3.0/3.1和Windows 95。
Windows 3.0,于1990年发布(繁体中文版于1991年发布),就界面而言已经足以与Mac OS比美了。窗口的基本布局与Windows 2.0类似,标题栏左侧的控制按钮,单击显示控制菜单,双击关闭;右侧的最小化/还原和最大化按钮图标有所改变。整体来看,这套风格更具立体感,按钮点击后也有凹陷的效果。与Windows 2.0不同的是,Windows 3.0使用程序管理器(台译「程式管理员」)来启动程序,而不是Windows 2.0的MS-DOS Executives文件管理器。
程序管理器中每个程序是一个程序项,而程序项归属于一个个的程序组。例如「主群组」程序组中有与系统相关的程序项。程序管理器中打开的程序组会显示成子窗口,而未打开的程序组的图标则显示在程序管理器主窗口中,双击可以打开这些程序组。程序组好比是Windows 95开始菜单「程序」中的子文件夹,如「附件」,而程序项就好比是开始菜单中具体的一个程序快捷方式。
Windows 3.0的程序管理器可以将各程序组堆栈排列(如上图),也可以平铺排列。如果双击桌面的空白位置,会出现任务列表,这可能是任务管理器的原型了,在任务列表中同样可以对任务进行堆栈显示或平铺显示。由此可见,Windows 3.0的窗口管理功更先进,相比之下Classic Mac OS的窗口管理能力太弱了。
相比Windows 1.0和2.0只能用颜色作为桌面背景,Windows 3.0可以将图案设置为背景,也可以将bmp点阵图设置为背景。将图片设置为背景时,可以选择居中显示;如果是重复性的图案,也可以平铺显示。而Mac OS 8以前的System 1-7只能设置图案或小尺寸图片为壁纸,并且只能平铺。
从Windows 1.0开始,窗口的颜色方案是可以自定义的,Windows 3.0也不例外。而Mac OS的颜色设定则仅限于高亮的文本和System 7中窗口的边框线条的颜色,直到Mac OS 8才能稍微定义一下主题色彩。
Windows 1.0到3.x,要退出Windows,只需要双击MS-DOS Executives窗口或者程序管理器窗口左上角的控制按钮,然后确定就能退出。至于关机,在DOS提示符下等后台程序写完数据,直接关电源就行了……
Windows 3.1的界面和操作与Windows 3.0无太大差别,只是图标和配色上的变化,较大的变化是系统和功能的方面的。
Mac OS 8 与 Windows 9x
System 7时间跨度长,同时与Windows 3.x和Windows 95竞争。
发布于1997年的Mac OS 8,终于在外观上有所改进,使用了Platinum风格的主题,整体看上去更具立体感,但整体操作还是和之前系统一致。Mac OS 8.1是Mac OS 8.0的小幅改进版本,外观没有区别。默认的桌面图案是浮雕风格的Mac OS logo,同时允许图片作为壁纸。许多图标也进行了重新设计。
到了Mac OS 8,标题栏上的三个按钮终于齐了,尽管它们的功能与现代Mac OS X中的有些不一样。标题栏最右侧多了一个「收放框」,点击之后窗口会缩到标题栏,与System 7的窗口隐藏一样。在收起来的窗口中,这个按钮的名字变成了「扩展框」,到了Mac OS 8.5以后,这个按钮名字变成了「收合格」。
Mac OS 8也开始支持右键菜单,当然Mac一直是单键滑鼠,访问右键菜单需要按住Ctrl键再按滑鼠。但如果应用程序太老不支持右键菜单,那也无济于事。
再看看Window这边的情况。
Windows 95本是处在System 7时期的,只是苹果于1997年发布了Mac OS 8,而Windows 98在1998年才发布,因此可以同时拿Windows 95于System 7和Mac OS 8对比。
Windows 95可以说在界面上与前代有著巨大差别。不过也有共同点,即界面都是为VGA 16色设计的(汗),而Win 95 Plus!/Windows 98才是为更高色彩设计的。Windows 95可以说也奠定了现代Windows界面设计的基础,已经非常接近现代的Windows了。比如任务栏,开始菜单,窗口标题栏右边的三个控制按钮以及几乎无处不在滑鼠右键菜单等等。在Windows 3.x中,只有部分程序是支持右键菜单的,连Win3.x的程序管理器都不支持右键菜单。
Windows 95一出,PC键盘上也多了两个键,Win键和菜单键,位于键盘最后一行的一左一右Ctrl和Alt的两个空缺位置中。Win键当然是打开开始菜单,而菜单键则是呼出右键菜单。老键盘没有这两个键,可以用Ctrl+ESC和Shift+F10代替,但是Ctrl+ESC快捷键仅能呼出开始菜单,不能用于任何与Win键相关的组合键(如Win+R等)。这些设定也保留在了现代Windows中。
Windows 95默认的资源管理器风格并非如截图上所示的那样有地址栏和工具栏,而是更接近当时Mac Finder的多窗口模式。只是出于习惯,我把它设置成了单窗口,并显示工具栏的。
各版本 Mac OS X 与 同期Windows
2001年3月,次世代的Mac OS X 10.0发布。界面和操作习惯与之前的Classic有著极大的变化,虽然仍旧是全局菜单+右侧图标的基本布局。全新的Finder、Dock和系统设置让用户耳目一新。新的Finder可以将最常使用的目录,如应用程序目录,用户的主目录放在工具栏上,一点击就能访问。此外Finder还增加了分栏视图,浏览文件夹时更方便。
Dock是Mac OS X中的新元素,功能较复杂,可以放置应用程序、网页、文档等,一点击即可打开。已经启动的应用程序也会出现在Dock上,在其图标的下方有个黑点,可以通过Dock来管理已打开的应用程序,进行切换和退出等操作。Dock的加入对Mac的窗口管理也有一定的改进,至少让Mac多了最小化窗口的功能,最小化的窗口放在了Dock的右侧。
Mac OS X 10.0的Dock还部分承接了原先控制条的作用,例如图中所示的「显示器」设置,点击图标弹出菜单,可以对解析度和颜色进行设置。如果电脑安装有AirPort无线网卡,其状态指示图标也会出现在Dock上,点击可以打开菜单管理无线网路,而Dock上无线网路的图标本身也是指示器。当然,这些功能在Mac OS X 10.1还是整合到菜单栏中了。(在更早的10.0的公开测试版中,甚至连日期和时间都是作为Dock图标显示的。)因此可以说Mac OS X 10.0在设计上并未最终定型。
10.0的界面一直沿用到10.2系统,当然在10.1和10.2中也有一些细小变化。就比如之前Dock上的一些控制图标移动到了菜单栏上,只是语言和输入法的图标还紧随菜单,而不是放在右侧的图标区域。另外是系统设置采用分类显示,与现在的一样。只是系统设置的最顶栏是可以自定义的,可以将最常用的设置图标拖放在上面,进入任何一项设置时都可以点击。
(先写到这,不定期更新。)这部分跨度较大,计划从Mac OS X 10.0写到近几代的Mac,Windows 2000(及同款外观的Windows Me)到现代Windows。主要概况其界面和操作中变化的部分,例如Dock,Finder,Windows的开始菜单,资源管理器和控制面板等等。
延伸阅读
少数派:从 Macintosh 到 Mac OS:Mac 操作系统视觉史?zhuanlan.zhihu.com少数派:Mac 视觉史(二):90 年代失败 Mac 操作系统大赏?zhuanlan.zhihu.com少数派:Mac 视觉史:浴「水」重生的 Mac 视觉美学?zhuanlan.zhihu.comosnine:个性化 Mac OS 9 体验?zhuanlan.zhihu.compaizhangpi:从Mac OS到Mac OS X:从内到外的焕然一新,意义深远的跨越?zhuanlan.zhihu.comArthur Wang:Mac OS X 背后的故事(转)?zhuanlan.zhihu.comosnine:浅谈Classic Mac OS(上篇)?zhuanlan.zhihu.comosnine:浅谈Classic Mac OS(下篇)?zhuanlan.zhihu.com
就桌面任务栏(在?Windows 95?加入)这个问题而言,微软并不是为了什么对著干的理由而放在底部的。
太长不看版结论:因为要照顾不遵守微软的设计乱写程序的开发者。
微软员工?Raymond Chen?的一篇文章对这个问题作了解释。以下为翻译:
为什么?Windows?任务栏默认在底部?
2003?年?9?月?12?日
并不一直是这样。
最初的任务栏完全不像你今天看到的样子。它默认在屏幕的顶部,看上去像这样。
这肯定不是确切的样子。因为已经过去太久,我已经忘记了它准确的样子(我没想到十年后会有这么个问题),但这个抓到了基本的特点,至少可以用在这次讨论。
重点在于任务栏当时的形式并不是按钮,而是选项卡。每个选项卡对应一个正在运行的窗口,窗口与选项卡融合。你通过点击对应的选项卡切换窗口。
你可以从选项卡控制项中的?TCS_BUTTONS
?样式看到这个样式的残留。当我们把任务栏换成按钮外观时,仍然有很多基于选项卡形式的切换代码,向选项卡控制项添加按钮外观的工作量比重写所有切换代码要少。
选项卡的外观是出于种种理由被放弃的,其中之一其他人都已经注意到了:如果你把任务栏放在屏幕的顶部,很多窗口最终会落到它的下面,因为它们假设屏幕的可用区域从?(0,0)?开始。其他窗口会「爬」到屏幕上面,因为它们用?GetWindowPlacement
?保存窗口位置(返回工作空间坐标,其中?(0,0)?是第一个可用像素)但用?SetWindowPos
?来还原(使用屏幕坐标,其中?(0,0)?是主显示器的左上角像素)[译注]。
因为有太多应用程序总是落到附于顶部的任务栏的下面,所以我们不得不放弃这个想法,将它移到底部。
令人沮丧的是,八年后的今天,应用程序依然会搞乱坐标系,并总是落到靠在顶部或左侧的任务栏的下面。
译注
微软在?Windows 95?中设计了避免窗口和任务栏重叠的方法,正确使用?Windows API?中的新机制完全可以避免这个问题。因此微软将任务栏移到底部是为了迁就没有正确使用新机制的开发者。
为了防止窗口被任务栏遮挡在下面,应使用?SystemParametersInfo
?函数获取桌面未被任务栏遮挡的工作区域,从而计算窗口应出现的位置所在的屏幕坐标。使用方法为:
RECT workarea;
if (!SystemParametersInfo(SPI_GETWORKAREA, 0U, (PVOID)workarea, 0U)) {
return GetLastError();
}
/* 假设已有窗口坐标变数POINT windowcoordinates */
windowcoordinates.x += workarea.left;
windowcoordinates.y += workarea.top;
另外,微软已经考虑到窗口关闭后任务栏位置可能会变化,因此设计了使用工作空间坐标记忆窗口位置的机制。GetWindowPlacement
?函数将窗口位置的信息填入一个?WINDOWPLACEMENT
?结构体。正确的做法是不要读写里面的数值,将这个结构体原封不动地通过指针传给?SetWindowPlacement
?函数来还原窗口在工作区域中的位置。这样无论任务栏在屏幕的哪一侧,通过这个结构体还原窗口时窗口都会出现在屏幕中正确的相对位置,而不会遮挡在任务栏上面。微软文档中也特意强调了错误做法可能导致的后果。
事实上,无论是MacOS还是Windows,窗口样式以及现在上边那三个按钮,都是多年演化的结果,初始都不是这样的。
先看苹果的操作系统,初问世时,苹果的操作系统还不叫Mac OS,叫System。
1984年问世的System 1.0 长这样:
直到1997年Mac OS 8发布才改叫Mac OS,1999年发布的Mac OS 9也就长这样:
中间提一嘴,乔布斯1985年离开了苹果成立了NeXT,1988年发布了NeXTSTEP操作系统:
乔布斯回归苹果后,2001年发布的Mac OS X已经是以NeXTSTEP为基础了,这个操作系统也奠定了之后Mac OS的核心技术与外观样式:
反过来看Windows,1985年问世的Windows 1.0长这样:
1990年问世的Windows 3.0:
1995年,Windows 95问世,1996年,Windows NT 4.0问世,这两者奠定了现在的Windows的核心技术及基本操作方式:
Mac OS和Windows发展过程中肯定是互有借鉴,这毫无问题。至于布局问题,更多的还是遵循自己操作系统多年来的用户的操作习惯。Windows 8之后由于大改了Windows的部分操作习惯,被骂得狗血淋头,哈哈。
应该不是故意的,而是全局菜单这个设计导致的必然结果。
--
Windows 的第一个里程碑式版本其实是 1993 年的 Windows 3.1(在此之前的1.0跟2.0其实都不温不火)。这个版本关闭在窗口左上角,最小最大化按钮在窗口右上角。没有任务栏,只有一个任务窗口,这个窗口经常被程序盖住。——在当时,有很多民间高手做了一些持续在底部的任务栏供使用。
而MacOS诞生的时候呢?无论是MacOS8还是MacOS9,同样都是窗口左上角一个按钮,窗口右上角两个按钮。——这个时候跟Windows3.1的设计是相同的,并不存在故意相反设计。
--
Win95修改了两样东西,一个是自带了系统标配的任务栏(Win31时代的民间任务栏从此告别历史舞台),另外一点是右上角增加了一个独立的关闭按钮。
为什么要把关闭按钮设计在右上方,显然,因为最大化最小化也在右上方,放到一起更方便。而左上方留给窗口菜单。
Windows系统上方没有其它内容,所以窗口最大化时,将滑鼠直接滑至屏幕右上角能够很方便的触及到关闭按钮。Windows系统的设计很重视对四角的运用。
那么,为什么Windows关闭是右上角而不是左上角?
因为WIndows把开始菜单设计到了左下角。——从左下角开始,从右上角结束,这样比较对称。这个设计思想使得Windows的操控逻辑更直观易懂。
--
MacOS下方是一个Dock,它其实就是左半边当启动器,右半边当任务栏,除了长度和高度与Windows任务栏不同以外,其实没有本质区别。两者的任务栏都在下方。在这个设计上与Windows并没有区别。
--
MacOS最大区别在于顶端的全局菜单设计。由于在顶条放了菜单,这导致了将关闭按钮放在右上角并没有额外收益(因为右上角其实是菜单栏,将滑鼠滑到右上顶端并不能直接触及关闭按钮)。
同时,由于菜单的主要内容在左上方,那么实际上引导了用户的关注点到左上方,此时将关闭按钮设计到窗口左上方就更合乎情理。
所以关闭按钮在两个不同方向,其实是全局菜单设计带来的不同。
--
不是
Windows这套窗口布局是Windows95开始有的,当时苹果使用的System 7长这样
System 7发布的时候对应的Windows版本大约是3.0,窗口是这样的
而1997年发布的MacOS 8还是长这样
现在macos x用的布局是从os x开始的,所以是macos和windows唱反调
桌面图标的摆放顺序
Windows 95之前,Windows,Windows NT, OS/2的图标都是左下为原点,Windows 95开始改成左上,而且Windows/NT 3之前的版本,这个桌面其实是相当于现在的任务栏的功能(只有活动程序的图标),这个说成是和mac os唱反调太牵强了
MacOS顶部的不是任务栏,而是菜单栏,Windows那个才是任务栏,这两个都是不一个东西,没什么比较的理由。
推荐阅读: