?

Swift編程語言的特點及應用分析

2020-04-08 09:30侯睿哲
電腦知識與技術 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語言,其研發人員在“語言編譯器、調試器和構建框架?!钡确矫孢M行了優化改進,避免了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]?!眻D3顯示了考慮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開發編程語言的的評估方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合