【.com速译】Swift开源后能够支持Linux,成为跨平台和服务器端开发者不可忽视的强大编程语言选择。就在上周,Apple宣布了一项承诺:其Swift语言现在正式成为一个开源项目。作为一年前刚刚问世的编程语言,Swift属于C语言家族,专为通用应用程序开发任务而设计。Apple最初发布Swift语言时,主要针对开发新的桌面和移动应用程序,并使用了LLVM编译器。Swift从许多现代语言设计中汲取灵感,将C的复杂性和深度与Python等解释型语言的易用性结合起来。另外,它的运行速度也很不错,可以顺利对接大号和大集合。Swift的开源版本将继续自我发展,增加Linux支持和服务器端语言功能。Swift目前正处于快速发展的轨道上:在发布的那一年,Swift已经升级到2.2版本,并且还增加了与LLVM和clang编译器接口的能力。目前,Swift不提供Windows版本,但微软在其最新的VisualStudio版本中添加了对iOS和OSX应用程序的Swift支持。如果你曾经在OSX系统平台上使用过Swift,你会发现Swift在Xcode中的使用与Objective-C开发者多年熟悉的开发环境非常相似,而且两种语言都可以使用同一个编译器..苹果甚至直接将Swift描述为“没有C元素的Objective-C”。这是因为Swift实际上是对Objective-C的抽象,底层也使用了LLVM编译器。事实上,Swift与Objective-C非常相似,甚至可以将Swift描述为Objective-C的一个新分支,它简化了某些关键结构并提高了代码可读性。Swift基于Objective-C的语法基础,同时加入了现代结构化支持能力来简化语言本身,帮助习惯使用JavaScript或C#创建iOS或OSX应用程序的开发者轻松上手。这部分开发者会发现很多熟悉的特性,包括Swift的控制流处理机制和函数使用等。Swift和Objective-C之间的通用性简化了为新语言更新应用程序的过程。您可以在同一个应用程序中混合和匹配Swift和Objective-C代码,确保现有库可以在新应用程序中重用。如果你从一种语言转向另一种语言,你根本不需要重写需要重用的代码内容——除非你有意为之。Apple在语言设计上非常注重安全保障原则,而Swift语言的一个核心特性就是支持类型推断。这样一来,Swift虽然不是强类型,但还是有类型安全保证的。具体来说,如果你没有声明一个变量类型,而是给这个变量赋了一个已经声明过的值,那么Swift可以自动推断它声明的类型。在这种情况下,我们的代码会更安全——也就是说,崩溃的风险会降低。Swift还使用自己的内存管理机制来限制对指针的访问。类型安全还意味着您永远不会将int传递给字符串;Swift编译器总是可以将其标记为错误。如果一段代码的值为nil时,会有一个guard语句阻止它执行,这让我们可以确保我们的代码不会出现各种常见的用户和API错误(一般来说,nil经常会导致编译时错误).或者,您可以使用可选值来允许为特定变量分配值null,而不管它们的实际类型如何。编写Swift应用程序很简单:您只需要做。整个过程不需要设置任何main函数或导入引用。这种方法旨在进一步提高代码的可访问性。尽管当前的OSX或iOS用户界面由库处理,但您仍然可以在设置外观和用户体验之前开发应用程序的核心。Swift的一个关键元素是Apple所说的“面向协议的编程”。作为连接其他语言的关键方式,该协议将使用特定于类的方法,以便您可以借助该协议在任何类中使用定义的方法。此外,协议允许我们扩展任意类——包括核心语言元素——而无需编辑它们的源代码。这意味着您可以同时使用各种第三方代码和库。另一大优势:您可以使用一套完整的协议组合来帮助您的开发团队实施编码标准。该协议本身也是一个非常强大的工具,我们可以将其用作我们开发策略的关键要素。Swift中最重要的创新之一是在Xcode中添加了Playgrounds。Apple目前正在使用Xcode和Swift将LLVM编译器推到更多开发者手中,并确保用户可以直接在IDE内查看代码功能。Playgrounds机制允许开发人员快速尝试代码片段功能以查看它是否按预期工作,而无需切换到IDE之外。您不必编译代码然后运行其构建或调试工具;一切都可以在编写代码后立即进行测试。这种做法无疑极大地鼓励了开发人员尝试新事物,并将编码变成一种更有趣的体验。将这些功能带到其他平台是同样重要的一步。编程语言需要可供开发人员在任何平台上使用,从客户端到服务器再到云,跨现代堆栈所有元素的一致语言在这种开发场景中起着核心作用。但需要强调的是,目前无法在Linux平台上享受Swift编译器中的Playgrounds功能。不过,这种功能上的缺失也是有道理的:作为一个以服务端应用为主的开发环境,你可能不需要Linux中这种快速的功能可视化机制——在这里,我们只需要将输出结果导入控制台即可。Apple在其Linux工具集中提供了基于REPL的调试工具,可以让您以交互方式快速运行代码,这样您就可以使用REPL(read-operate-print-loop)工具作为表达式求值机制。随着源代码在GitHub上正式发布,任何人现在都可以分叉原始的Swift库,开始试验代码,并将结果作为贡献代码提取到Swift。最重要的元素是Swift的核心库,它承诺提供将Apple的各种开发框架扩展到其他平台的选项。这意味着我们只需要构建一次Swift代码并交付到多个平台,开发者将获得微软开源的另一套替代方案。平台工具供应商为更广泛的开发人员社区提供支持。原标题:为什么非Apple开发者应该关心Swift
