说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Swift,其实没那么任性

HTML文档下载 WORD文档下载 PDF文档下载
自发布至今,开发者对Swift语言的争论不绝于耳,有人认为Swift门槛低、现代化、有人则认为它还存在很多缺陷。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文档上的例子都要动手敲一下。
说到资料,我们觉得最好的资料是苹果官方的Swift语言文档(Swift Programming Language),但对英文要求较高;如果英文不济的话,可以看老码团队参与翻译维护的Swift中文文档其次可以买一些书,市面上有很多Swift的书,因为我们是写书的,所以不便评价书的好坏,但有一个原则大家要注意,那就是:出版日期必须在2014.10.11号之后,因为在这个时间点苹果发布了XCode6.1正式版,Swift语法才稳定,还有一个小窍门就是书目录里含有:可失败构造器,因为这个特性出现在XCode6.1。除此之外,订阅一些Swift RSS,比如CSDN、Cocoachina、SwiftBlog等。每天可以看到国内外对Swift语言的分析和总结。也欢迎大家关注我们的微博(@未来眼之老码团队),因为我们会第一时间发布苹果Swift语言ReleaseNote的翻译总结。

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

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

  1. 小面馆的故事——与Swift邂逅。老码团队的点子诞生在一个小面馆,大家当时想每天闲着也是闲着,不如学点东西吧,于是才有了和Swift的邂逅。
  2. 中年码农的悲哀。我们的书基本是在晚上写的,我们几个人都有小孩,每天晚上开Online Meeting,Review章节的时候,听筒里全是小孩的哭声,不绝于耳,经常Review一半就听到“再闹,再闹,把你扔厕所头去!”(方言),Snow在骂她女儿。或者会听到“你们先整,我过哈来”(方言),原来Baelish的小孩拉屎了。这段经历绝对是刻骨铭心的。

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

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

  • Swift开发群体需要一段时间培养,这个时间需要半年以上;
  • Swift1.0还有一些问题,需要修复,预计明年年中Swift2.0会出来,到时会好很多;
  • Swift的第三方库需要时间的积累;
  • Swift的知名度需要进一步提高,这个周期也需要一年左右的时间。
