Alan Cooper ,“VB之父”“交互设计之父”,荣获视窗先锋奖(Microsoft Windows Pioneer)和软件梦幻奖(Software Visionary),他创建了Cooper交互设计公司,此公司一直致力于创建专为用户而设计的应用软件。

作者 | Alan Cooper

译者 | 风车云马,责编 | Elle

出品 | CSDN(ID:CSDNnews)

以下为译文:

自从我的公司库柏(Cooper)换了新老板之后,两年来我发现自己在库柏网站上发布的一些个人信息被悄悄删除了。其中之一是我在1995年写的一篇文章,它讲述了Visual Basic的起源故事。这是一段刻骨铭心的、引人入胜的历史,所以我想在这里重新发布,与25年前的原始版本没有任何变化。

VB有史以来出版的第一本书,名为《Visual Basic操作指南》(现在已经出了第二版,由Waite集团出版社出版)。Mitchell Waite在书的前言中称我为“Visual Basic之父”,我很喜欢这个称呼,在我的个人传记中经常引用它。

在20世纪80年代,我主要编写软件,然后卖给软件公司。1986年,我选择了微软Windows平台。它不仅支持所有预期的GUI功能,还有一个独特的、令人满意的特性:使用动态链接库(DLL),您可以动态创建配置工具。当我得知这一消息时,我感觉Windows会有一个远大的未来。不过我还了解到另一个事实:它的shell程序很糟糕。

在业余时间里,我开始写一个比Windows更好的shell程序。我叫它“Tripod”。微软最初的shell,叫做MSDOS.EXE,它可以说是Windows发展的绊脚石之一。我试图通过Tripod实现更容易的使用和配置。但直到1987年底,我与客户见面时,才突然想到了Tripod的关键设计策略。当信息技术部经理向我解释他需要为不同的用户群创建和发布各种shell解决方案时,我意识到一个难题:没有所谓的理想shell。每个用户都需要特定的shell,根据自己的需要和技能水平进行配置。那一瞬间,我看到了shell设计问题的解决方案: 构建一个shell工具集。在这个工具集中,每个用户都能够构建他们所需的shell,以满足他们独特的应用程序。我不用告诉用户理想的shell是什么,他们可以设计自己的、个性化的理想shell。

一旦确定了设计愿景,设计的细节就相对容易了。用户将通过一个工具面板,创建“表单”并使用工具实例。工具集既包括标准控件,如列表框和按钮,还包括特殊的、扩展功能的shell,如自动显示目录内容的列表框。

我开始研究这个新版本的Tripod,大概几个月后初具雏形。其突出的一个特性是,界面完全可以通过拖放操作。用户可以将两个控件(我称之为gizmo)连接在一起,方法是右键单击并从一个gizmo拖动到另一个gizmo。通过一个可视化的箭头将一个gizmo事件和另一个gizmo方法逻辑地连接起来。后来,微软放弃了箭头,但保留了事件/方法模型。

我开始在这个行业里展示Tripod。硅谷的许多公司都看到了这一点,但很少有人表示出真正的兴趣。在1988年3月,我把这个模型展示给比尔·盖茨,他觉得这很“酷”,而且很有潜力,会对整个产品线产生重大影响。在接下来的几个月里,我们敲定了一笔交易。很快Tripod这个名字曝光率很高,我们就把它改成了“Ruby”。与此同时,我召集了一批程序员精英来构建更高质量的发布版本。

这个团队由马克·默克、加里·克瑞金、迈克·吉尔里和弗兰克·拉布组成。我们做的第一件事是扔掉旧的原型代码,重新开始。尽管它已经超过25000行C代码,还包含了许多有价值的想法。在接下来的18个月里,整个团队努力工作,功夫不负有心人,最终开发完成了Ruby。我们的产品经过了微软质量保证团队的审核,并于1990年初完成提交。

Ruby产品在软件设计方面体现了许多重要的进步,其中有两个特别成功。正如我提到的,Windows的动态链接功能一直吸引着我,但是拥有这些工具和知道如何使用它们是两码事。使用Ruby,我终于发现了动态链接的两种实际用途:首先,它是可安装的,并且可以动态扩展。其次,gizmos的面板可以动态添加。

