科技: 人物 企业 技术 IT业 TMT
科普: 自然 科学 科幻 宇宙 科学家
通信: 历史 技术 手机 词典 3G馆
索引: 分类 推荐 专题 热点 排行榜
互联网: 广告 营销 政务 游戏 google
新媒体: 社交 博客 学者 人物 传播学
新思想: 网站 新书 新知 新词 思想家
图书馆: 文化 商业 管理 经济 期刊
网络文化: 社会 红人 黑客 治理 亚文化
创业百科: VC 词典 指南 案例 创业史
前沿科技: 清洁 绿色 纳米 生物 环保
知识产权: 盗版 共享 学人 法规 著作
用户名: 密码: 注册 忘记密码?
    创建新词条
科技百科
  • 人气指数: 8355 次
  • 编辑次数: 2 次 历史版本
  • 更新时间: 2010-02-21
方兴东
方兴东
发短消息
高兴
高兴
发短消息
相关词条
戴夫·海厄特
戴夫·海厄特
最佳编程语录大全
最佳编程语录大全
程序员笑话大全
程序员笑话大全
下一代程序员
下一代程序员
女程序员
女程序员
彼得·诺维格
彼得·诺维格
Russ Cox
Russ Cox
15名程序员界性感的奇葩
15名程序员界性感的奇葩
Mike Kruzeniski
Mike Kruzeniski
Jeff Fong
Jeff Fong
推荐词条
希拉里二度竞选
希拉里二度竞选
《互联网百科系列》
《互联网百科系列》
《黑客百科》
《黑客百科》
《网络舆情百科》
《网络舆情百科》
《网络治理百科》
《网络治理百科》
《硅谷百科》
《硅谷百科》
2017年特斯拉
2017年特斯拉
MIT黑客全纪录
MIT黑客全纪录
桑达尔·皮查伊
桑达尔·皮查伊
阿里双十一成交额
阿里双十一成交额
最新词条

热门标签

微博侠 数字营销2011年度总结 政务微博元年 2011微博十大事件 美国十大创业孵化器 盘点美国导师型创业孵化器 盘点导师型创业孵化器 TechStars 智能电视大战前夜 竞争型国企 公益型国企 2011央视经济年度人物 Rhianna Pratchett 莱恩娜·普莱契 Zynga与Facebook关系 Zynga盈利危机 2010年手机社交游戏行业分析报告 游戏奖励 主流手机游戏公司运营表现 主流手机游戏公司运营对比数据 创建游戏原型 正反馈现象 易用性设计增强游戏体验 易用性设计 《The Sims Social》社交亮 心理生理学与游戏 Kixeye Storm8 Storm8公司 女性玩家营销策略 休闲游戏的创新性 游戏运营的数据分析 社交游戏分析学常见术语 游戏运营数据解析 iPad风行美国校园 iPad终结传统教科书 游戏平衡性 成长类型及情感元素 鸿蒙国际 云骗钱 2011年政务微博报告 《2011年政务微博报告》 方正产业图谱 方正改制考 通信企业属公益型国企 善用玩家作弊行为 手机游戏传播 每用户平均收入 ARPU值 ARPU 游戏授权三面观 游戏设计所运用的化学原理 iOS应用人性化界面设计原则 硬核游戏 硬核社交游戏 生物测量法研究玩家 全球移动用户 用户研究三部曲 Tagged转型故事 Tagged Instagram火爆的3大原因 全球第四大社交网络Badoo Badoo 2011年最迅猛的20大创业公司 病毒式传播功能支持的游戏设计 病毒式传播功能 美国社交游戏虚拟商品收益 Flipboard改变阅读 盘点10大最难iPhone游戏 移动应用设计7大主流趋势 成功的设计文件十个要点 游戏设计文件 应用内置付费功能 内置付费功能 IAP功能 IAP IAP模式 游戏易用性测试 生理心理游戏评估 游戏化游戏 全美社交游戏规模 美国社交游戏市场 全球平板电脑出货量 Facebook虚拟商品收益 Facebook全球广告营收 Facebook广告营收 失败游戏设计的数宗罪名 休闲游戏设计要点 玩游戏可提高认知能力 玩游戏与认知能力 全球游戏广告 独立开发者提高工作效率的100个要点 Facebook亚洲用户 免费游戏的10种创收模式 人类大脑可下载 2012年最值得期待的20位硅谷企业家 做空中概股的幕后黑手 做空中概股幕后黑手 苹果2013营收 Playfish社交游戏架构

