大家都知道Xcode是iOS和macOS程序唯一的开发工具,其强大的功能令人叹为观止。那么,你知道Xcode是怎么诞生的吗?1981年,在一个名叫让-玛丽·于洛的人获得博士学位后。学习生活。早在Jean-MarieHullot还在上学的时候,XeroxPARC(施乐帕洛阿尔托研究中心)的AlanKay、DanIngalls、TedKaehler和AdeleGoldberg从1969年就开始开发面向对象编程。Smalltalk语言是1980年正式公布。虽然当时的机器运行速度很慢,但是Smalltalk的先进思想极大地促进了很多其他编程语言的产生,也对计算机行业的发展产生了非常深远的影响。Smalltalk的发布给Jean-MarieHullot的心灵带来了极大的震撼,他毫不犹豫地成为了面向对象编程模型的早期粉丝。当时,Jean-MarieHullot使用早期的Macintosh电脑进行开发,但他很快发现,虽然Mac的用户界面做得很好,但开发程序真的很糟糕。因为每次开发人员需要一个窗口或菜单时,都必须从头开始构建。于是乎,Jean-MarieHullot开始动脑筋,改善为Mac编写用户程序的困难处境。他开发了一个程序,其中工具栏的一侧是大量可重复使用的对象(如菜单),另一侧是程序员想要构建的用户程序界面。只需将工具栏上的工具拖放到程序界面中,即可在用户界面中添加“打开”、“打印”等相关功能。事实上,该程序是第一批可以通过鼠标将控件拖入界面设计窗口实现相应功能的商业程序,是用户界面设计软件的先驱。这个跨时代的发明叫做SOS,用Lisp语言写的。有了这么厉害的东西,于洛意识到,如果自己只窝在研究所里,只有少数人能享受到这个成就,如果把这个工具公开,对所有开发者来说都是一件大事。好消息。经过一番努力,Hullot找到了一个出售他的发明的好地方——剑桥的苹果大学联盟(AppleUniversityConsortium)。Apple与大学合作的组织看到Hullot的创作反应良好,并推荐他与时任Apple发展研究所所长的Jean-LouisGassee会面。后者看到SOS后也觉得是好事,便劝他去美国休息一下。不过,当让-马里·于洛来到位于美国加州的苹果总部时,他并没有呆在那里。相反,他找到了他用来编写SOS的Lisp解释器的制造商,也就是软件公司ExpertTelligence,来推广他的SOS。巧合的是,当时ExpertTelligence正在寻找合作伙伴出售自己的Lisp,而Hullot也在寻找合作伙伴出售自己的SOS。两人一拍即合,随后打电话给NeXT,共同推销自己的产品。极其聪明的NeXT创始人乔布斯早就看中了SOS,却对ExpertTelligence的Lisp毫无兴趣。他以参观茅草屋的热情将让-玛丽·于洛纳入麾下。Jean-Marie最终在NeXT待了整整十年。在NeXT工作期间,他使用Objective-C和NeXTSTEP框架重写了SOS,命名为InterfaceBuilder。因此,InterfaceBuilder已成为NeXT集成开发环境ProjectBuilder的标准套件之一。InterfaceBuilder和SOS一样,提供了一个包含一系列用户控件对象的工具箱。工具箱不是官方固定的,可以任意扩展。开发者只需将控件拖入项目文件即可完成用户界面设计,几乎省去了所有与控件放置相关的代码。同时,开发人员拖动鼠标将控件提供的动作(IBAction)与另一个对象的接口(IBOutlet)连接起来,建立绑定。这样,一旦动作被触发,就会执行界面中对应的方法。因此,也可以节省大量的对象关联代码。NeXT被苹果收购后,苹果在NeXTSTEP的基础上构建了下一代操作系统。Objective-C和Cocoa作为主要框架,因此重用了InterfaceBuilder和ProjectBuilder。值得一提的是,苹果最新发布的iPhoneSDK的CocoaTouch界面是使用InterfaceBuilder设计的。NeXT被收购后,Jean-MarieHullot进入了Apple。史蒂夫·乔布斯让他在法国带领一个小团队秘密开发一款适用于MacOSX10.2的办公软件iCal。最终,在iCal团队取得成功的Jean-MarieHullot被提拔为Apple软件开发部门的高级技术官。ProjectBuilder已重命名为Xcode,因为它现在在MacOSX10.3中广为人知。长期以来,Xcode环境和InterfaceBuilder是两个独立工作但又相互关联的程序。在2010年发布的Xcode4预览版中,Xcode和InterfaceBuilder合二为一,成为一个集成的编程环境。“千里马常有,伯乐不常有”,让-马里·于洛的经历验证了这句老话。正是在“Maximum”和“伯乐”的共同努力下,才有了今天的Xcode。感谢Joe和Hullot为我们制作了如此出色的开发工具。【本文为专栏作家周兆雄原创文章,作者微信公众号:周氏逻辑(logiczhou)】