Ruby附带了一种小型语言——用于执行shell程序的十几条简单命令。但是,这种语言是作为dll实现的,可以在运行时安装。从最初的讨论开始,我和微软就有了发展这种语言的想法,甚至想用一种“真正的”语言完全取代它。C语言是最常被提到的候选语言,但最终,微软将其完全替换为QuickBasic。这种语言与前端的新结合是静态的、永久性的。

在设计过程的早期,我萌生了gizmo动态化的想法。我设想了这样一个产品:第三方供应商可以编写自己的gizmo dll,用户可以将它们添加到特定领域的产品中,而无需重新编译。我们定义了一个Ruby接口,可以查询环境中的可执行文件。如果文件响应正确,Ruby就知道它是另一个协作的gizmo,并请求在工具面板中显示。这个接口最终被称为VBX。据我所知,这是第一次在操作系统之外实际使用Windows的动态链接功能。它的成功充分证明了我的想法和设计是正确的。

因为微软拥有Ruby的专有权,所以他们可以随心所欲地使用。最初的意图是将它作为一个更强大和更复杂的新shell与Windows 3.0一起发布,就像现在的Windows 95一样。然而,微软决定推迟发布Ruby,其shell与当时微软拥有的OS|2的shell几乎一模一样;并通过添加QuickBasic将其从面向所有Windows用户的shell构造集转换为面向专业程序员的可视化编程语言。一开始,我对微软的决定感到非常沮丧,并提出了反对意见。然而,最终产品的强大功能给我留下了深刻的印象,很快我就成为了Visual Basic的热情支持者。

在我从事Ruby开发的所有时间里,我与微软签订了严格的保密协议,不能告诉任何人我在做什么。在将近四年的时间里,我一直保持沉默,尽管我知道Ruby会改变编程领域。VB发布后不久,我的朋友Mitchell Waite打电话给我,问我是不是VB中提到的那个Cooper。我承认是我,他邀请我吃午饭,我们在旧金山见面,我向他讲述了我的故事。当我讲完时,他惊讶地看着我说:“你成为了Visual Basic之父!”

我有两个儿子,一个9岁,一个10岁。虽然我在他们成长的过程中起了很大的作用,但他们都有独立思考的能力。当我看着他们以自己的方式成长,并对自己的生活做出自己的决定时,我明白了做一个父亲的真正含义。同时,我骄傲的成为VB之父,就像儿子的父亲那样,看着它一步步成长、成熟,最终创造出一种属于自己的文化。

1994年5月,在亚特兰大举行的Windows世界大会上,比尔·盖茨颁发了7个Windows先锋奖,其中一个奖项是为了表彰我成功创建了Visual Basic。我感到非常的荣幸!

原文链接:https://medium.com/@MrAlanCooper/my-one-phrase-resum%C3%A9-98776ef8a6fa

本文为 CSDN 翻译,转载请注明来源出处。

【End】

Python的学习方式

https://edu.csdn.net/topic/python115?utm_source=csdn_bw

热 文 推 荐 

☞神龙神龙你擦亮眼,阿里巴巴要“上天”!

传 ofo 年底裁员超 50%;Vivo 支持谷歌 Fuchsia OS;Spring Boot 2.2.2 发布 | 极客头条

程序员的救星-ThinkPad T490 对比体验

☞“给微软的 10 条建议!”

☞华为生产不含美国芯片的手机!

☞抢饭碗?00 后程序员来了!

☞微软张若非:搜索引擎和广告系统,那些你所不知的AI落地技术

☞【图解】记一次手撕算法面试:字节跳动的面试官把我四连击了

点击阅读原文,即刻参加调查!

你点的每个“在看”,我都认真当成了喜欢

