智东西(公众号:zhidxcom)
文 | 连然
苹果在去年推出Swift,用以在iPhone,iPad和Mac等设备上的更方便地编程。苹果曾承诺会开源Swift语言,为其他各种机器铺平道路,包括装有Linux的计算机服务器,基于谷歌的Android操作系统的智能手机和运行微软的Windows操作系统的平板电脑。而今日,苹果终于迈出这一步。
苹果表示将运行一个叫Swift.org网站的新的开源项目,同时通过流行的代码库GitHub共享源代码。最值得注意的是,它已经开源了Swift的编译器并将运行在Linux和Mac OS X上,工程师们会将原始Swift代码转换成完全成熟的程序。苹果还共享了Swift的管理权限,用以格式化这些应用程序,使他们能够运行在Linux,Mac OS X(台式机和笔记本电脑中使用),iOS(手机),watchOS (Apple Watch),和tvOS (Apple TV)上。
苹果并没有将Swift移植到Android或Windows系统。但代码已经被允许在这两种系统的软件和其他OS上开放源社区中使用。这么做的原因是Swift已经被广泛证明在iPhone 和 iPad上的运行是很高效的。苹果将会把Swift创建得比以往的语言都简单,不过在原始速度上还是会相同。Twitter’s Vine、Yahoo、LinkedIn和 Perfect、Exis等初创公司已经在苹果设备上使用这种语言,并准备推广到其他机器上。
开放性的需求
苹果将Swift开源是在顺应计算机软件的趋势。越来越多的开发者在构建应用程序和在线服务时使用开源工具,就像高科技产业中的大企业那样。值得注意的是,从Google、Facebook、Uber、Airbnb到Facebook,都在Linux机器上运行他们的网站。并且基于Linux的智能手机和其他消费电子设备越来越多了。(例如谷歌Android智能手机操作系统就是基于Linux)。
“开源语言是开发者的货币,”Sean Stephens(Perfect)的CEO,期待在Linux服务器的数据中心运行Swift。“这里开发者可以分享他们的想法和意见。因为在封闭源代码的世界里,他们没有太大的活动空间。“
广告
在一方面,这意味着流行的软件应用程序必须能够运行在比过去更多的操作系统上。但是,这也意味着开发者会期望基本编码能够在任何工具上使用,并且这些工具也是开源的,可以被重塑和在任何环境中重复使用。如果苹果希望程序员使用 Swift语言,并继续在Mac和iOS设备上运行程序,就必须保证语言能够在与自己相互竞争的操作系统和设备上运行。苹果以前的Objective-C没有为iPhone构造这样的编程语言,但Swift会改变这一情形。
“苹果开源Swift是从根本上改变他们过去的所为,”Dale Willis,EXIS首席执行官,旨在构建工具以在数据中心中运行Swift。“这表明他们认为这是真正能够对未来有很大的影响的语言。”
微软大约一年前与.NET做了一个类似的举动,开发另一种用于在其他大型在线网站建设和运营的常见工具。多年来,.NET运行仅在Windows上,不过微软允许其可以在开源的Mac OS X和Linux上运行。
如你所愿
尽管苹果保持着对开源项目的控制水平,它还是能够希望吸引更广泛的社群。被称为LLVM的一个较旧的开源项目,在支撑着Swift。Chris Lattnerr,创造了Swift的苹果工程师将负责新的开源项目Swift,就像他负责LLVM一样。不过苹果打算将第三方成员入组为项目的监督员。
苹果的Swift.org将容纳项目的邮件列表,以及其错误报告和跟踪系统,该网站将链接到GitHub的源代码库,也已经成为程序员共享和软件合作的主要方式,尤其是对于开源软件来说。
除了编译器和管理器,苹果公司还共享了Swift的核心软件库,语言文档和教程。它发布了Apache 2的开源许可证,这基本上意味着,任何人都可以使用和修改代码。
开源的正反面
该项目的结果是,程序员可以自由地构建和在更广泛的机器上运行SWIFT应用。他们可以同时在消费类设备和提供数据和服务的计算机服务器上运行SWIFT CODE。他们可以使用Swift 来构建iPhone的应用程序,也可以用它来构建驱动Linux服务器的应用软件。
这也是在顺势而为。我们看到越来越多的编码工具可以让开发人员同时在前端(如消费电子设备)和后端(服务器)工作。Node.js的工具可以让程序员在Javascript中构建软件——其语言最初是被设计用于在Web浏览器构建应用程序的。Java是最初在安卓系统的智能手机上开发应用程序的的主要手段,但它也是数据中心软件备份网络服务的重要手段。通过开源Swift,苹果希望建立一种跨越前端和后端的工作方式。“这可以给人们一种替代Java的方式,”。
Swift将与谷歌的新语言Go以及Rust、D.在开源语言上竞争。Swift正在寻求一种新的编码高点。所有四种语言的设计都力图使编码器不仅可以开发能够运行多任务的软件,而且速度可以很快。在过去,软件开发不是这个样子的。过去如果你想开发软件,可以用C++语言(执行优)或PHP、Ruby(速度快),不过两者各有优劣。互联网时代的要求则更高,特别是在前后端使用同样的语言时。
Swift的目标是成为Google Go、Rust这类语言。现在,它开源了,也就意味着离那一天不远了。