[回顾]比尔&#183;盖茨传奇的前半生 IT基础设施与运维论坛:IT基础设施及运维经验分享 记华为HCC2013 Day1:发力高端存储 HCC 2013虚拟化论坛:虚拟化未来发展方向 Windows 8操作系统市场份额增至7.41% Windows 7仍最受欢迎 【开源专访】Sea.js创始人玉伯的前端开发之路 SDCC 2013:阿里周宝方谈“去IOE”战略及实施 百度和高德:最后谁是地图的王者? 【CTO论道】瑞智和康CEO陶建辉:软硬结合是消费电子新潮流 10大高效率原型设计工具 JIRA与敏捷:李小龙教给我们的敏捷开发之道 百度开放云:Light Up The World,与开发者共享云未来 有胆你就来!11个在线编码大赛 CTO如何避免决策失控:第一步-定义角色 后机械硬盘时代,那些引领风骚的闪存初创公司 致远文杰:传统企业如何实现移动化转型? 记华为HCC2013 Day2:SDN开放编程系统OPS打造生态圈 HCC2013:华为FusionCube融合至简,性能至优 已确认Stephen Elop候选微软下任CEO 英语对于软件开发者来说到底有多重要? SDCC 2013中国软件开发者大会成功落幕 新浪微博宋琦:PHP在微博优化中的“大显身手” 8月份浏览器份额:IE浏览器PC端出现反弹 移动端跌出前五 如何让Ruby项目速度提升10倍 跨平台进行到底:Facebook发布Unity SDK 云薪资管理初创公司ZenPayroll:年处理薪资超1亿美元,获多位知名CEO力挺 Twitter开源Summingbird:近原生编码下整合批处理与流处理 亚马逊推Matchbook 欲将顽固纸质书读者拉向电子书 Broadcom为可穿戴设备推新开发平台WICED 再战江湖 New Kodak还牛不牛? 郭理靖:公、私有云架构异同点与难点 ~~~~~~~~~请问这句SQL怎么实现?马上给分~~~~~~~~~~~ 有喜欢看软件方面非技术类的书吗?如<<Java夜未眠>>、<<凌波微步>>、<<Borland传奇>>等这类的书? 请教各位老师,我用lotus notes 给别人发邮件时,有些人收到的邮件的附件是乱码,请问这可能是原因造成的? 请问能否用代码生成ORACLE的连接串,怎样生成.谢谢!! 帮我解释一下这个SQL语句的意思 ASP中的Input框,其type为"File"型,是不是不能往其中写内容,即通过Value给它赋值, 学习遇难题了,问各位师兄! 如何遍历局域网内计算机,返回计算机名列表? 高分请教:我在delphi中用shell,但一编译的时候出错。说没有声明shell,我想请问怎样声明。应在uses中调用什么? 请牛人出来讲一下,动态Tile和地图分层,谢了,要多少分给多少 在WORD里在哪里找到类似信封和类似电话的特殊符号? 一个十分简单的问题! 请教文件上传问题 关于sqlserver时间格式问题 公司准备上一套外贸管理系统,谁能帮我推荐一下!!! 基础问题 全文检索不能检索中文问题 谁有标准C函数库? 高分求救:关于crystal 连接oracle,不能运行 A调用B,怎样能够获得A所在的线程? frReport出错,解决即给分。 谁有标准C函数库? WIN2000和WINXP关于网上邻居的问题 如何将判断一个graphi字段里是否有内容,如果有,就删除!! 请问深圳市区内哪里较全面的计算机类的书店? javac不能编译Servlet,请问在Tomcat 下还有别的方法吗? 很有意义的问题!! [[[[[[[[[推举几个SEX站点.给欧研究研究.]]]]]]]] 怎么实现!? 字段长度int(2) 这个2到底是什么意思? 那里有Microsoft DirectX SDK FOR DELPHI的下载 学生管理系统登录问题(ADO数据库的问题) *.dat文件用什么软件打开!! 哪有jsp写的论坛源程序 大家给个思路了!!! 如何传递两个参数!在线等! 小弟在开发一个软件时踫到了许多问题,想请各位大侠帮助!! 请问:如何从VARIANT类型的数组中取数据? TOMCAT+SQLSERVER连接池配置问题~高分请教 这个问题让我有点晕!——安装与部署项目! 空调有坏了!!!! 安装论坛过程中遇到的问题!!!!!! 关于使用TC35Modem发送短信的问题,用超级终端可以,用N多个程序连接端口都不行。 "native code outside the VM"是什么错误呀 win2000 VPN方式的网络的实现。 datagrid控件的数据绑定问题. 请高手教我如何搭redflag linux下JAVA开发环境,急,另给分 如何删除一个字符串的前10个字符? 资料档案库是用来干嘛的? 用EJB做后台的参数传递。高分请教! 在ASP中对数据库操作是否可以用事务提交啊? 方程x2+ty2表示的曲线一定不是直线 抛物线 园 双曲线之中选一个不确定是抛物线还是直线 求教 就求翻一下这段英语,要准确一点,谢谢!Demonstrate competency in playing scales and arpeggios (4 octaves ascending and descending, hands together), piano repertoire, and sight-reading (live audition only). Audition repertoire should consi 要准确!急用!Visit the "foreign foods"section of a supermarket near you,or get hold of an English-language magazine.Choose some packaging or advertisements that really appeal to and complete as much as you can of a "Double Happy Advertising Agenc 路和街有什么区别? 谁帮我翻下英文.要准确点的Down everything,always fit you!Ask ourselves why do love you,the original has long been deep love!Give me a chance to prove themselves,not you,really tough day,give me a chance,do not want to see you can only drea g65是什么 210国道上G65是什么意思? 数控上g65什么意思 如果在北宋,一个武将可以弃武从文去考科举吗?这种可能会出现吗?北宋什么样的人才能考科举! 科举以来究竟产生多少位文武状元 科举以来究竟产生多少位文武状元拜托了各位 科举以来究竟产生多少位文武状元 中国已在南极洲命名359个中文地名美国务卿将于3日访埃及 穆尔西被罢黜印度一鞭炮厂1日发生火灾 至少6人死澳使馆为美搜集亚太情报 中国是监听目美国务卿将于3日访埃及 穆尔西被罢黜俄男子在法庭引爆手榴弹 导致2人死亡外交部:美方澄清钓鱼岛共同防卫计划的俄男子在法庭引爆手榴弹 导致2人死亡中国驻日使馆表彰见义勇为留学生印将建高达182米世界最大雕像 高约印度古吉拉特邦建世界最大雕像 暗贬尼毕飞宇作客“文学名家讲堂”国庆去哪儿?澳洲东南亚线降价啦百味秋葵,你试过未?长沙市科技局发展计划处处长数据再现支撑 成长股或迎转机定期开放债基走红清香椰奶鸡汤 让你清爽一夏大学生志愿服务工作一周信息早知道汇往昭通灾区捐款免收汇费十元买支眼影化妆双眼皮肿成单眼皮?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