ChrisLattner花了一年半的时间构建了一种新的编程语言。他没有向任何人提起这件事,即使是他最亲密的朋友和同事。他利用晚上和周末做这项工作,从2010年夏天到第二年年底,构建编程语言的骨架,然后向公司高管透露了他的秘密。该项目得到了高管的关注,多名高级工程师加入其中。18个月后,该项目成为公司的主要工作重点,项目团队规模大幅扩大。拉特纳工作的公司是苹果公司。这种语言被称为“Swift”。Apple将其视为一种工具,可以更快、更高效地开发iPhone、iPad和Mac计算机的软件应用程序。今年6月2日,Apple向公司外部的程序员发布了测试版。即使在这一点上,在Ratner首次设想该语言四年后,它也只是在Apple的内部圈子内产生影响。Ratner在伊利诺伊大学香槟分校的研究生导师VikramAdve帮助他完善了Swift语言的基础。和其他人一样,Edford对他的学生花了这么长时间才创造出一种新的编程语言感到惊讶。“Apple非常守口如瓶,而Chris确实坚持了这一点,”Edford笑着说。“我知道他在一个项目上花了很多时间,仅此而已。”通常,像这样出现的新编程语言通常需要数年时间才能获得广泛采用——即使是像Apple这样规模的公司。科技巨头的支持也不例外。谷歌在2009年推出了一种名为“Go”的语言,虽然这种语言的设计者在业界享有盛名,但在全球范围内仍未成为主流。但斯威夫特是另一回事。当它在今年秋天正式发布时,它可能会以前所未有的方式吸引程序员,可能会超过Sun的Java语言和微软的C#语言在1990年代末和2000年代初的流行程度。.Swift的部分优势在于它是为普通程序员打造的。该语言旨在编写最简单的移动应用程序,它附带了一个苹果称为Playground的智能工具。该工具提供了一种相当有效的“自学”编程方式。此外,Swift流行还有一个更直接的原因。今天,成千上万的开发人员使用一种称为“Objective-C”的语言为iPhone和iPad构建应用程序,鉴于Apple设备的普及,这些程序员将继续构建此类应用程序。与Objective-C相比,Swift在许多方面都提供了显着的改进,这意味着庞大的Apple开发者社区肯定会在未来几个月内接受这种新语言。“有了GoogleGo,Swift就没有真正的激励可以提供这样的激励。”到目前为止,流行的编程网站GitHub上有2400多个Swift相关项目,即使使用它的人数非常有限。而本月,Swift在Tiobe全球编程语言热榜上排名第16位。GoogleGo是在2009年发布时处于类似情况,但此后下降了很多。但就Swift而言,Jensen所说的激励因素只会提升其排名。Facebook开发资深人士安德烈亚历山德斯库(AndreiAlexandrescu)指出,考虑到Swift的在苹果产业链中独树一帜的核心地位,“只要不乱来”,肯定不会失败,而且这门语言的学习门槛很低。很容易,”Jensen说。“程序员可以使用Objective-C,或者他们可以使用Swift,大多数人都会转向Swift。d外部程序员为公司的计算机、笔记本电脑、智能手机和平板电脑创建软件。在Edford的指导下,伊利诺伊大学香槟分校的研究生设计了一套名为LLVM的元编程工具。该工具是苹果公司主要软件开发工具Xcode的基础,其最新版本的下载量已超过1400万次。简而言之,LLVM是一种生成和运行可与所有编程语言一起使用的新应用程序的方法。Ratner于2005年加入Apple。之后,Apple使用LLVM重塑了开发人员使用Objective-C开发应用程序的方式。五年后,Ratner回到LLVM作为Swift的基础。拉特纳拒绝接受媒体采访,但在个人主页上对斯威夫特的演变做了简要介绍。不管这个长期项目有多么不同,事实上,Swift仍然需要与Apple现有的开发工具一起工作——尽管它提供了Objective-C的替代方案。换句话说,Swift不仅仅是一种编程语言。它与开发人员构建软件所需的一切紧密集成。这里不仅指集成开发环境(IDE),还包括调试器等其他工具。这些工具中的大多数都是Apple开发人员所熟悉的。换句话说,对于为iPhone、iPad和Mac构建应用程序的成千上万的程序员来说,Swift很容易上手。程序员从Objective-C转向Swift还是需要一个很好的理由,毕竟他们过去从未使用过Swift。“我是第一个也是唯一一个拥有4年Swift编程经验的人,”Ratner在Twitter上写道。学习这种语言需要牺牲时间,这通常是一个很大的障碍。“只有少数几种语言能够获得足够的吸引力,而大多数语言都需要很长时间才能吸引用户,”为Apple硬件开发软件产品已有15年、目前正在研究该公司的MikeAsh说。的这种新语言。幸运的是,拉特纳和苹果给出了充分的理由。就其本身而言,Swift的吸引力不如C#、Ruby、Python等编程语言,但与Objective-C相比是一个很大的改进。后者可以追溯到20世纪80年代中期,平心而论,它不像更现代的编程语言那样易于使用。Ash说:“很多人因为Objective-C及其不常见的语法而放弃。Swift的语法更标准也更常见,这有助于吸引感兴趣的人。”对于现在的程序员来说,Swift不仅更加熟悉——它有类似“泛型”的设计,即可以重用的基本模块——而且它还有避免程序员错误的工具。它提供了一种称为“推测类型”的特性,程序员无需花太多时间定义所用变量的类型。“它有很大帮助,可以更好地理解你在做什么,让计算机帮助你思考问题,”阿什说。它允许程序员提高效率并在更短的时间内完成更多工作。”还有“Playground”。包括Edford在内的很多人都认为这是语言中最有趣的地方。Playground根据Ratner的个人主页,“Playground”是为了让编程“更具交互性,更直观。他解释说,“Playground”深受苹果设计师BretVictor和名为LightTable的交互式编程系统的影响。和LightTable一样,Swift的“游乐场”允许用户在屏幕的一侧编写代码,在另一侧查看运行效果。在6月初的苹果开发者大会上介绍Swift时,拉特纳演示了如何使用“游乐场”实时修改游戏。Simple表示该工具可以在不重新编译或重新启动整个程序的情况下向软件添加新代码。LightTable的创建者ChrisGranger说:“它可以将修改过的东西注入到一个正在运行的进程中——把它放在正在运行的程序中。”这不仅让编程变得更容易,而且提供了一种更好的学习编程的方式——让每个人都可以学习这项技能。“希望更直观、更有趣的编程工作能够吸引下一代程序员,并重新发明轮子。定义计算机科学的教学方式,”拉特纳写道。可以用Python、Clojure和Javascript等语言来完成。但是对于Grange来说,“Playgrounds”更实用,因为Swift专门为此进行了优化。“因为他们控制着语言——这是他们创造的语言——他们的目标就是做到这一点,”他说。他们可以做我们用其他语言做不到的事情。“这也是一个直接的动力。阻碍编程语言普及的其中一件事是程序员没有时间学习。“游乐场”具有减少学习时间的能力。根据Ash的说法,“Playground”仍然存在一些错误,但它有可能使编程更加流畅。“一般来说,编程很耗时——需要花时间查看反馈——才能弄清楚你在做什么。但‘Playground’提供了实时反馈,可以吸引很多新人。”Velocity'Playground'展示了Swift的另一个优势是它的响应速度很快。它编译速度很快,这意味着从源代码到可执行应用程序的转换时间非常短;编译后的应用程序执行起来也很快,这意味着程序可以在手机或平板电脑上高速运行。这就是Swift不同于其他编程语言的地方。过去,Objective-C、C++等编译型语言与Python、Ruby、PHP等解释型语言是有区别的。编译型语言写完代码后,必须等待编译器将其转换成可执行的软件。但是一旦完成,可执行软件就会快速运行。解释型语言允许近乎实时地测试程序,但最终产品运行速度不那么快。Swift互相学习。这种新语言在开发和运行时不会牺牲速度。正如Ash指出的那样,Swift“对程序员和对机器一样友好”。“它的效果如何还有待观察,但到目前为止看起来不错,”他说。Apple在这个领域并不孤单。Facebook也在通过“Hack”语言和“D”语言进行类似的尝试,谷歌在使用“Go”语言,Firefox浏览器的开发商Mozilla在使用“Rust”。在某些方面,这些语言比Swift发展得更快。Facebook已经在使用“Hack”重建自己的大规模网络服务,而谷歌则在使用“Go”改善内部业务。更何况,这些语言大部分都是开源的。这意味着它们背后的代码可以免费提供给全世界。从理论上讲,它们可以更轻松地在其他公司的设备或服务上运行。Swift不是开源的——至少现在还不是——而且考虑到Apple严格控制其硬件和软件产品的历史,人们自然会担心该公司是否会限制该语言的开发。“有人担心Apple会限制语言的使用范围——也就是说,能够编写跨平台代码和类似的东西,”Ash说。即便如此,Swift的采用率可能无法与其他语言相提并论。Ash相信Apple最终会开源Swift,他也相信这门语言会在Apple的控制之外蓬勃发展——因为这门语言的开发者Ratner有着深厚的开源阴谋。“有他掌舵,我认为他会做出正确的选择。”在开发Swift之前,Ratner构建了一个名为“Clang”的编译器程序。“Clang”是开源的,现在被包括谷歌在内的许多公司使用。即使Swift牢牢掌握在Apple手中,它的影响力也可能比近年来出现的任何其他语言都大,它的普及速度也可能比现代历史上的任何语言都快。这就是拥有iPhone、iPad和Mac的优势。事实上,Swift能做到的,许多其他软件也能做到——有些甚至更好。LightTable甚至还有一个“游乐场”替代方案。但斯威夫特是独一无二的。