Visual Basic之父回忆往事相关推荐

  1. Visual Basic十年风云

    Visual Basic十年风云 Visual Basic十年风云 我从来没有想到过,撰写这篇文章需要十年的光阴 有时我自清晨的睡梦中醒来,望着窗外高楼间透露的微稀曙光 耳畔都不免响起那些岁月烙印后的 ...

  2. 零点起飞学Visual Basic pdf

    下载地址:网盘下载 内容简介 编辑 张月萍编著的<零点起飞学VisualBasic>结合大量实例和项目开发案例,由浅入深.循序渐进地介绍了Visual Basic开发的知识.本书特意提供了 ...

  3. 在 Visual Basic .NET 或 JScript 代码中使用早期绑定

    以往,开发人员喜欢使用 Visual Basic.VBScript 和 JScript 的原因之一就是它们所谓"无类型"的性质.变量不需要显式类型声明,并能够简单地通过使用来创建它 ...

  4. vba 编辑combobox内容_初识Visual Basic编辑器并建立一段简单的代码

    大家好,从今日开始我正式推出"VBA之EXCEL应用"教程,这个教程是面向初学人员的教程,教程一共三册,十七个章节,从简单的录制宏实现一直讲到窗体的搭建,都是我们在利用EXCEL工 ...

  5. Visual Basic 2005 – 如何播放剪贴簿中的音效数据

    我们可以将音效数据复制到剪贴簿吗?当然可以.我们可以播放剪贴簿中的音效数据吗?当然可以.问题是,如何作呢? 以下的程序代码示范如何播放先前已复制到剪贴簿中的音效数据: Try    ' 将剪贴簿中的数 ...

  6. 看我用汉语编程(汉语Visual Basic编程软件发布)

    http://baike.baidu.com/view/14260.html?tp=0_01 Visual Basic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言.从任何标准来说, ...

  7. Visual Basic 2005 - 如何将色彩字符串转换成 Color 结构

    Visual Basic 2005 - 如何将色彩字符串转换成 Color 结构   之前有读者询问,如何将字符串转换成色彩,当时我们建议可以利用 ColorDialog 来让用户选取颜色.不过这样做 ...

  8. 特性(C# 和 Visual Basic)

    特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集.类型.方法.属性等)相关联. 特性与程序实体关联后,即可在运行时使用名为"反射"的技术查询特性. 有关更多信息,请参见 ...

  9. 防止对 Visual Basic .NET 或 C# 代码进行反相工程

    发布日期: 12/28/2004 | 更新日期: 12/28/2004 Gabriel Torok和 Bill Leach 本文假设您熟悉 .NET 与 C# 摘要 .NET 体系结构的优势之一在于, ...

最新文章

  1. linux将汇编转为机器码,汇编语言 高级语言 机器语言 本地代码
  2. inittab文件剖析[CentOS 5.X](第二版)
  3. mac使用codelite运行程序没有输出
  4. 简述python常用的函数模块_Python学习笔记(十三)—函数常用模块
  5. cmd更改分辨率_快速切换Mac电脑的屏幕分辨率
  6. html 自动生产,【SQL】用Sql Server自动生产html格式的数据字典
  7. java string 日期格式_Java 日期格式和String 转换
  8. 第四步_安装gcc交叉编译工具
  9. 第十六章 我国农业生态平衡
  10. flash mx拖拽实例_Flash MX 2004动态串面板
  11. 数学建模写作指导20篇(二)-数学建模论文写作通用模板
  12. A pretty carpet
  13. 记一次机房断电办公室网络瘫痪的恢复经过
  14. HNU 12814 SIRO Challenge(最短路+状态压缩+dp)
  15. 路由器 设置DNS 域名拦截 重定向
  16. 不会产生ICMP差错报文的情况
  17. Java jdk源代码的Math包
  18. 怎样做一个iOS App的启动分层引导动画
  19. 好游戏必须知道玩家需要什么?
  20. python :SyntaxError: Non-ASCII character '\xe5' in file 错误

热门文章

  1. Asp.Net MVC 3【Filters(过滤器)】
  2. 正则表达式和Java编程语言1zz
  3. 产品工作中/阅读中的涓滴意念
  4. 在ubuntu16.04安装hadoop集群时ssh不成功
  5. 计算机教师专业知识,小学信息技术教师专业知识考试复习题及答案【精选】.doc...
  6. mysql 事务回滚_简短截说阐述redis中事务的使用
  7. 大智慧 软件 开发语言_智慧工厂培训软件开发流程篇
  8. windows聚焦图片为什么不更新了_网站内容更新,相同内容,不同网站为什么排名不一样?...
  9. 苹果手机软件升级密码_拥有苹果全家桶以后那些事
  10. linux g++开启C++11/14支持