Swift,其实没那么任性

Posted CSDN

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift,其实没那么任性相关的知识,希望对你有一定的参考价值。

近20年来,苹果一直把Objective-C作为主要的编程语言,而在2014年WWDC大会上,苹果推出了一个全新的编程语言Swift。Swift语言不仅兼容Objective-C,还从Python和 javascript中吸取了许多东西。Swift一经推出,便引起了多方的讨论,很多人认为这门语言门槛低、可读性强,大有将取代Object-C的趋势,也有些人认为,Swift没有大家想象的那么好,还有许多急待解决的问题,比如与C/C++语言对接麻烦、没有针对变量的隐私机制、基础库不完善、没有异常机制等。相较而言,国外开发者面对这门新语言的态度比国内开发者冷静的多。


“老码”是一个由多年开发经验的程序员组成的团队,不久前他们的新书《老码说编程之玩转swift江湖》刚刚面市,对于这些资深开发者来说,Swift意味着什么?他们又是怎样看待这门新语言的呢?老码团队成员王芳杰将为我们一一解答。



CSDN:你认为Swift语言的发布,对于开发者来说有哪些意义?


王芳杰:自从WWDC 2014上发布Swift语言以来,不管是国外论坛还是国内网络都在讨论这个问题,有的甚至上升到了很高的层面。其实在我们看来,意义在于Swift带来一个新的选择。


  • 对于土著Objective-C开发者:需要思考是坚守还是接受。

  • 对于想入行的朋友:意味着可以以低曲线的方式进行ios App的开发。

  • 对于公司:Objective-C开发人员一直以人选少、薪资高、不稳定著称,让移动互联网类型的公司头疼不一,Swift语言让他们未来多了一种选择。


CSDN:开发者该以哪种心态看待这门新语言?


王芳杰:对于这个问题,用乔老爷子的那句名言回答最好:Stay hungry, stay foolish。我们建议大家应该以一种开放包容的态度来看待Swift,虽然Swift版本不稳定,先后经历了13次的版本更新才达到来了1.1的稳定版本; 老码的队员大都有近10年的一线编码经验,被C++虐过,也虐过C++,当然Java、C#、JavaScript、Ruby,语言排行榜前十位的语言我们都把玩过。对比言之,我们有理由说Swift语言是非常优秀的开发语言之一,我们需要接纳和学习。


CSDN:自发布至今,开发者对于Swift语言有哪些令你印象深刻的反馈?


王芳杰:Swift语言出身名门,因为诞生于苹果这样的航母级公司,所以关注度比较高。这也意味褒贬不一,我们从正反两面来说一下开发者们的反馈。


正面反馈,最典型的是“Swift门槛低,学习简单”,甚至我看到有位著名的培训老师说,他花2个小时就把Swift语言融会贯通了。当时我深深的惊呆了。其实我们刚开始着手翻译Swift英文文档的时候也这么觉得,曾经感叹这不是和写JavaScript感觉一样吗?但当我们的书写完前三章的时候,便深深的觉得自己幼稚!Swift语言骨子里有Objective-C的基因,但有一个比较漂亮的外表,写起来好看,入门流畅,不像Objective-C满篇的方括号和奇怪的函数定义。但Swift语言借鉴了JavaScript、Ruby等其他脚本语言的特性,太花哨、太灵活、语法点太多,要融会贯通,没有几万行的代码量是不行的。


反面意见,“Swift年幼,Objective-C永存”。对于这个反馈,我们的感觉也是两个字:幼稚!决定一门语言成败的原因在于多少人用。乔老爷子在世的时候就已经开始谋划苹果自己的语言,LLVM大牛Chris的加入让这个计划得以面世,足见苹果对Swift的重视,再加上苹果成功且封闭的生态圈,Swift语言必然大火。Objective-C语言也会逐渐被冷落。可能有一群Objective-C的支持者会拿Swift基础库少、语言不成熟、性能测试比不上Objective-C说事。我们的回答是:只要用的人多,这些都不是事儿。不信可以去看Swift语言排行榜,短短半年已经飙升到了第13位,再去看看Github和SourceForge上,Swift的项目早已过千。