John Ousterhout 发表评论(0) 编辑词条

约翰·奥斯特豪特(John Ousterhout),Tcl语言发明人

目录

[显示全部]

简介编辑本段回目录

John Kenneth Ousterhout (pronounced /ˈoʊstərhaʊt/) is the chairman of Electric Cloud, Inc. and a professor of computer science at Stanford University. He founded Electric Cloud with John Graham-Cumming. Ousterhout previously was a professor of computer science at University of California, Berkeley where he created the Tcl scripting language and the Tk platform-independent widget toolkit. Ousterhout also led the research group that designed the experimental Sprite operating system and the first log-structured file system. Ousterhout is also the original author of the Magic VLSI Computer-aided design program.

He received his Bachelor's degree in Physics from Yale University in 1975, and his Ph.D. in computer science from Carnegie Mellon University in 1980.

Ousterhout received the Grace Murray Hopper Award in 1987 and in 1994 he was inducted as a Fellow of the Association for Computing Machinery. Ousterhout is also a member of the National Academy of Engineering.

In 1994, Ousterhout left Berkeley to join Sun Microsystems Laboratories, which hired a team to join him in Tcl development. After several years at Sun, he left and co-founded Scriptics, Inc. (later renamed Ajuba Solutions) in January 1998 to provide professional Tcl development tools and most of the Tcl team followed him from Sun. Ajuba was purchased by Interwoven in October 2000. He joined the faculty of Stanford University in 2008.

Tcl发明人John Ousterhout:百炼钢化为绕指柔编辑本段回目录

Tcl(Tool Command Language)是一种可嵌入的命令脚本化语言,由John Ousterhout 发明于1988 年。Tcl因代码可重用性高、功能强大但简单易学而著名,经常被用于快速原型开发、脚本编程、GUI和测试等方面,十分受用户欢迎。回顾Tcl 过去二十年的发展过程,以及发明人Ousterhout 从伯克利到Sun 再到scriptics的人生经历,我们将更生动地了解这段成功历史的始末。

John Ousterhout1975 年获得耶鲁大学物理学学士学位,1980 年获得卡内基梅隆大学的计算机科学博士学位,随后在加州大学伯克利分校执教。在他的集成电路设计工具项目中,Ousterhout 发现集成电路CAD设计中编程费力而又低效,因此萌生想法,力图开发一种新的可嵌入编程语言。Ousterhout希望这种新的编程语言命令脚本灵活,具有良好的扩展性和组件黏性,可以基于它更加方便地开发出新的组件。1988 年春天,Ousterhout 带领研究小组设计实验,开始在一个图形化的文本编辑器中使用第一版的Tcl。Tcl语言的高妙之处在于,将程序设计概念高度抽象,真正把程序设计与操作系统底层结构隔开,使很多应用无缝、有效地集成在一起,具有良好的可移植性。

20世纪80年代末,编程语言纯粹基于文本交互太过笨拙,并不能满足人们的需求。Ousterhout 思考:像Tcl 这样的嵌入式命令语言,作为脚本语言对集成组件也会有用,于是决定创建一个GUI 组件集合作为对Tcl 的扩展,把这些组件集成到图形用户界面。很快,Ousterhout 验证了自己的理论,带给我们另一样好东西——图形开发工具箱Tk。大概两年后Tk具有了足够的实用功能,于1991年初发布了Tk 1.0版。Tk的GUI工具既简单又强大,用Tcl来开发GUI 比用Motif 可以少投入5倍到10倍的精力。再加上可嵌入特性,大大缓解了开发交互式应用程序的高开支问题。因此在接下来的几年里,成千上万的 Tcl/Tk 应用程序使用 Tk 开发出来,同时Tk被改制到各种脚本语言中去,如 Eiffel、Modula-3、Prolog、Python、Scheme等。

