说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Objective-C之父Brad Cox访谈:我的编程之路

HTML文档下载 WORD文档下载 PDF文档下载
Objective-C是苹果Mac OS X 上开发的首选语言,也正因为如此促就了它的辉煌。日前,作者Dave Dribin采访了Objective-C之父Brad Cox,一起来了解下这位大神级人物,是如何看待他的编程之路的。

众所周知,Brad Cox与Tom Love一起创造了iOS/MAC平台的首选开发语言Objective-C。构建于C语言之上的Objective-C其理念来自于公认的第二个面向对象的程序设计语言和第一个真正的集成开发环境的Smalltalk。日前,原文作者Dave Dribin采访了Brad Cox,一起来了解下这位大神级人物,是如何看待他的编程之路。


Brad Cox和他的爱犬

Q:请您简单做个自我介绍以及与Objective-C的关系,谢谢。

Brad Cox:我之前在ITT实验室工作,在那里结识了Tom,我们都有兴趣为人们带来高效的协作系统,但不同于邮件和实时通讯等应用;现在人们习惯称呼这类系统为Groupware(群组软件)。我们发现在C语言上很难实现想法,当接触了Smalltalk以及面向对象的概念后,我想我们是时候要做出改变了,我们要创造一个更好用的基础平台。初期版本是有关Sed和AWK的工具集合,后来发展为基于lex和yacc的语言。而今天它还可以作为汇编语言的生成工具。

Q:方括号可以说是Objective-C的特色,请问这是您的杰作吗?

Brad Cox:是的,其实我就想看看有什么还没使用过的,花括号有了,圆括号有了,最后就是方括号了,我希望人们使用时不会与C语言等类似的混淆。

Q:有什么功能您当初想添加的,但限于当时的技术和时间等制约因素,而最后没有完成?

Brad Cox:的确曾有过不少想法。例如Smalltalk中的闭包概念,垃圾回收机制,解释型语言等。这些想法后来通过不同形式被实现了,但是没有任何一个类在C语言中是绝对适合的。

今天这些的确都一一成为了现实。在Mac OS X 10.5中,给出了垃圾回收机制;在10.6中,也就是雪豹版本,在Objective-C中添加了闭包处理。

Brad Cox:是的,我一直是闭包的拥护者,但是要进入调用者的堆栈的确是需要一定的技巧。

Q:在静态和动态还一直争论不休的时候,Objective-C做了个跨界整合,动态的运行时环境和静态的编译。这是故意而为还是意外行为?

Brad Cox:事实上,很多功能是在我之后发布的。而当时我直接参与的,是在C的静态基础上简单地添加动态支持。而后来,静态支持是在这之后发展起来的。Objective-C的功能都是希望为大家带来非常轻量级的工具,这也是Objective-C一直追求的。

与纯静态的C++和Java相比,Objective-C的动态类型支持的确非常好用。

Brad Cox:可能是多了一种轻巧的预设组件方式组合。

Q:苹果iPod和iPhone的销量超过了3千万,看到如此多的手持设备运行在Objective-C之上,那感觉是怎么样的?

Brad Cox:这感觉美妙极了。

Q:语言的设计是非常呆板的。过去20多年间出现Java、C#、Python及Ruby等都与Objective-C有很大不同。函数式语言似乎稍稍打破了沉闷的环境。对于语言设计的下一个重大事件或功能,您有什么看法呢?

Brad Cox:嗯,函数式语言现在变得热门了。我也曾尝试过,但是语法这个环节我就碰了壁。可能还欠点缘分。

Q:您觉得是语言的选择影响了最终软件质量,还是说全部的面向对象语言其实都大同小异?

Brad Cox:我想他们大体上都是差不多的。

Q:从您近期发布的消息和您的新作品<<Superdistribution>>一书中,不难看出您关注的焦点转移到了软件组件部分。请问能更多地讲述您现在的兴趣点吗?

