计算机速成课Crash Course - 26. 图形用户界面

今天继续计算机速成课Crash Course的系列讲解。

更多技术文章,全网首发公众号 “摸鱼IT” 锁定 -上午11点 - ,感谢大家关注、转发、点赞!

计算机速成课Crash Course - 26. 图形用户界面 (qq.com)

26. 图形用户界面

我们上集最后,谈了苹果在1984年发布的 Macintosh,这是普通人可以买到的,第一台带图形用户界面的计算机,还带一个鼠标。

图片

那时的计算机全是命令行,图形界面是个革命性进展。

不必记住或猜正确的命令,图形界面直接显示了,你可以做什么,只要在屏幕上找选项就行了。

图片

这是一个"选择并点击"的界面,突然间计算机更直观了,不只是爱好者或科学家能用计算机,任何人都可以用计算机解决问题。

人们认为是 Macintosh,把图形用户界面(GUI)变成主流,但实际上图形界面是数十年研究的成果。

前几集,我们讨论了早期的交互式图形程序,比如 Sketchpad 和太空战争,都是1962年制作的,但都是一次性项目,不是整合良好的体验。

现代图形界面的先驱,可以说是 道格拉斯·恩格尔巴特。

让我们进入思想泡泡~~

二战期间,恩格尔巴特 驻扎在菲律宾做雷达操作员,他读了万尼瓦尔·布什 的 Memex 文章,这些文章启发了他。

图片

当他海军服役结束时,他回到学校,1955年在 UCB 取得博士学位,他沉溺于新兴的计算机领域。

他在1962年一份开创性报告中汇集了各种想法,报告名为:"增强人类智力",恩格尔巴特认为,人类面临的问题,比解决问题的能力增长得更快,因此,找到增强智力的方法,似乎是必要且值得一做的目标。

他构想计算机不仅做自动化工作,也可以成为未来知识型员工,应对复杂问题的工具。

伊凡·苏泽兰 的"几何画板",进一步启发了 恩格尔巴特,他决定动手把愿景变为现实,开始招募团队来做 oN-Line System,他意识到如果只有键盘,对他想搭建的程序来说是不够的。

图片

用他的话说:"我们设想人们用计算机辅助工作站来增强工作,用户需要和屏幕上的信息互动,用某种设备在屏幕上移动[光标]"

1964年,和同事比尔·英格利希的共同努力下,他创造了第一个计算机鼠标,尾部有一根线,看起来很像老鼠,因此"鼠标"这个名字沿用了下来。

图片

谢了思想泡泡~~

1968年,恩格尔巴特在"秋季计算机联合会议"展示了他的系统,这次演示被视为如今所有演示的祖先。

演示有90分钟,展现了现代计算机的许多功能:包括位图图像、视频会议、文字处理和 实时协作编辑文件,还有现代图形界面的原型,比如鼠标和多窗口- 不过窗口不能重叠。

图片

远远先于那个时代,就像其它"跨时代"的产品一样,它最终失败了,至少商业上是这样,但它对当时的计算机研究者影响巨大。恩格尔巴特 因此获得1997年图灵奖。

政府资金在 1970 年代初开始减少,我们在两集前说过(第24集:冷战和消费主义)那时,恩格尔巴特团队里的许多人,包括比尔·英格利希,去了施乐公司新成立的"帕洛阿尔托研究中心",更为人熟知的名字是 Xerox PARC。

图片

他们在这里开发了第一台带真正 GUI 的计算机:施乐奥托于1973年完成,为了让计算机易于使用,需要的不只是花哨的图形,还要借助一些人们已经熟悉的概念,让人们不用培训就能很快明白如何使用。

施乐的答案是将2D屏幕当作"桌面",就像桌面上放很多文件一样,用户可以打开多个程序,每个程序都在一个框里,叫"窗口"。

图片

就像桌上的文件一样,窗口可以重叠,挡住后面的东西,还有桌面配件,比如计算器和时钟。

用户可以把配件在屏幕上四处移动,它不是现实桌面的完美复制,而是用桌面这种隐喻,因此叫"桌面隐喻"

有很多方法来设计界面,但 Alto 团队用窗口,图标,菜单和指针来做,因此叫 WIMP 界面,如今大部分图形界面都用这个。

它还提供了一套基本部件,可复用的基本元素,比如按钮,打勾框,滑动条和标签页,这些也来自现实世界,让人们有熟悉感。

GUI 程序就是这些小组件组成的,让我们试着写一个简单例子。