Ousterhout带领的Tcl/Tk开发团队并没有在风光无限时踏步不前,他觉得Tcl最终需要进行商业盈利才能在长远的开发中生存下来。1994年Ousterhout 离开伯克利和从业14年的学术界,接受sun公司的邀请投身工业界,组建Tcl 开发小组。商业运作后的Tcl/Tk迅速发展,到1995年夏天,Tcl/Tk已经能够运行在Win32平台上,跟其他平台上的运行也差不多了。对Tcl/Tk的性能大规模的提升使得Tcl的使用者继续地爆炸式增长,到1997年已有数十万的Tcl开发者。

为了更好的发展Tcl,Ousterhout于1997年底离开sun,创建一个完全关注于Tcl 的公司scriptics。TclPro 1.0于1998年9月开发完成,它在市场上的巨大成功使得Tcl成为第一个满足企业中关键程序各方面要求的脚本语言。Tcl还于1998年获得了两项大奖:ACM软件系统大奖、USENIX软件工具用户组织(STUG)大奖,作为每年的“具有长远影响的软件系统”而受到表彰。

2000 年,Tcl核心团队(Tcl Core Team)成立了,从一个单独的组织中脱离出来,属于了一个广泛的团队,并建立了它的基本运行程序。Tcl被继续广为传播,应用于股票交易、科学观测、生产自动化等许多领域。

Ousterhout得到过无数的奖项,其中包括计算机软件系统奖,计算机格雷斯穆雷霍珀奖,国家科学基金会总统青年科学家奖,以及加州大学伯克利分校杰出教学奖,等等。

Tcl语法简介 编辑本段回目录

Tcl 是用于工具命令语言的一个解释器。它由作为基本命令解释器嵌入到工具(比如编辑器、调试器等)中的一个库包组成。Tcl 提供了(a)用于简单的文本命令语言的分析器,(b)一组内置的实用命令,和(c)一个 C 接口,工具通过它用特定于工具的命令增加内置命令。Tcl 在与窗口组件库整合的时候特别有吸引力:它通过了提供变量、过程、表达式等机制增进了组件的可编程性;它允许用户编程组件的外观和动作二者;并且它在交互式程序之间提供一个简单但强力的通信机制

作为一种脚本语言,Tcl具有简单的语法
Tcl/Tk 的发明人 John Ousterhout 教授在八十年代初,是伯克利大学的教授。在其教学过程中,他发现在集成电路 CAD 设计中,很多时间是花在编程建立测试环境上。并且,环境一旦发生了变化,就要重新修改代码以适应。这种费力而又低效的方法,迫使 Ousterhout 教授力图寻找一种新的编程语言,它即要有好的代码可重用性,又要简单易学,这样就促成了 Tcl (Tool Command Language) 语言的产生。
Tcl 最初的构想的是希望把编程按照基于组件的方法 (component approach),即与其为单个的应用程序编写成百上千行的程序代码,不如寻找一个种方法将程序分割成一个个小的, 具备一定“完整”功能的,可重复使用的组件。这些小的组件小到可以基本满足一些独立的应用程序的需求,其它部分可由这些小的组件功能基础上生成。不同的组件有不同的功能,用于不同的目的。并可为其它的应用程序所利用。当然, 这种语言还要有良好的扩展性, 以便用户为其增添新的功能模块。最后,需要用一种强的,灵活的“胶水”把这些组件“粘”合在一起, 使各个组件之间可互相“通信”,协同工作。程序设计有如拼图游戏一样,这种设计思想与后来的 Java 不谋而合。终于在 1988 年的春天, 这种强大灵活的胶水 - Tcl 语言被发明出来了。
按照 Ousterhout 教授的定义, Tcl 是一种可嵌入的命令脚本化语言 (Command Script Language)。“可嵌入”是指把很多应用有效,无缝地集成在一起。“命令”是指每一条 Tcl 语句都可以理解成命令加参数的形式:
     命令 [参数 1] [参数 2] [参数 3] [参数 4] ...... [参数 N]
