《Swift與Cocoa框架開發》作者Paris Buttfield-Addison有獎問題徵集(圖靈訪談)
Paris Buttfield-Addison是Secret Lab的聯合創始人、移動應用工程師,以及遊戲設計師。Secret Lab是一家遊戲開發公司,他們既為自己開發遊戲,也為別人開發遊戲,他們致力於使技術變得簡單又有趣。Secret Lab製作的遊戲包括ABC Play School, Art Maker以及Play Time。
Paris擁有計算學博士學位,同時也是一位歷史學士。他之前作為產品經理為矽谷的Meebo公司工作,這家公司在2012年被Google收購。他撰寫了一系列關於iOS和遊戲開發的技術書,其中包括《學習Objective-C與Cocoa框架》,《iOS遊戲開發攻略》,《Swift與Cocoa框架開發》,以及《Unity移動遊戲開發》。
從Objective-C到Swift
最初的Macintosh計算機主要用C語言程式設計,使用一個名為Toolbox(工具箱)的庫。蘋果公司收購NeXT Computer公司以後,用Max OS X替換了它的作業系統,Toolbox也被Cocoa代替,Cocoa是用Objective-C程式設計語言編寫的。
Objective-C與其主要競爭者C++的設計時間大體相同。這兩門語言都是C程式設計語言的後代,而且都是物件導向的程式設計語言。這就是說,C語言中的函式和資料結構是獨立的,而像C++和Objective-C這樣的面嚮物件語言則將相關的函式和資料合併到物件中。例如,一個名為Car的物件可能包含有關其顏色、速度及開門個數的資訊,可能還包含了像drive、stop和openDoor這樣的函式。資料與處理資料的函式之間存在著緊密的聯絡,因而我們可以將軟體看作模組化工具的集合,而不是單個大型實體。
Objective-C是一門功能非常強大的語言。它與C++的主要區別是它是一種動態語言。在任何一門物件導向的語言中,都需要將函式繫結到它們處理的具體資料,而這一繫結要麼在編譯程式碼時進行(靜態繫結),要麼在執行時進行(動態繫結)。C++使用靜態繫結,這會提高執行時效能,但降低了靈活性。Objective-C採用動態繫結,它要稍慢一些,但大大增強了語言的靈活性。
然而,Objective-C也有自己的問題。因為它是以C語言為基礎的,所以它從父語言那裡繼承了大量古怪的特性,比如前處理器和指標運算(這裡只舉兩例)。這些功能儘管非常強大,但會降低程式碼的可讀性和安全性。蘋果公司在保持Objective-C的現代化方面做得非常出色,但即使是這門語言的死忠粉(本書的作者們認為自己就屬於這一群體)也認為這門語言有些過時了。
於是Swift應運而生了。Swift是一門新的語言,旨在讓iOS和Mac應用程式的開發變得更輕鬆、更快速、更安全。它的設計目標是更容易掌握,且在防範程式設計師錯誤方面比Objective-C做得更好;事實上,蘋果公司將它描述為“沒有C的Objective-C”。因為Swift是用LLVM(Objective-C使用的工具集)生成和編譯的,而且使用了Objective-C執行時,所以我們可以編寫一個同時使用C、Objective-C和Swift的App。
Swift有大量現代的程式設計語言特性,包括泛型、型別推理、型別安全、閉包、元組和自動記憶體管理等。Swift是一門發展中的語言,會隨著時間發生變化,但它是蘋果平臺軟體開發的未來!在本書中,我們將學習如何在現實情景中使用Swift,如何利用iOS和OS X中的特性讓你的App富有吸引力。
作品選讀:Cocoa開發工具
最終入選問題的提問者,將獲得圖靈社群送出的圖靈電子書一本。
往期活動回顧:
《開源軟體架構》組織者Michael DiBernardo訪談問題有獎徵集,問題入選的獲獎者有:好久不見,Likeya,fdy1045,normalme,cage《你不知道的JavaScript》作者Kyle Simpson訪談問題有獎徵集,問題入選的獲獎者有:likeya,fdy1045,好久不見,深紅,normalme,卞林
向《七週七語言》作者Bruce Tate提問!,問題入選的獲獎者有:好久不見,風紀扣v,normalme,likeya,cage,鄧國平
《小決心》作者Caroline L. Arnold訪談問題有獎徵集,問題入選的獲獎者有:cage,normalme,likeya,好久不見,十分之九,fdy1045,Sam.Kwok,華元
更多精彩,加入圖靈訪談微信!
相關文章
- 《Swift與Cocoa框架開發》作者Paris Buttfield-Addison:你的程式設計生涯可以從Swift開始!(圖靈訪談)Swift框架程式設計圖靈
- [英]《Swift與Cocoa框架開發》作者Paris Buttfield-Addison:你的程式設計生涯可以從Swift開始!(圖靈訪談)Swift框架程式設計圖靈
- 《Swift基礎教程》作者Boisy Pitre訪談問題有獎徵集(圖靈訪談)Swift圖靈
- 《機器學習》作者Peter Flach訪談問題有獎徵集(圖靈訪談)機器學習圖靈
- 《R包開發》作者Hadley Wickham訪談問題有獎徵集(圖靈訪談)圖靈
- 《Flask Web開發》作者Miguel Grinberg訪談問題有獎徵集(圖靈訪談)FlaskWeb圖靈
- 《特斯拉》作者卡爾森教授訪談問題有獎徵集(圖靈訪談)圖靈
- 《釋出!》作者Michael Nygard訪談問題有獎徵集(圖靈訪談)圖靈
- Jolt大獎獲獎作者Venkat Subramaniam訪談問題有獎徵集(圖靈訪談)圖靈
- 《JavaScript快速全棧開發》作者Azat Mardanov訪談問題有獎徵集(圖靈訪談)JavaScript全棧圖靈
- 《CSS揭祕》作者Lea Verou訪談問題有獎徵集(圖靈訪談)CSS圖靈
- 《鳳凰專案》作者基恩·金訪談問題有獎徵集(圖靈訪談)圖靈
- 《黑客與設計》作者David Kadavy訪談問題有獎徵集(圖靈訪談)黑客圖靈
- 《七週七併發模型》作者Paul Butcher訪談問題有獎徵集(圖靈訪談)模型圖靈
- 《禽獸心理學》作者Anna Salter訪談問題有獎徵集(圖靈訪談)圖靈
- 《Android系統服務開發》作者金大佑訪談問題有獎徵集(圖靈訪談)Android圖靈
- 《使用者思維+》作者Kathy Sierra訪談問題有獎徵集(圖靈訪談)圖靈
- 阮一峰訪談問題有獎徵集(圖靈訪談)圖靈
- 《Python Web開發:測試驅動方法》作者Harry Percival訪談問題有獎徵集(圖靈訪談)PythonWeb圖靈
- 《演算法新解》作者劉新宇訪談問題有獎徵集(圖靈訪談)演算法圖靈
- 《精益資料分析》作者Alistair Croll訪談問題有獎徵集(圖靈訪談)AI圖靈
- 《CSS設計指南》作者Charles Wyke-Smith訪談問題有獎徵集(圖靈訪談)CSSMIT圖靈
- 《社會媒體挖掘》作者劉歡教授訪談問題有獎徵集(圖靈訪談)圖靈
- 《AngularJS權威教程》作者Ari Lerner有獎問題徵集(圖靈訪談)AngularJS圖靈
- 有獎 |《Lua設計與實現》作者codedump訪談話題徵集(圖靈訪談)圖靈
- 有獎 |《人工智慧簡史》作者尼克訪談話題徵集(圖靈訪談)人工智慧圖靈
- 《跟阿銘學Linux》作者阿銘訪談話題有獎徵集(圖靈訪談)Linux圖靈
- 《演算法問題實戰策略》作者具宗萬訪談問題有獎徵集(圖靈訪談)演算法圖靈
- Compass框架建立者Chris Eppstein訪談問題有獎徵集(圖靈訪談)框架圖靈
- 《Erlang程式設計(第2版)》作者Joe Armstrong訪談問題有獎徵集(圖靈訪談)程式設計圖靈
- 《Spark快速大資料分析》作者Holden Karau訪談問題有獎徵集(圖靈訪談)Spark大資料圖靈
- 《物聯網設計》作者Adrian McEwen訪談問題有獎徵集(圖靈訪談)圖靈
- 《資料科學實戰》作者Cathy O'Neil訪談問題有獎徵集(圖靈訪談)資料科學圖靈
- 《小決心》作者Caroline L. Arnold訪談問題有獎徵集(圖靈訪談)圖靈
- 《你不知道的JavaScript》作者Kyle Simpson訪談問題有獎徵集(圖靈訪談)JavaScript圖靈
- 《平面宇宙》作者A. K. 杜德尼教授訪談問題有獎徵集(圖靈訪談)圖靈
- 再訪Thomas Kyte,圖靈訪談問題有獎徵集圖靈
- 移動開發專家Brian Hardy訪談有獎問題徵集(圖靈訪談)移動開發圖靈