大家都知道,Xcode是iOS、macOS程序的唯一开发工具,其强大的功能让人叹为观止。那么,大家知道Xcode是如何诞生的呢?
1981年, 一个名叫Jean-Marie Hullot的人获得巴黎第十一大学的计算机科学博士学位后,开始了在法国国家信息与自动化研究所(INRIA)的研究生活。
早在Jean-Marie Hullot还在学校的时候,Xerox PARC(施乐帕洛阿尔托研究中心)的 Alan Kay、Dan Ingalls、Ted Kaehler和Adele Goldberg等人,从1969年就开始研发一款面向对象的编程语言Smalltalk,并于1980年正式公布。虽然当时的机器跑得非常的慢,但Smalltalk先进的思想对其他众多的程序设计语言的产生起到了极大的推动作用,对计算机工业界的发展也产生了非常深远的影响。
Smalltalk的发布给Jean-Marie Hullot的心灵带来了巨大的震撼,他毫不犹豫地成为了面向对象编程模式的早期粉丝。那时,Jean-Marie Hullot使用早期的Macintosh电脑进行开发,但他很快发现,虽然Mac的用户界面做得不错,但开发程序实在是很糟糕。因为每次开发人员需要一个窗口或者菜单,都要从零开始构建。
于是乎,Jean-Marie Hullot开始动脑筋改进Mac编写用户程序难的现状。他开发了一个这样的程序:一侧的工具条是类似菜单这样的大量可重用的对象,而另一侧则是程序员想构建的用户程序界面。只要把工具条上的工具拖放到程序界面中,那么类似“打开”、“打印”等相关的功能,就可以被添加到用户界面中。实际上,这个程序是最早的一批能通过鼠标把控件拖入界面设计窗口实现相应功能的商业程序,是用户界面设计软件的先驱。这个跨时代的发明被称作SOS,用 Lisp语言编写的。
有了这么厉害的东西,Hullot意识到如果他只在研究所窝着,那只能很少的人享受这一成果,而如果他把这个工具公开,那对所有的开发人员来说,都是一大福音。
经过不断努力,Hullot找到了一个值得推销自己发明的好地方——剑桥的苹果大学联盟(Apple University Consortium)。这个苹果和大学合作的组织看到 Hullot的创作后反响很好,就推荐他去见时任苹果开发研究院主任Jean-Louis Gassee。后者见到SOS后也认为这是个好东西,便说服他去美国闯一闯。
不过当Jean-Marie Hullot来到美国加州苹果总部时,他并没有留在那儿,而是找到他用来写SOS的Lisp解释器的生产商,也就是软件公司ExperTelligence,来推销他的SOS。很巧的是,当时的ExperTelligence正在寻找合作商卖自已的 Lisp,而Hullot也在找合作商卖自已的SOS,两者一拍即合,随即打电话给NeXT,共同推销自家的产品。
绝顶聪明的NeXT的创始人Steve Jobs早就看中了SOS,但却对ExperTelligence的Lisp一点兴趣都没有。他以三顾茅庐般的热情,将Jean-Marie Hullot招致麾下。Jean-Marie最终在 NeXT 整整待了十年。在NeXT工作期间,他使用Objective-C和NeXTSTEP框架重写了SOS,命名为Interface Builder。由此,Interface Builder成为NeXT集成开发环境Project Builder的标准套件之一。
Interface Builder和SOS一样,提供了一个工具箱,包含一系列用户控件对象。工具箱并不是官方定死的,而是可以任意扩展的。开发者只要把控件拖入项目文件就能完成用户界面设计,节省了几乎所有和控件放置有关的代码。同时,开发者拖拽鼠标,将控件可提供的动作(IBAction)和另一个对象的接口(IBOutlet)连在一起,则建立了一个绑定。这样,一旦动作被激发,接口中相应的方法则会被执行。所以,大量对象关联的代码也能被省去。
NeXT被Apple收购后,苹果把下一代操作系统建立在NeXTSTEP的基础上。Objective-C和Cocoa被作为主要框架,而Interface Builder和Project Builder也因此受到重用。值得一提得是,苹果发布的***iPhone SDK的Cocoa Touch界面,是用Interface Builder设计的。
Jean-Marie Hullot是在NeXT被收购时进入苹果的,Steve Jobs令他率领在法国的一个小团队,秘密为Mac OS X 10.2开发一个办公软件iCal。***,在iCal小组功成名就的Jean-Marie Hullot荣升苹果软件开发部***技术官。
Project Builder在Mac OS X 10.3时被重命名为现在大家所熟知的Xcode。长期以来,Xcode环境和Interface Builder是两个独立工作但相互有联系的程序,而2010年发布的Xcode 4预览版中,Xcode和Interface Builder合二为一,成为一个一体化的编程环境。
“千里马常有,而伯乐不常有”,Jean-Marie Hullot的经历验证了这句古话。正是在“千里马”和“伯乐”的共同努力之下,才有了今天的Xcode。感谢乔帮主和大神Hullot为我们弄出了这样一个卓越的开发工具。
【本文是51CTO专栏作者周兆熊的原创文章,作者微信公众号:周氏逻辑(logiczhou)】