CSDN:与国内开发者的热情相反,国外开发者对待Swift的态度可能更为冷静,比如有人认为Swift有一些地方还不够完善(包括与C/C++对接麻烦、没有针对变量的隐私机制、基础库不完善、没有异常机制等),对此类问题你怎么看?


王芳杰:我们每天都在关注国外的Swift论坛、网站和Google+上的评论,确实有很多人提出你所说的这些问题。不过我们观点是:这都不是事儿,最终的结果是“在批评中接受”。我们在测试XCode6.2 Beta3的时候发现Swift与Objective-C和C/++对接很麻烦,甚至有语法级别的错误,甚至使用泛型会导致SourceKit崩溃,但是这些都会逐渐被苹果修复,小伙伴们不用太担心。说到隐私机制,其实在XCode6 Beta5的时候,已经增加了Public/Private/Protected的支持,苹果有自己的道理,我们翻译的Swift Blog中一篇文章讲解了这个原因。至于对变量级别的隐私支持,以目前苹果的态势看应该不会增加,因为这和Swift语言开放式的特质相违背。


CSDN:对于那些iOS开发者来说,要接受这门新语言,要迈过哪些技术门槛?


王芳杰:我能说没门槛吗?对于有iOS开发经验的开发者来说,地球上最古怪的语言之一Objective-C都用过了,还有什么能难倒他们呢!只要心理上接受,其实是可以做到平滑过渡的。不过学习的过程中有些细节语法要注意,比如Swift引入了可选变量Optional(Objective-C有比较近似的NSNil),Swift的闭包特征(Objective-C有比较类似的Block),大家用的时候注意就可以了。


CSDN:对于希望学习Swift语言的开发者,你有哪些建议?


王芳杰:这是老码团队微博和《玩转Swift江湖》读者群的热点问题TOP5之一了,我们的建议包括以下几点。


  • 学习任何一门语言,捷径只有一条:动手去做,别无其他。如果你不是“撸码奇才”,什么“21天精通Swift”都是忽悠人的。

  • Swift语言是标准的面向对象语言,朋友们需要先领悟OO的思想、编程方法、网上资料很多。

  • 前面都具备了,接下来就是动手,Swift文档上的例子都要动手敲一下。



CSDN:在你写书的过程中,有哪些有意思的经历?


王芳杰:说实话,我们还没有从写书的劳累中恢复过来,过去的六个月所有的心思和精力都放到这本书上了。说起感受只有一个“累”字表达,说到有意思的事,还真不多,说两件吧。


  1. 小面馆的故事——与Swift邂逅。老码团队的点子诞生在一个小面馆,大家当时想每天闲着也是闲着,不如学点东西吧,于是才有了和Swift的邂逅。

  2. 中年码农的悲哀。我们的书基本是在晚上写的,我们几个人都有小孩,每天晚上开Online Meeting,Review章节的时候,听筒里全是小孩的哭声,不绝于耳,经常Review一半就听到“再闹,再闹,把你扔厕所头去!”(方言),Snow在骂她女儿。或者会听到“你们先整,我过哈来”(方言),原来Baelish的小孩拉屎了。这段经历绝对是刻骨铭心的。


CSDN:对于Swift语言在产品、项目中的应用,你认为市场的接受与爆发点大概在什么时间?


王芳杰:我仅说说我们的一家之言。Swift已经被市场接受了,我们有2000多人的Swift学习群,从Swift语言排行也看的出来,Swift开发的产品也已经逐渐出现在了App Store中。但我觉得大爆发会在明年年底左右。原因是:


  • Swift开发群体需要一段时间培养,这个时间需要半年以上;

  • Swift1.0还有一些问题,需要修复,预计明年年中Swift 2.0会出来,到时会好很多;

  • Swift的第三方库需要时间的积累;

  • Swift的知名度需要进一步提高,这个周期也需要一年左右的时间。


本文为CSDN原创文章,点击“阅读原文”可查看全文并参与讨论。


以上是关于Swift,其实没那么任性的主要内容,如果未能解决你的问题,请参考以下文章

其实没那么简单!!

设计一个虚拟Dom,其实没那么难!

Web登录其实没那么简单

你懂得咋选择彩光模块吗?其实也没那么难!

Web登录其实没那么简单

堆排序其实没那么难