谁来结束GUI程序-关于任务栏的思考

在使用windows xp时,打开许多窗口并在任务栏上排列整齐的体验是许多用户的共同记忆。同样的程序窗口可以被分组,看起来井然有序。

不仅windows如此,linux桌面和Macos也采用了类似的设计。虽然我没有深入研究Gui的历史,但我假设这种带有任务栏的GUI桌面设计最初可能源自微软。

一直以来,我对Windows在手机和平板上的表现感到困惑,直到我发现了它与任务栏之间的联系。


在手机和平板这种屏幕空间有限且用户关注单一全屏UI的环境中,任务栏似乎毫无必要。推而广之,即使在Windows XP上,任务栏也并非必需。那么,为什么需要任务栏呢?

假设任务栏是由微软设计出来的。

任务栏的作用是暂存GUI程序的窗口。尽管桌面本身已经支持重叠窗口,但为了让桌面更加整洁,Windows允许将非前台的程序窗口最小化到任务栏,等到它们再次获得焦点时再恢复。

现在的问题是,为什么要暂存一个GUI窗口,直接关闭程序不行吗?答案看似简单,因为可能有未保存的状态,比如用户在记事本中输入了未完成的内容。

但这并不是一个令人满意的答案。系统完全可以在关闭GUI程序时自动保存状态。从用户的角度来看,他们关心的是程序恢复时能保持上次离开焦点时的状态,而这些都可以由系统在后台完成。

实际上,任务栏是多余的。在GUI桌面系统中,任何时候都只有一个GUI程序窗口拥有焦点。系统可以随时关闭任何非焦点的GUI程序,只要在它再次需要获得焦点时,恢复到系统关闭时的状态即可。

android等手机和平板操作系统正是这样管理GUI窗口的。由于屏幕较小,通常只有一个程序在获取输入和输出。这种特征更加明显,后台程序可以随时被系统持久化并关闭,以节省能耗。当用户再次切换到该程序时,系统重新运行程序并反序列化同步状态即可。

Android和Windows的区别在于,谁来控制GUI程序的关闭。Android将控制权完全交给系统,而Windows XP则将控制权交给用户。

在Windows XP看来,它将所有程序的控制权都交给了用户,没有对GUI程序进行区分,这是老式unix的传统。然而,GUI程序与服务器程序(如apache)不同,后者需要持续监听端口提供服务,而GUI程序几乎完全依赖用户操作。一旦失去焦点,GUI程序几乎无事可做,却平白无故地占用系统资源,这是没有必要的。

Windows 8引入了Metro界面,新的GUI控制改变了Windows XP的做法。它也可以在保证状态同步的前提下,随时关闭非焦点GUI程序。然而,由于历史兼容性的包袱,Windows 8的做法并不彻底,它仍然可以使用任务栏来暂留GUI程序窗口。这可能也是Surface界面显得别扭的原因之一。


浙江温州皮鞋湿,下雨进水不会胖。

谁来结束GUI程序-关于任务栏的思考(同步测试图片)

———————

作者:dog250

来源:CSDN

原文:https://www.php.cn/link/680a372679da6b97e589c2cf672d5aea

版权声明:本文为博主原创文章,转载请附上博文链接!

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享