脚本化是指 Tcl 为特殊的,特定的任务所设计。但从现在角度看,可以说 Tcl 是一种集 C 语言灵活强大的功能与 BASIC 语言易学高效的风格于一身的通用程序设计语言。
Tk (Tool Kit) 是基于 Tcl 的图形程序开发工具箱, 是 Tcl 的重要扩展部分。Tk 隐含许多 C/C++ 程序员需要了解的程序设计细节, 可快速地开发基于图形界面 Windows 的程序。据称, 用 Tcl/Tk 开发一个简单的 GUI 应用程序只需几个小时, 比用 C/C++ 要提高效率十倍。需要指明的是这里所说的“窗口”是指 Tcl 定义的窗口,与 X-Windows 与 MS Windows 的定义有所不同,但它可完美地运行在以上两个系统上。
Tcl 代表了“tool command language - 工具命令语言”。它由一个库包组成,程序可以把它用作自己的命令语言的基础。Tcl 的开发由两项观察所推动。第一项观察是,通用可编程命令语言通过允许用户用命令语言写程序来扩展工具的内置设施,从而扩大了工具的能力。在强力的命令语言之中最众所周知的例子是 UNIX shell[5] 和 Emacs 编辑器[8]。在各自情况下,出现的有着不同寻常能力的计算环境,在很大程度上是因为能获得可编程的命令语言。


第二个促成它的观察是交互式应用正在增长。在 1970 年代晚期和 1980 年代早期的分时环境中,几乎所有的程序都是面向批处理的。典型的使用交互式的命令 shell 来调用它们。除了 shell 之外,只有少数其他的程序是交互式的,比如编辑器和邮件器。正好相反,今天使用的个人工作站,带有它们自己的光栅显示器和鼠标,鼓励了一种不同的系统结构,在这里大量的程序是交互式的,并且最常见的交互方式是直接用鼠标操纵单独的应用。此外,今天能获得的大显示器使很多交互式的应用立即活跃起来成为可能,而对于在十年前很小的屏幕这是不实际的。

不幸的是,很少的今天的交互式程序拥有 shell 或 Emacs 命令语言的能力。在这里好的命令语言是存在着的,它们趋向与特定的程序捆绑在一起。每个新的交互式程序都要求开发一个新的命令语言。在多数情况下,应用程序员没有时间或爱好去实现一个通用设施(特别是在应用自身很简单的时候),所以结果的命令语言趋向于带有不充分的功能和笨拙的语法。
Tcl 是一个独立于应用的命令语言。它作为一个 C 库包存在,可以用于很多不同的程序中。Tcl 库提供了用于简单但完全可编程的命令语言的一个分析器。这个库还实现了提供了通用的编程构造的一组内置命令,比如变量、列表、表达式、条件、循环和过程。单个的应用程序可以用特定于应用的命令来扩展基本的 Tcl 语言。Tcl 库还提供一组实用工具例程来简化特定于工具的命令的实现。
我相信 Tcl 在窗口环境中是特别有用的,它提供了两项优势。首先,它可以用做编制应用的界面的一个通用机制。如果一个工具基于 Tcl,则应当相对容易的去修改应用的用户界面,并使用新命令来扩展这个界面。其次和更重要的是,Tcl 为工具之间通信提供一种统一的框架。如果在所有的工具中统一使用了它,Tcl 将使工具在一起工作得比今天的状况更加优雅。
Tcl 是不寻常的因为它提供两种不同的接口: 给用户发起 Tcl 命令的一个文本接口,和给它所嵌入的应用的一个过程接口。这些接口的每个都必须是简单的、强力的和高效的。在语言设计中有四个主要的因素:
[1] 语言用于命令。几乎所有 Tcl“程序”都是短小的,很多只有一行长。多数程序将是键入的,执行一次或者几次,接着就丢弃了。这提示了这门语言应当有一个简单的语法,以便于键入命令。多数现存的编程语言都有复杂的语法;在写长程序的时候有益,但如果用做命令语言就笨拙了。
[2] 语言必须是可编程的。它应当包含通用编程构造,比如变量、过程、条件和循环,这样用户可以通过写 Tcl 过程来扩展内置的命令。可扩展性也要求简单的语法:这使 Tcl 程序生成其他 Tcl 程序变得容易了。 
[3] 语言必须允许一个简单而高效的解释器。由于 Tcl 库要包含到许多小程序中,特别是在没有共享库的机器上,解释器必须不占用太多的内存。用来解释 Tcl 命令的机制必须足够快,可用于每秒发生上百次的事件,比如鼠标移动。
[4] 语言必须允许对 C 应用的一个简单接口。它必须易于让 C 应用调用这个解释器,并易于让它们用特定于应用的命令来扩展内置的命令。这个因素是我决定不使用 Lisp 作为命令语言的原因之一:Lisp 的基本数据类型和存储管理机制与 C 实在是不同,很难在它们之间建立清晰而简单的接口。对 Tcl 我使用了对于 C 最自然的数据类型(字符串)。
Tcl 的基本语法类似于 UNIX shell:命令由用空格或 TAB 分隔的一个或多个字段组成。第一个字段是命令的名字,它可以是内置命令、特定于应用的命令、或者是由一系列的 Tcl 命令组成的过程。在第一个后面的字段都作为参数传递给命令。如同在 UNIX shell 中那样,换行字符用做命令分隔符,分号也可用来分隔在同一行上的命令。不同于 UNIX shell,每个 Tcl 命令返回一个字符串结果,或者是空串,如果不适宜返回值的话。
在 Tcl 中有四个补充的语法构造,它们给予语言一种类似 Lisp 的风格。使用花括号来组合复杂的参数;它们充当可嵌套的引用字符。如果参数的第一个字符是左花括号,则这个参数不以空白终结。转而,它终结于相匹配的右花括号。传递给这个命令的参数由在花括号中间的所有东西组成,并剥除围绕的花括号。例如,命令
set a {dog cat {horse cow mule} bear}
将收到两个参数:“a”和“dog cat {horse cow mule} bear”。这个特定命令将把变量 a 设置为等于第二个参数的一个字符串。如果参数包围在花括号中,则不对这个参数做下面描述的其他替换。花括号最常见的用途是把一个 Tcl 子程序指定为到 Tcl 命令的参数。 

