摘要:问你写作基础教程的目的是什么当苹果引入时,我就知道这门语言会在几年之内成为计算机语言版图中的重要一块。但是话说回来,苹果开源语言的决定肯定会让各种变化朝更好的方向发展。我相信苹果很努力想让遵从自己的主张,成为自己的语言。
非商业转载请注明作译者、出处,并保留本文的原始链接:http://www.ituring.com.cn/article/203600
Boisy G. Pitre是一位资深苹果开发专家,曾任Siri语音识别技术提供方Nuance公司Mac产品小组的资深软件工程师,参与开发了语音识别软件Dragon Dictate。MacTech杂志“Developer to Developer”月度专栏作家,曾多次在MacTech和CocoaConf等会议上发表技术演讲。现任情绪识别公司Affectiva的移动远景规划师,领导团队致力于将公司的表情分析技术迁移到移动平台。Boisy著有《Swift基础教程》一书。
问:你写作《Swift基础教程》的目的是什么?
当苹果引入Swift时,我就知道这门语言会在几年之内成为计算机语言版图中的重要一块。我的目标是以有趣而轻松的方式向读者们介绍这门新语言,让读者们抢先起步,并在之后的学习中迅速加速。写作这本书很具有挑战性,因为这门语言可以讨论的东西实在是太多了,而我不想让读者们感到不知所措。这本书是我为初学者设计的,从这个角度上说,这本书很成功。
问:你能否向读者们介绍一下你在Affectiva从事的工作?
当然。Affectiva是一家在数字体验中引入情绪智力的科技公司。我们的技术根据实时面部分析来判断一个人的情绪状态。我是这家公司的移动远景规划师,我的责任是把技术和移动世界连接起来。我们已经实现了这个目标,而我现在正在努力提高移动平台的技术,这些平台包括iOS和Android。我们有一个可以供开发者使用的SDK,用于把情绪智能整合到他们的应用中。
问:在你看来,开源Swift会改变iOS的生态环境以及iOS和Android之间的关系吗?
很难预测作为开源语言的Swift会如何影响Android开发。Google在语言初创方面有Go语言,它对于Android来说就像是Swift之于iOS。我期待会有人用Swift写Android应用,就像是有人用Go写iOS应用一样。一种语言会比另一种语言更成功吗?各自平台的语言会依附在它们本来的平台上吗?只有时间能告诉我们。但是话说回来,苹果开源Swift语言的决定肯定会让各种变化朝更好的方向发展。
问:Swift从其他语言中整合了哪些特性?其中你最喜欢的特性是什么?
所有计算机语言都会从其他语言身上借鉴一些东西。对于Swift来说也是如此。从语法和存储模型的角度上说,我在Swift上能看到很多Rust的影子。很明显,Swift对于安全的强调使其与C和C++保持了一定距离,所以它们之间的共同点比较少。我相信苹果很努力想让Swift遵从自己的主张,成为自己的语言。对于未来,我们拭目以待。
到目前为止,我最喜欢的Swift特性是语法的清晰度。用关键字‘let’建立一个常量变量,和用关键字‘var’建立一个可变变量相比,很大程度上简化了C/C++风格的语法。用执行命名参数可以清晰地写函数(如Objective-C),而创建和使用闭包也变得更简单。
问:Swift在未来有可能会取代Objective-C吗?
当然。但是没人知道会用多长时间,但是我认为应该是在5年之内。我们很容易就忘记计算机语言的生命有多长(现在C语言已经40岁了)。Objective-C不会彻底消失,但是我能预见在未来的某一个时刻,它在语言世界中的份额将变得非常小。
问:iOS中的很多应用框架都还是Objective-C的,目前调用的方式是使用桥接头文件,今后的调用是否有可能变为更加简洁的方式?未来是否会出现更多基于Swift的框架?
几乎可以肯定是这样的,而且我相信苹果正在努力实现这件事。但是我们得记住,这是一个艰巨的任务,需要转换的框架可不在少数。但是我相信这些工作不会花费太久的时间,而且我们很快就会看到专属于Swift的新框架,这样的框架在Objective-C中甚至都找不到同类。这种情况的发生肯定会对Objective-C的后续使用造成很大的影响。
问:你建议初学者应该先学Objective-C还是Swift?
肯定是Swift。Objective-C是一门很不错的语言,但是它带有C语言的遗留问题和包袱。对于编写应用来说,Objective-C在未来会变得越来越脱节。事实上,我现在不会用Objective-C来开启任何一个新的iOS或OS X项目。对于新项目来说我只使用Swift来开发。
问:对于已经掌握一两门编程语言的程序员来说,你认为他们怎样才能快速有效地学习一门新语言?
这取决于已有的一两种语言是什么。如果这两种语言是Objective-C和Swift,或者C和C++,或者其中任何组合,为了挑战思维,我会推荐你学习一种完全不同的语言。像C, C++, Objective-C,以及Swift这样的命令式语言都遵循着相同的模型,所以要学习同类语言很简单。你一定要让自己多接触不同的语言泛型,所以我会推荐你学一种函数式语言,比如Scheme。虽然你不会用这种语言来写应用,但是它会全面打开你对计算机语言的理解。
问:在学习编程语言的过程中,你认为什么时候接触大量的库和API比较合适?对于某个平台的开发者来说,他有必要掌握所有可能用到的API吗?
我经常会用木匠的工具腰带做类比。他的腰带中会装有所有想象得到的工具吗?不……只有那些经常使用的工具。当他需要特殊工具的时候,他会走到他的卡车前,打开放在里面的大工具箱,然后使用某种工具一次到两次,然后把它放起来。
对于编程语言和API来说也是如此。你无法完整地了解所有API,但是你知道得越多,你就越能更好地解决问题。我会建议你先比较完整地学习一门语言,然后再继续研究这种语言的细微之处,也就是开始接触这门语言中可以用来创建有用应用的框架和API。然后你可以每周一次,选择一个新的API,投入3-5个小时来学习它的功能。你可能并不会经常使用这个API,但是你知道它就在那,当遇到适当的时机时,你就会准备好用它来完成特定的任务了。
问:对于一位iOS开发专家来说,他的知识框架是什么样的?
一个全面的iOS专家必须掌握这四样东西:
(1) 用来写应用的语言(Swift / Objective-C);
(2) 对创建软件的工具的控制(Xcode);
(3) 关于iOS应用基础框架和API的强大知识储备;
(4) 鉴别好的UI设计的能力。
要经历很多应用和上百小时的编程才能达到这个水平。每个应用都会带来自身的要求和需要的API,所以你写的应用越多,就能越广地接触到各式苹果框架的,而你的UI设计技巧也会越来越好。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/15877.html
摘要:开源万岁在的大会上,苹果宣布将开源。此外苹果还将公开发布在标准许可下的的源代码,包括编译器和标准库,开放的源代码端口,开发者可以在上编写程序。不难看出,苹果这些举动意在鼓励开发者从而进一步推动的发展。 showImg(https://segmentfault.com/img/bVOTJe?w=900&h=385); 万众瞩目的 WWDC 2017 已经落下帷幕,对于 Swift 开发者...
摘要:这份学习资料是为初学者所准备的旨在帮助初学者们快速找到适合自己的学习资料节省他们搜索资料的时间使他们更好的规划好自己的学习路线更快的入门更准确的定位的目前所处的位置该文档会持续更新同时也欢迎更多具有丰富经验的开发者将自己的常用的一些工具学习 这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自...
好赶货,收藏。原文iOS 学习资料整理 这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的目前所处的位置. 该文档会持续更新, 同时也欢迎更多具有丰富经验的 iOS 开发者将自己的常用的一些工具, 学习资料, 学习心得等分享上来, 我将定期筛选合...
摘要:看到一份很赞的学习资料,由于文章字数限制,分两篇分享原文学习资料整理这份学习资料是为初学者所准备的旨在帮助初学者们快速找到适合自己的学习资料节省他们搜索资料的时间使他们更好的规划好自己的学习路线更快的入门更准确的定位的目前所处的位置该文档会 看到一份很赞的IOS学习资料,由于SF文章字数限制,分两篇分享 原文 iOS 学习资料整理 这份学习资料是为 iOS 初学者所准备的, 旨在帮助...
摘要:很不错,但它已经是过去时。如何以最短的时间快速从过渡到呢那就是查看文档,这是一个极其取巧且快速省心掌握和之间语法变化的方法直接开启文档的办法菜单这样可以快速的掌握中的语法变化,一目了然。 Objective-C很不错,但它已经是过去时。 问:对于一位iOS开发专家来说,他的知识框架是什么样的? 一个全面的iOS专家必须掌握这四样东西: (1) 用来写应用的语言(Swift / Obje...
阅读 2706·2023-04-25 20:41
阅读 2455·2023-04-25 16:40
阅读 943·2021-10-11 10:58
阅读 1177·2021-09-23 11:44
阅读 1065·2021-09-10 10:51
阅读 1419·2021-09-07 09:59
阅读 1270·2019-12-27 12:08
阅读 403·2019-08-30 15:44