首先,我们必须告诉操作系统,为程序创建一个窗口,我们通过 GUI API 实现,需要指定窗口的名字和大小,假设是 500×500 像素。

现在再加一些小组件,一个文本框和一个按钮,创建它们需要一些参数。

首先要指定出现在哪个窗口,因为程序可以有多个窗口,还要指定默认文字,窗口中的 X,Y 位置以及宽度和高度。

好,现在我们有个看起来像 GUI 程序的东西,但它还没有功能。

图片

如果点 Roll 按钮,什么也不会发生,在之前的例子中,代码是从上到下执行的,但 GUI 是 "事件驱动编程",代码可以在任意时间执行以响应事件。

这里是用户触发事件,比如点击按钮,选一个菜单项,或滚动窗口,或一只猫踩过键盘,就会一次触发好多事件!

假设当用户点 Roll 按钮,我们产生1到20之间的随机数,然后在文本框中,显示这个数字,我们可以写一个函数来做。

我们还可以让它变有趣些,假设随机数是 20,就把背景颜色变成血红色!

最后,把代码与"事件"相连,每次点按钮时都触发代码,那么,要设置事件触发时,由哪个函数来处理。

图片

我们可以在初始化函数中,加一行代码来实现,我们要处理的,是"点击"事件,然后函数会处理这个事件。

现在完成了。

可以点按钮点上一整天,每次都会执行 rollD20 函数,这就是程序背后的原理。

在编辑器里点 粗体 或菜单里选 关机,一个处理该事件的函数会触发,希望不会随机到 20。

好,现在回到施乐奥托!大约制作了2000台奥托,有的在施乐公司内部用,有的送给大学实验室,从来没有商业出售过。

然而,PARC 团队不断完善硬件和软件,最终于1981年发布了 施乐之星系统,施乐之星扩展了"桌面隐喻"。

图片

现在文件看起来就像一张纸,还可以存在文件夹里,这些都可以放桌面上,或数字文件柜里,这样来隐喻底层的文件系统。

从用户角度来看,是一层新抽象!

施乐卖的是印刷机,但在文本和图形制作工具领域也有领先。

例如,他们首先使用了"剪切""复制""粘贴"这样的术语,这个比喻来自编辑打字机文件。真的是剪刀"剪切" ,然后胶水"粘贴" 到另一个文件。

然后再复印一次,新文件就是一层了,看不出编辑的痕迹。

感谢计算机的出现!

文字处理软件出现后,这种手工做法就消失了,Apple II 和 Commodore PET 上有文字处理软件,但施乐在这点上走的更远。

无论你在计算机上做什么,文件打印出来应该长得一样,他们叫这个"所见即所得"。

图片

不幸的是,就像恩格尔巴特的 oN-Line System,施乐之星也领先于那个时代,销售量不高,因为在办公室里配一个,相当如今20万美元。

IBM 同年推出了 IBM PC,之后便宜的"IBM兼容"计算机席卷市场,但 PARC 研究人员花了十几年做的这些,没有被浪费。

1979年12月,施乐之星出货前一年半,有个人去施乐公司参观,你可能听说过这个人:史蒂夫·乔布斯,这次参观有很多传闻。

许多人认为,乔布斯和苹果偷走了施乐的创意,但那不是事实。

事实上是施乐公司主动找苹果,希望合作,最终施乐还买了苹果的一百万美元股份,在苹果备受瞩目的 首次公开募股(IPO) 前买的。

但一个额外条款是:"公布一切施乐研究中心正在进行的酷工作",史蒂夫知道他们很厉害,但他完全没预想到这些。

图片

其中有个演示是,一个清晰的位图显示器上,运行着施乐公司的图形界面,操作全靠鼠标直观进行。

史蒂夫后来说:"就像拨开了眼前的一层迷纱,我可以看到计算机产业的未来。"史蒂夫和随行的工程师回到苹果公司,开始开发新功能,比如菜单栏和垃圾桶,垃圾桶存删除文件,满了甚至会膨胀 - 再次使用了隐喻。

苹果第一款有图形界面和鼠标的产品,是 1983 年发行的 Apple Lisa,一台超级先进的机器,标了"超级先进"的价格,差不多是如今的 25000 美元。

但在市场上同样失败,幸运的是,苹果还有另一个项目:Macintosh,于 1984 年发布,价格大约是如今的6000美元 - Lisa 的四分之一。