Brad Cox:其实我没有转变焦点,请记得,为人们带来轻巧实用的功能是我创造Objective-C的初衷。对于我有关组件的关注,其实是我希望能找出有效帮助打造协作系统的办公自动化组件,所以说我并没有转变,只是希望帮助语言设计找到一个绕弯的方法到达相同的目的地。有关组件方向的更多介绍,请进入我的个人博客进行了解。

另外,我对OSGi模块化架构有非常大的期待。一旦流行起来,它将扮演非常重要的角色。虽然上手有一定难度,但是尽早学习是我的建议。

Q:可以分享更多有关OSGi的看法吗?

Brad Cox:好的。OSGi运行在Objective-C上可能不太合适,但是在其它的Java平台运作良好。一些主流的IDEs开发平台,如Netbeans和Eclipse,是一个能实现过渡到基于OSGi组件的中间平台。而随着技术的日渐发展和逐步成熟,将来或会成为人们日常工作的一部分。

Q:OSGi会替代jars吗?还是会与jars相结合?

Brad Cox:我倾向于后者。

Q:是metadata提取物?

Brad Cox:是的。一个OSGi bundle可以看成是一个metadata的jar提取物。因此也可以说是在JVM中的小型SOA(基于服务架构)服务。他们拥有自己的生命周期,能实现离线等待等处理。

Q:这样一来,能实现在线组件更新而不用把整个系统关闭?

Brad Cox:没错。一个典型的做法是在虚拟机中运行OSGi,然后等候它来完成升级过程。这需要花时间来熟悉。这个模型与Java中不断创建—销毁的过程不太一样。

英文出自:Mactech

(责编/夏梦竹)