脚本语言的发展历史编辑本段回目录

  这里我们以tcl语言的发展来回顾一下脚本语言的发展历史,商业化的测试脚本语言一般就是随着商业测试软件的发展来发展的,在此不作详细介绍。
  Tcl/Tk 的发明人 John Ousterhout 教授在八十年代初是伯克利大学的教授。在其教学过程中,他发现在集成电路 CAD 设计中,很多时间是花在编程建立测试环境上。并且,环境一旦发生了变化,就要重新修改代码以适应新环境。这种费力而又低效的方法,迫使 Ousterhout 教授力图寻找一种新的编程语言,它即要有好的代码可重用性,又要简单易学,这样就促成了 Tcl (Tool Command Language) 语言的产生。
  Tcl 最初的构想是希望把编程按照基于组件的方法 (component approach),即与其为单个的应用程序编写成百上千行的程序代码,不如寻找一种方法将程序分割成一个个小的, 具备一定“完整”功能的,可重复使用的组件。这些小的组件小到可以基本满足一些独立的应用程序的需求,其它部分可在这些小的组件功能基础上生成。不同的组件有不同的功能,用于不同的目的,并可为其它的应用程序所利用。当然, 这种语言还要有良好的扩展性, 以便用户为其增添新的功能模块。最后,需要用一种强的,灵活的“胶水”把这些组件“粘”合在一起, 使各个组件之间可互相“通信”,协同工作。程序设计有如拼图游戏一样,这种设计思想与后来的 Java 不谋而合。终于在 1988 年的春天, 这种强大灵活的胶水 - Tcl 语言被发明出来了。
  到了80年代图形用户界面逐渐流行的时候,Ousterhout 教授要想使基于组件的设计能够实现,需要有一个强大的有弹性的控件整合工具。这些想法在一开始考虑做Tcl的时候就产生了,Ousterhout 教授觉得像Tcl这样的嵌入式命令语言作为脚本语言对整合部件会很有用。Ousterhout 教授决定创建一些作为Tcl扩展的GUI部件并且使用Tcl来把这些部件整合到图形用户界面中,借此实践一下这个理论。这个扩展就成为了Tk。
  Tcl 在创始初期都是以开放源码的方式发布的,到了90年代初,Tcl语言得到了广泛的发展,并得到了大型厂商的支持,如SUN公司,并逐步形成了tcl社区, 这样就逐渐有了商业赢利产品的开发,同时Tcl将会继续开发开放源代码的产品,至此TCL语言进入了两种不同的发展轨道,同时也促进了tcl语言的发展和 应用。