它成功了,开售100天就卖了7万台,但在最初的狂潮后,销售额开始波动,苹果公司卖的 Apple II 比 Mac 多。

一个大问题是:没人给这台新机器做软件,之后情况变得更糟,竞争对手赶上来了,不久,其它价格只有 Mac 几分之一的个人计算机,有了原始但可用的图形界面。

消费者认可它们, PC 软件开发者也认可,随着苹果的财务状况日益严峻,以及和苹果新 CEO 约翰·斯卡利 的关系日益紧张,史蒂夫乔布斯被赶出了苹果公司。

几个月后,微软发布了 Windows 1.0,它也许不如 Mac OS 漂亮,但让微软在市场中站稳脚跟,奠定了统治地位,十年内,95%的个人计算机上都有微软的 Windows。

图片

最初,Mac OS 的爱好者还可以说,Mac 有卓越的图形界面和易用性,Windows 早期版本都是基于 DOS,而 DOS 设计时没想过运行图形界面。

但 Windows 3.1 之后,微软开始开发新的,面向消费者的 GUI 操作系统,叫 Windows 95,这是一个意义非凡的版本,不仅提供精美的界面,还有 Mac OS 没有的高级功能,比如"多任务"和"受保护内存"。Windows 95 引入了许多,如今依然见得到的 GUI 元素,比如开始菜单,任务栏和 Windows 文件管理器。

不过微软也失败过,为了让桌面更简单友好,微软开发了一个产品叫 Microsoft Bob。

将比喻用到极致,现在屏幕上有了一个虚拟房间,程序是物品,可以放在桌子和书架上,甚至还有噼啪作响的壁炉和提供帮助的虚拟狗狗。

图片

你看到那边的门没?是的,那些门通往不同房间,房间里有不同程序。

你可能猜到了,它没有获得成功,这是一个好例子,说明如今的用户界面是自然选择后的结果。

无论你用的是,Windows,Mac,Linux 或其他 GUI,几乎都是施乐奥托 WIMP 的变化版,一路上,人们试了各种做法并失败了,一切都必须发明,测试,改进,适应或抛弃。

如今,图形界面无处不在,使用体验一般只是可以接受,而不是非常好,你肯定体验过差劲的设计。

比如下载了很烂的 App,用过别人糟糕的手机,或者看到过很差的网站,因此,计算机科学家和界面设计师会继续努力工作,做出更好更强大的界面,朝着恩格尔巴特"增强人类智能"的愿景努力。

我们下节课见。


以上内容就是 26. 图形用户界面 的内容,感兴趣的同学记得点赞、关注、转发、收藏哦!

我会不定期发布课程的讲解!

更多技术文章,全网首发公众号 “摸鱼IT” 锁定 -上午11点 - ,感谢大家关注、转发、点赞!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/362837.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【人工智能领域之深度学习】

人工智能领域之深度学习 深度学习的进展深度学习在过去几年取得了很多新进展。以下是其中一些重要的方面:总结 深度学习的进展 深度学习是人工智能领域的一个重要分支,它利用神经网络模拟人类大脑的学习过程,通过大量数据训练模型&#xff0…

虚拟机(VMware)ubuntu16.04 直接连接网口设备 USRP 吊舱

编辑虚拟网络编辑器 点击之后 选择网卡之后,点击确定。 电脑配置 使用了:192.168.2.56 虚拟机内部配置 和PC的配置一致

机器学习 - 代价函数