用Delphi实现禁止用户关闭Window9X 用Delphi制作能够干净地删除自己的程序 用DELPHI 做一个简单的屏幕保护程序 用Enter键代替Tab键-Delphi资料 用修改文件时间的方法来加密文件-Delphi资料 用最原始的方法编制程序-Delphi资料 运用Delphi编写Windows NT中服务程序 在DELPHI编程中确定系统运行模式 在Delphi程序中调用控制面板设置功能 在DELPHI下读取与设置系统时钟 在Delphi中避免2000年问题的捷径 在Delphi中调用API函数 在Delphi中获取和修改文件的时间 在Delphi中控制扫描仪 在Delphi中实现对WIN9X应用程序使用权限的设置 在Delphi中实现对目录拷贝、删除和搬移的操作 在Delphi中使用自定义光标 在Delphi中用拼音首字符序列来实现检索功能。 在DELPHI中用线程排序 在Delphi中制作背景音乐 在Dephi中使用TStream读写数据的技巧-Delphi资料 在应用程序中跟踪MOUSE的坐标-Delphi资料 怎样建立回调函数-Delphi资料 怎样显示自定义鼠标光标(Cursor)-Delphi资料 找出消失的 Delphi 窗口 执行外部程序-Delphi资料 执行一程序并等待其结束-Delphi资料 制作一个不在任务栏及任务列表中显示的幽灵程序-Delphi资料 抓获全屏-Delphi资料 子目录级的文件查询的实现-Delphi资料 Delphi中ChartFX构件使用详解 文件的有关操作,请各位指教! 如何在程序运行时,对TABLE增加永久字段和计算字段 1个小问题,关于like与*(在线等待) 如何得到TIMAGE的BITMAP,PALLETE? 请问谁能为COM的CComXXX的原理和使用方法写篇文章啊。。 男人不如猫的十三条理由[转] 如何让浏览器(ie)弹出来就是最大化的? 如何用BCB进行TIMAGE的底层操作? 如何增加三层分布式系统的用户数? 请帮帮我~ 关于网络打印的问题?????????急急急 有windows1内有datawindow1有command1如何单击选择没有打开的datawindows2 VB,DELPHI 哪个对网络图形编程支持更好 有上海的公司需要人吗? VB,DELPHI 哪个对网络图形编程支持更好 调查:大家喜欢第三方控件吗? session 问题 如何在lotus中利用JAVA进行写代理,或哪里有较好的相关资料!如有好的帮助,定当另外再给分 虚拟现实,网络哪一个更有前途? 关于注册表 关于网络打印的问题?????????急急急 奇怪的现象。。 初学者问的基本的问题请大家指教 那里有编写ActiveX DLL网页的教程~ Unix或者Dos下怎么知道键盘有键被按下? 大家好 一个有意思的小任务,诚征实现程序 关于网络打印的问题?????????急急急 请问深圳IT行业人员薪资水平 请问谁知道那有关于售票系统方面的软件可以DOWN! windows2kserver 里的“本地策略”不能用? 我的2000因为WMI不能用了,谁能帮我,快!我在这等 灌水灌得差点忘了问问题~进来的有分。 一个有意思的小任务,诚征实现程序 我的2000因为WMI不能用了,谁能帮我,快!我在这等: 一个有意思的小任务,诚征实现程序 那位仁兄用过 installation system 请告诉我怎样设置才能使我的应用程序出现在“开始”菜单里 小弟急用 韩国队崛起大揭密:铁血作风 军人模式 地狱训练 vb中怎么动态生成按钮??? 请问:考中程怎样去复习,尤其是下午的题? java 的环境配置,请高手指教! 如何判断一个1024的int数组的所有元素的值全部小于50。寻求高速算法。 有谁看过Charles Petzold的《Programming Microsoft Windows with C# 》和Jeffrey Richter的《Applied Microsoft.NET Framework Programm 如何把图标加到 dll 文件中! 求助!!!哪儿能下载到VB高级编程的详细参考资料? 如何得到光标在编辑框中的位置?一个笨笨的问题 请教select函数用法!!!!! 关于日期计算的的错误!请关注!! 韩国人踢进八强 和 中国人相互掐架(转帖) vb中怎么动态生成按钮 如何修改Internet option/home page中的address 萌芽网的新概念作文大赛的投稿地址以及邮政编码我听说萌芽要举行新概念作文大赛,谁有大赛的投稿地址与邮政编码, 帮忙写几个字的形近字,然后组词1.然 2.泣 3.砚 4.锤 5.焚 6.乾 7.碎 8.痕 9.纵 10.祭 11.磨就这几个字的形近字,记住要给形近字组词哦!谢谢啦 这个字的形近字并组词要2个 衣服上弄上了中性笔油怎么样能洗掉?如 题 . ! 形近字组词(20组),有多少写多少 下列词语中每组各有俩个错别字,找出来并改正(1)负盖 徘徊 柳恕 一蹴而就 ——改为—— ——改为——(2 )伶仃 可鄙 琵缩 换然一新 ——改为—— ——改为——(3) 对奕 繁杂 奇攴斜 经史子集具体指什么 写形近字,再组词 英语作文..五句话 假设你叫李华,你的美国笔友Peter知道你准备参加“快乐海南四日游”后发电子邮件打算和你同行.请根据以下海报信息给Peter回一封电子邮件,介绍有关旅游所的情况.中国祥 经史子集的区别在哪里 三年级作文父母对我的爱2010年5月6日做完 英语作文假定你是李华,你准备给已回国的澳大利亚籍教师peter写封邮件 什么是“经史子集”﹖ 小丽买了一本九折出售的故事书,比原价便宜4元,这本故事书原价是( )元. 小强第一天读了一本书的8/1,第二天读了剩下的7/2,还剩下35页,这本书共多少页? 经史子集包括哪些 塑怎么组词 小强第一天看了一本书的3分之1,第二天看了剩下的2分之1.你会比较小强这两天看书的多少吗? 可爱的小白兔作文 经史子集是指?希望再详细一点! 塑可以组什么词 介绍小白兔的作文400字以上 小白兔的作文400字左右 塑组词3个 参加新概念作文大赛时表格上的字数究竟如何计算?必须用打格的稿纸吗? 观察小白兔的作文. 一本故事书原价20元 现在每本按原价打九折出售 现价多少元? 写小白兔的优秀作文 咧字的形近字及组词有哪些呢? 假设你叫李华,下面一篇海报是你校英语角的一次活动安排.请根据海报内容用英语写一封电子邮件,邀请你的海报内容:欢迎到英语角来看电影 汤姆叔叔的小屋 时间 6月30日下午3点30至5点30 地 萌芽新概念作文参赛投稿的稿纸用哪种?用什么颜色的看起来笔好些吖,投稿的稿纸用哪种内?方格的还是横格哒、 我喜欢横格因为它看起来比较干净吧、但是又有人说看起来潦草介意用方格的 形近字,组词 . 假设你是李华,你校与美国一所友好学校决定通过网络开展跨文化交流活动,请你用英语写一封邮件与美方联系,谈谈自己的设想,征求对方意见,交流内容要点如下:自我介绍;饮食文化差异; 萌芽新概念作文要用什么样的稿纸投稿好些, 令我感动的一件事500字 关于同学之间的 John即将外出旅行,请你根据提示用英语给他写封电子邮件向他介绍你对旅行的看法并提醒他旅行注意事项一、旅游是一种非常好的活动,当你累了或有空的时候到外地走走,欣赏美景呼吸新鲜空 怎样参加新概念作文大赛?越具体越好 最好有报名时间等等...这个是不是每年都有?..报名时间是? 令我感动的一件事 500字(最好能用上纸巾) 甲乙二人共同加工一批零件,9小时完成任务.完成任务时乙正好加工了零件总数的5分之2,乙每小时加工16个.那么这批零件一共多少个? 假如你将代表你校2014届毕业典礼上发言,请你用英语写一篇发言稿,内容如下:回顾 每丽的校园假如你将代表你校2014届毕业典礼上发言,请你用英语写一篇发言稿,内容如下:回顾 每丽的校园 令人难忘什么作文600乐于助人 令我感动的一件事500字(平常发生的) 假设你在学校举行的英语演讲塞中获得了好成绩,将在颁奖仪式上发言.请用英语写一篇发言稿.急.要英语.80字左右. 作文600字《这就是我一个乐于助人的女孩》 甲,乙两人合作完成350个零件,甲单独做8小时后,甲,乙再合作2小时可完成任务.甲每小时比乙多做2个,求甲,乙每小时各做多少个? 假如你将代表你校2008届毕业生在学校毕业典礼上发言,请你用英语写一篇发言稿,发言稿的内容要点如下.回假如你将代表你校2011届毕业生在学校毕业典礼上发言,请你用英语写一篇发言稿,发言 熬字的形近字组词,4个 一项工程,甲单独做要20天,乙要24天,丙要30天.甲先做5天后剩下的三队一起做,全工程劳动报酬是6000元,求甲队应得多少元 给下面的字找个形近字,再分别组词,相信你最棒!秧()_() 假设你是李华,请你以email的形式向你的笔友john讲述你和你朋友的一次周末到凤凰古城旅行的经.具体内容如下表 一项任务,甲队要20天完,乙队要24天完成,丙队要30天,剩下的合做完成.报酬是6000元,甲队得报酬多少元 小白兔作文 英语作文题目假如你是刘梅你的美国朋友John要来天津学习一年请给他写一封电子邮件介绍天津天气情况急明早 有关中秋节的作文10000字 萌芽新概念作文参赛可以多投稿么?当然,所有的稿都是我的名字,我也会用好几个表格的, 但是多投稿了会不会被评委排斥吖, 会不会印象分大打折扣, 他想:诶这个人好烦呐,会不会^_^嘿嘿、对 用一个诗句来形容朋友之间不舍的感情 中秋节作文10000字 《萌芽》下半期(新概念作文)如何投稿不是参赛,是纯粹的投稿 写朋友间真挚感情的诗句 中秋节作文,10000字开头:守护者一行人到中国的时候,正好是中秋佳节.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