APP下载

Swift编程语言的特点及应用分析

2020-04-08侯睿哲

电脑知识与技术 2020年3期
关键词:编程语言特点应用

侯睿哲

摘要:Swift是为高效而强大的编程而创建的一种新的编程语言,它结合了C和Objective-C的优点并且不受C兼容性的限制,充分利用现代化的Mac.iPhone和iPad的硬件,让编程的流程大大缩短和简化。作为一种新的编程语言,它主要用于编写iOS和Osx的应用。相较于其他编程语言,其采用了安全的编程模式,并添加了许多现代功能,使得编程更加轻松,灵活和有趣,因此具有广泛的运用前景。

关键词:Swift;编程语言;特点;应用

中图分类号:TP312 文献标识码:A

文章编号:1009-3044(2020)03-0062-02

1 Swift语言的产生与发展

Swift是由苹果公司在2014年全球开发者大会(WWDC)首次推出的由苹果员工Chris Lattner开发的一种新的编程语言[1]。在此之前,苹果公司为了更好地推广Swift语言,其研发人员在“语言编译器、调试器和构建框架栈”等方面进行了优化改进,避免了Objective-C难学且使用不便的缺陷,让Swift语言在编程中相较于其他编程语言更加轻松、灵活和有趣。正是开发人员做好了这些基础工作,所以,Swift編程语言一发布,立即受到广大程序员的欢迎和好评。为了推广使用Swift,2015年12月4日,苹果公司宣布其Swift编程语言开放源代码,长达600多页的The Swift Programming Language可以在苹果官方Github在线免费下载。由于Swift广泛用于苹果操作系统(iOS,macOS,wa-tchOS和tvOS),实际上随着苹果公司业务的增长,其以“令人难以置信的速度”增长。2017年下半年,已在RedMonk的语言排名中攀升了44位。在不到四年的时间里,Swift以创纪录的速度达到了编程语言前10名[2]。

2 Swift语言的特点

2.1 Swift语法更加简洁

Swift不仅吸收了C语言和Objective-C等编程语言的优点,而且改进了Objective-C难学且使用不便的缺陷,并且在使用过程中还不受C语言兼容性的限制,由于它采用了实时编译、持续跟踪和及时警告语法错误、提供设计建议和内存管理等安全的编程模式,且自身带有预定义的库,使得Swift的API更容易阅读和维护。它不仅具有C或C++等基础编程语言的功能,还具备C#或JavaScript等高级语言的流畅性。以下代码片段的比较和图1、图2示例能够直观地感受到Swift语法简洁和流畅性的特点。

Objective-C代码:

const int count= 10;

double price= 23.55;

NSString *firstMessage = @"Swift is awesome. ";

NSString *secondMessage = @"What do you think? ";

NSString *message = [NSString stringWithFormat: @"o-/o @o-/o@". firstMessage, secondMessage];

NSLog(@"o-/o@", message);

Swift代码:

let count = 10

var price = 23.55

let firstMessage = "Swift is awesome. "

let secondMessage = "What do you think?"

var message = firstMessage + secondMessage

print(message)

2.2 Swift的伸缩性强

Swift具有较强的可伸缩性,可以在Swift的基础上发展为Swift/T.较好地避免了以前开发的Swift实现集中式单节点评估模型限制的缺陷[3]。Swift/T是一种新的数据流语言实现,旨在实现极高的可伸缩性。其技术创新包括分布式数据流引擎,该引擎使用数据流驱动的模式来平衡大量节点的程序评估。Swift/T扩展了Swift数据流编程模型,使系统以分布式方式运行,从而使系统在完成一项繁重的任务时效率更高,速度更快。“因此,Swift/T提供了可伸缩的并行编程模型,以高效地表达高度并行的多任务应用程序的外部层次[4]。”图3显示了考虑Swift原有的单数据流结构。

在以前,单节点Swift引擎将以小于500个任务/秒的速度将这些子函数发送到分布式CPU中执行。与之相反,新的Swift/T架构可以将外部循环的任务分配给许多CPU,每个CPU可以依次将内部循环的任务分配给许多其他CPU。这个例子清楚地显示了Swift/T如何使系统高效地运行。我们的测试结果表明,对于一个lOOs的任务,Swift/T可以将128k的处理器效率提高85%。

3 Swift语言的应用分析

为了说明Swift编程语言的应用前景和优势,下面笔者将Swift编程语言与目前较为流行的Java语言进行对比说明。一般情况下,使用Java进行程序构建时,应牢记5个主要目标:1)应该使用面向对象的编程方法;2)应该允许同一程序在多个操作系统上执行;3)应该包含使用计算机网络的内置支持;4)应该设计为可以安全地从远程源执行代码;5)通过选择被认为是其他面向对象语言的组成部分,应该易于使用。