场景 上次简单学习了支持向量机的概念。概念如下: 支持向量机(SVM):SVM是一种监督学习算法,常用于分类问题。它的目标是找到一个超平面(在二维空间中是一条线,在更高维空间中是一个面&#xf…

简单实践 java spring cloud nacos注册中心

1.概要 1.1 说明 使用nacos做为注册中 1.2 要点 spring-cloud-alibaba-dependenciesspring-cloud-starter-alibaba-nacos-discovery spring-boot-starter-web SpringBootApplication EnableDiscoveryClient SpringApplication.run(Main.class); RestController Reques…

如何在树莓派安装运行Nginx实现无公网ip环境访问内网静态网站

文章目录 1. Nginx安装2. 安装cpolar3.配置域名访问Nginx4. 固定域名访问5. 配置静态站点 安装 Nginx(发音为“engine-x”)可以将您的树莓派变成一个强大的 Web 服务器,可以用于托管网站或 Web 应用程序。相比其他 Web 服务器,Ngi…

SW-LIMS实现化工企业危险化学品信息化管理

随着化工产业的不断发展,危险化学品的生产和使用在经济和社会发展中扮演着重要的角色。然而,危险化学品的安全隐患也同样日益突出,从危化品的生产到储存、运输和使用,如果控制不当,很容易造成安全事故,而一旦发生安全事故,不仅会造成巨大的经济损失,还将威胁到人类的生命健康与…

【Linux】VMware Workstation16安装银河麒麟高级服务器操作系统V10 SP3 AMD64

目录 一、麒麟服务器概述 二、安装步骤 设置硬盘大小 完成配置 修改内存 处理器等设备配置 选择直接安装 配置磁盘 网络配置 设置root账号密码 开始安装 启动完成 一、麒麟服务器概述 银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云…

从零学习Linux操作系统 第二十三部分 系统中火墙的管理及优化

1 、实验环境设定 第一台主机需要两个网卡 另一台主机一个网卡桥接到VMnet0上 第一台主机保证能够和windows保持连接 设定第一块儿网卡能够与Windows连接 设定第二台主机能够与第一台主机连接 二、火墙中的基本名词及知识 火墙就相当于是一个表格,这个表格里写…

一个 WPF + MudBlazor 的项目模板(附:多项目模板制作方法)

最近做了几个 WPF MudBlazor 的小东西,每次从头搭建环境比较繁琐,然鹅搭建过程还没啥技术含量,索性就直接做了个模板,方便以后使用。 1. 介绍 一个用来创建 .NET 8 WPF MudBlazor 的项目模板 适用于 VS2022 用法:…

【Linux】初始进程地址空间

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 目录 一、再谈fork二、程序地址空间2.1代码验证 三、虚拟地址&am…

Oracle 集群】RAC知识图文详细教程(四)--缓存融合技术和主要后台进程

Cache Fusion 原理 前面已经介绍了 RAC 的后台进程,为了更深入的了解这些后台进程的工作原理,先了解一下 RAC 中多节点对共享数据文件访问的管理是如何进行的。要了解 RAC 工作原理的中心,需要知道 Cache Fusion 这个重要的概念,要…

canvas自定义扩展方法:文字自动换行

查看专栏目录 canvas实例应用100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…

专业邮件营销系统选蜂邮EDM:0.0041元/封!

邮件营销系统如何选择?做电子邮件营销的软件推荐? 邮件营销系统,您是否还在为高昂的价格而犹豫不决?是否还在寻找性价比超高的解决方案?别着急,蜂邮EDM来帮您解决问题! 邮件营销系统的魅力 邮…

【2024全网最详细】Google 搜索命令终极指南

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 你是否尝试过使用 Google 搜索作为免费的 SEO …

Flink 读取 Kafka 消息写入 Hudi 表无报错但没有写入任何记录的解决方法

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,京东购书链接:https://item.jd.com/12677623.html,扫描左侧二维…

OceanBase OBCA题目解析第3题:关于自动负载均衡与智能路由描述正确的是哪个?

考试科目:OceanBase OBCA 考试题量:50题 通过分数:60% 关于自动负载均衡与智能路由描述正确的是哪个? A、系统默D认配置下,主副本都在同一台服务器上 B、系统默认配置下,主副本都在同一个Zone内 C、SQL不…

TiDedup: A New Distributed Deduplication Architecture for Ceph——论文泛读

ATC 2023 Paper 分布式元数据论文汇总 问题 Ceph 是一个广泛部署的分布式存储系统,Ceph 中的集群级去重设计,由于一些缺点难以在生产环境中使用:(1)去重唯一数据会导致过多的元数据消耗;(2&am…

麒麟V10 mate-indicator进程占用内存过高问题

给客户新划的5台虚拟机,操作系统是麒麟V10,用户反映什么软件都没装系统内存占用就达到80%。 百度了一下是麒麟的bug,内存泄漏。官方分析报告。 解决方法:下载相应rpm包并安装即可解决。 1.确定麒麟版本 cat /etc/*release Ter…

Docker 入门第一篇 安装Docker Desktop并结合Springboot在Idea中应用

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 往期专栏回顾 专栏描述…

使用宝塔面板访问MySQL数据库

文章目录 前言一、安装访问工具二、查看数据库总结 前言 前面我们已经部署了前后端项目,但是却不能得到数据库的信息,看有谁再使用你的项目。例如员工、用户等等。本次博客进行讲解如何在宝塔面板里面访问MySQL数据库。 一、安装访问工具 1、打开软件商…