开源十年:拨开迷雾迎向光明编辑本段回目录

  现代软件业历史上最重大的时刻之一发生在1998年,Netscape在可自由修改和重新发布的许可协议下公开了它的浏览器源代码。这一重要事件代表着自由软件运动从社区走向了主流。不久后Open Source Initiative (开放源代码促进会,OSI)成立,RMS担任主席。

  2008年4月7日,Tim O'Reilly以自由软件峰会的名义让众多自由软件的领袖和开发者聚集一堂:Linus Torvalds,Eric Allman,Kirk McKusick,Michael Tiemann,Eric Raymond,John Gilmore,Paul Vixie,Brian Behlendorf,Jamie Zawinsky,Tom Paquin,John Ousterhout,Phil Zimmermann,Rich Morin,Mark Stone,Greg Olson,Fred Baker,Larry Wall,Guido van Rossum。他们讨论了术语“free software”。“free”这个词有着不同的含义,Eric Raymond提议称作“开放源代码”,Michael Tiemann建议叫“Sourceware”。之后他们进行了投票:9票赞同“开源”,6 赞同“Sourceware”或“自由软件”。峰会的召开标志着今日自由软件(OSS)运动的开启。

  随后的十年,开源运动在各个领域展开了不同程度的探索,从被嘲笑被打击开始始终坚持自己的道路。十年后的今天的开源软件正逐渐拨开眼前的迷雾,开始迎接成功的曙光。今年的4月7日,Gartner发表一份研究报告,认为“Open source will quietly take over”(“开源将被静静地接受”),意思是说,在未来几年,几乎所有企业都将使用开源软件,而他们的老板可能并不知道这一点,喜欢说什么“SaaS”(“Software as a Service”)。Gartner集团在一份名为“The State of Open Source 2008”的研究报告中预测:到2012年,(全球)90%以上的企业都将使用开源软件。

  John Ousterhout曾是当年峰会参与者之一,他是Tcl脚本语言和Tk工具包的创造者,Electric Cloud的创始人,更是在近期的访问中特别强调了变化的速度:“我完成我的第一个开源软件是在1980年代早期(伯克利的VLSI芯片设计工具),当时世界上可能只有不到5个开源项目。到O'Reilly自由软件峰会首次举行的时候,开源项目有12个,现在是数以千计。开源软件也已经被主流完全接受。10年前,人们还有所怀疑或有点担心,现在则是热情的拥抱。”

  3月28日,著名的开源厂商红帽(Red Hat)发布了其2008财年第四季度财报。在截至2月29日的第四财季中,尽管营销和销售支出大幅增加,但红帽的业绩还是超出了分析师此前的预期,营收总额达到 1.415亿美元,比去年同期增长27%,其中净利润为2290万美元,每股收益10美分。随后,红帽的股票也应声而动,上涨1.05美元,报收于 18.57美元。联系从去年开始多起开源软件厂商被收购的案例,不难发现开源正在被越来越多的人和企业所接受,逐渐融入市场竞争并开始走向赢利。

  风险投资公司North Bridge Venture Partners在近期发布的关于开源软件未来的年度调查报告也显示,业内人士对开源充满信心,在目前私有软件占主导的软件领域中,开源软件将异军突起。

  在今年3月25日~26日,在美国旧金山召开的开源企业大会(Open Source Business Conference)上,North Bridge Venture Partners的主要合作伙伴Michael Skok说,开源软件正在全世界范围内,大力改变着整个软件产业的发展方向。这是所有开源企业大会的参加者最一致的观点。

相关链接编辑本段回目录

参考文献编辑本段回目录

→如果您认为本词条还有待完善,请 编辑词条

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0

标签: John Ousterhout

收藏到: Favorites  

同义词: 约翰·奥斯特豪特,John K. Ousterhout ,John Kenneth Ousterhout

关于本词条的评论 (共0条)发表评论>>

对词条发表评论

评论长度最大为200个字符。