而Swift的主要目标是大大简化软件工程流程:1)不需要分号;2)没有头文件需要管理;3)键入推断;4)函数是第一的要素,不会发生空指针异常;5)不允许C语言风格的枚举(int i=0;i

设计用户界面:除语法语义外,Swift的最大优势之一是设计用户界面。对大多数开发人员说,iOS开发的美丽之处在于代码(.Swift文件)和用户界面(.storyboards)的分离。首先,使用者可以选择任何UI对象,然后将它们拖放到视图中。然后建立源代码和用户界面之间的关系。按下控制键就可将其拖动到“视图控制器”图标。然后,就可以选择一个弹出窗口以连接代码。这就是Swift将UI与源代码连接的方式。对于开发人员来说,设计用户界面非常方便。

3.2 Java的优势

具有更多库:Java作为世界上五大编程语言之一,比Swift拥有更悠久的历史。Swift是一种新兴的语言,比Java更“现代”,但Java的优势在于它的历史。作为经过长期开发的语言,Java比Swift具有更多的第三方库。用户可以找到几乎所有需要的Java语言库。世界上很少有像Java这样的具有深度库的语言。

更多支持:當用户尝试构建应用程序时,错误和异常是不可避免的,这时就能显现出Java的优势。编程过程中总会有一些细节错误或编译异常,用户无法在书中找到具体的解决方案,然后就需要在线寻求支持。由于Java开发人员的数量远远超过Swift,因此用户会发现,获得Java支持远比Swift容易得多。这可以帮助用户更快,更轻松地解决问题。

3.3 两者比较的意义

在现实中,两种语言并没有真正竞争。如果要制作iOS应用程序,则需要Swift。如果要进行Android开发,则选择Java。两种语言都有自己的用途和适用情况。但是,两种语言的比较并非没有意义。如今的移动设备在我们的生活中占据了越来越多的空间,无论是Android还是iOS开发都很流行。如果开发人员想在它们之间进行选择,那么对他来说,了解它们之间的比较很重要。另一方面,如果开发人员只熟悉其中的一个,那么比较可以帮助他更快,更轻松地学习另一个。

3.4 Swift前景分析

Swift作为一种新兴的“现代”编程语言,它具有“语法、代码简洁、可读性强,对用户友好且易于学习”等诸多优势,因此,对于初学程序开发的人员具有较强的吸引力。特别是Swift使用Playground编写模式,使编写语言代码难以置信的简单和有趣。输入一行代码,结果立即出现。如果您的代码通过一个循环运行一段时间你可以看它在时间轴助理进展。在时间线中的图表显示变量,组成一个视图时绘制每一步,并能起到一个动画SpriteKit现场。当你在Playground上完善你的代码,只需将代码运行在项目中。有了Playground,用户可以:设计一种新的算法,看其工作的每一步,创建新的测试,验证他们推动到你的测试套件前工作,尝试新的API来磨炼你的Swift的编码技巧,同时可以消除不安全的代码。

当然,Swift作为一种不断发展完善的编程语言,需要在用户数量和库的扩展方面进一步仍提高,同时亟待改变其特定的编译环境等不足、缺陷和局限性,它不仅需要苹果公司而且也需要更多的开发人员进行持续的开发,增强其兼容性。Swift/T是开发Swift的很好的例子。我们相信随着开发人员贡献的不断加入,Swift将变得更加完善,因此具有广泛的运用前景。

参考文献:

[1] Beginning iOS 12 Programming Swift[EB/OL]. (2014-11-16).https://www.appcoda.com/learnSwift/.

[2] Developing an iOS Application for Value Estream Mapping withSwift[EB/OL]. https://pdfs. emanticscholar. org/7662/07e79d5b1882e3eclac98dbc270e59bb6078.pdf.

[3] Open Sourcing Programming Language - Case Apple Swift[EB/OL]. https://pdfs. semanticscholar. orq34e5/6a279f1175141314c3f8db8c6807d63lla33.pdf.

[4] Swift/T: Scalable Data Flow Programming for Many-Task Ap-plications[EB/OL]. http://citeseerx. ist. psu. edu/viewdoc/down-load?doi=10.1. 1.718.2708&rep=repl&type=pdf.

猜你喜欢

编程语言特点应用
压力-体积转换在CFC编程语言中的实现解析
Java编程语言的特点与应用
浅谈不同编程语言对计算机软件开发的影响
从语用学角度看英语口语交际活动的特点
面向对象Web开发编程语言的的评估方法