Swift 再等等?我的答案是:快上车
本文谈下 iOS 开发要不要选择 Swift 的问题,纯主观无数据支撑,拒绝反驳,欢迎打赏。利益相关:实际项目中使用 Swift 一年半,从此 OC 是路人。
Swift 现状:与 OC 共存
如果你想弯道超车,以为只要学会 Swift ,就可以不用管 OC ,iOS 开发回到一条起跑线上,我只能说:
因为这个想法很不现实。iOS 的核心 UIKit 是 OC 写的,其实 iOS 大部分的 framework 都是 OC 写的。乔帮主留给我们的珍贵历史遗产,能说扔就扔?
如果你完全不懂 OC ,在目前的形势下,你甚至无法成为一个合格的 iOS 的工程师。
Server side 虽然是完全脱离了 OC ,但是服务端的开发环境和工具链离真正的商业应用还为时尚早,除非你想写出别人无法维护的服务端代码。
开发者对 Swift 接受程度
那 Swift 到底有没有人用呢?
我们看TIOBE的2月编程语言排行榜:
Swift 排在 12 名,OC 排在 19 名。其实在一年前,两个的关注度还是五五开,到了现在已经拉开差距。
Swift 从国际的角度来看,接纳程度已经超过 OC(欧美地区)。也可以去 Quora 上搜搜类似的问题。Swift 2.0 的时候还有很多质疑的声音,到现在开发者已经接受的非常自然了。使用 Swift 开发是显而易见的。
国内开发者对 Swift 怎么看
这里有个问题需要先想清楚,什么样的开发者的意见值得听?很多技术不同的开发者都有不同的声音,有人激进,就有人保守。
我的价值观是,相信那些最顶尖的程序员的判断。当然这纯粹只是我个人的想法。有些程序员如果已经不在一线开发,在一线时也不是特别出类拔萃,他们的观点我就会怀有质疑的态度(前端的朋友你们知道我说谁了)。当然了,这些只是对未来技术趋势的判断。我相信顶尖的程序员的判断,我把他们当做舵手。
我列几个我心中国内几个顶尖的开发者对 Swift 的态度。
- 王巍,kingsfiser作者,《Swifter 100 tips》作者,毫无疑问,1.0 时代开始就看好 Swift
- 钟颖(cyan),去年国内最优秀的独立应用开发者,显然一直在用 Swift 开发,在去了微软以后依然使用 Swift
- @故胤道长毕业于CMU,硅谷 flag 公司 Uber 架构组工程师,Uber 的 app 是全 Swift,Swift 早已是日常选择。
- MrPeak,博客篇篇精品干货,在2016年iOS技术圈回顾中写到:
Swift进入公众视野已有一段时间,开发者社区的接纳度非常好,就我所接触的团队来说,已有不少在新产品中全面转向Swift的了。对于Objective C阵营的开发者来说,学习Swift已经是刻不容缓的事情了,对于新入行iOS犹豫在Objective C和Swift之间学哪个的同学来说,答案是两个都学。
Swift还处于新生期,这门集众家所长语言所包含的潜力还远没有被挖掘干净,业界的最佳实践还需要大量的产品来锤炼,响应式,函数式,面向协议等等都是大话题。还没看过喵神最近关于面向协议编程文章的同学,可以去仔细阅读感受下面向协议对于现有OOP方式的改变,这种思想层面的颠覆正是Swift的魅力所在。使用Swift的问题也还很多,Xcode崩溃,语法高亮消失,编译慢等等,你可以看到很多开发者吐槽用Swift写代码,但没有人转身离开。
国内“大”公司的态度
我一度以为国内正规公司没人用 Swift 。
对于豆瓣团队的技术实力我是不怀疑的,在去年我欣喜的发现他们在用 Swift ,而且还用的挺好,在豆瓣App的模块化实践中提到:
Swift 在工程效率上确实优于 Objective-C。和 Objective-C 相比,Swift 可以用更少的代码,更清晰的方式完成相同的功能。当然,混合使用 Swift 和 Objective-C 存在一定的工程成本。所以,这里就需要权衡:是保持简单,只使用 Objective-C 呢?还是忍受一定的不便,使用一些 Swift,带来效率上的提升呢?
我们在项目中使用 Swift 的体会是:有快乐,当然也伴随着一些不便。总体而言,不便都可以克服。
2月初的时候刚好和隔壁的一个网易的朋友聊天,问他们用 Swift 吗。他说新的代码有些已经开始用 Swift 写。维护的部分就还是用 OC。
一位不愿透露姓名的百度的朋友(@AidenRao)前几周在群里说他们一个项目在考虑使用 Swift ,最近在做调研,后来他们项目组决定使用 Swift 开始写。
上次去饿了么参加一个技术活动时也得知他们接下来会慢慢开始转移到使用 Swift 开发。
Swift使用现状总结
在国外使用 Swift 开发已经是一件很主流的事情。在国内不知道为什么原因(其实我就是不好意思明说)使用 OC 还是绝对的主流,使用 Swift 的只是一小撮开发者。
如何评价:为什么很多大公司继续使用 Objective-C,不用 Swift?
我就问一句:哥,你在的是大公司吗?BAT用什么技术你就用什么技术?代入感不要这么强好吧。
可是他们说 Swift 不稳定啊
可是他们说 Swift :不稳定,不成熟,慢,混编效率差。
这些只是大部分不愿意学习新技术的人的借口。如果你真的学习了 Swift ,写了几千行代码,你觉得这些问题真的是问题,我就认了。但是你务必自己去试一试。
当然我不可否认使用 Swift 是有代价的。但是,哥有信仰。
上车吧,我在秋名山等你
选不选 Swift 其实是一种态度。
有可能,光光不想和那群傻逼一样还写 OC 就够了。
不好意思,我又冲动了。
欢迎关注我的微博:@没故事的卓同学
Swift 再等等?我的答案是:快上车相关推荐
- 2018计算机专硕学硕,2018考生快上车!专硕VS学硕,究竟怎么选?
原标题:2018考生快上车!专硕VS学硕,究竟怎么选? 有小伙伴说,我是2018考研生,我有好多问题要问啊.亲爱的,慢慢来,从今天开始,小编将用一年的时间陪伴你. 今天,咱们就来讲讲学硕和专硕的区别. ...
- 随学随考计算机应用基础作业1,【随学随练】统编版四年级下册语文《第一单元》一课一练带答案,快给孩子练习!...
原标题:[随学随练]统编版四年级下册语文<第一单元>一课一练带答案,快给孩子练习! 下载完整电子版,请拉到最下方 <1.古诗词三首>同步练习题 基础积累大巩固 一.选一选,填一 ...
- 华为云电脑.模式_今晚0元学华为云计算HCIA课程!快上车,提前了解云计算三种服务模式...
点上方蓝字关注,每天都有新收获! 学网络,就在IE-LAB 国内高端网络工程师培养基地 今晚0元学华为云计算HCIA课程! 快上车啦 今晚7:30--9:30 扫码火速报名 云计算是一种全新的商业模式 ...
- 怎么找思科答案最快_成功闯入思科的面试经历
3月,在招聘应届大学毕业生方面向来"后发制人"的思科中国公司,先后在全国21所高校展开了"思科校园行"活动.上海站的校园招聘活动也陆续在上海交通大学.复旦大学和 ...
- 快上车!2021次“网易云信号”回顾列车发车啦!
你还记得2021年发生了什么吗? 年初,埃隆·马斯克凭借一己之力带火了语音社交软件Clubhouse,这款现象级的应用打破了互联网圈沉寂已久的平静. 3月,Roblox上市引爆"元宇宙&qu ...
- 快上车 全套Python零基础入门教程免费分享 !
前言 随着近年来Python的兴起,数学建模的语言不仅限于c.c++和matlab,python由于本身自带的科学计算库以及一些图形可视化库,python也成为数学建模的常用编程语言之一. 我们都知道 ...
- 河马搞笑GIF动态图网站(http://gif.hemaj.com)上线,老司机快上车!
河马gif每天推出最新鲜最吸引人的搞笑gif图片,美女福利gif.趣图gif动态图片,广大玩家的犀利吐槽.快来河马gif与笑友们一起分享你的趣事吧! 河马搞笑GIF,只为博佳人一笑.. 网址:htt ...
- 阿里云盘又送福利啦?空间大时间长,不要犹豫快上车!
大家好,我是TJ 一个励志推荐10000款开源项目与工具的程序员 前两天有小伙伴来跟TJ君吐槽,他说TJ君你就知道给我们分享开源项目和有用插件,怎么也不给大家点分享点实打实的福利羊毛呢? 小伙伴有诉求 ...
- 快上车!日语86G学习资料免费领取!!
白嫖党的福利来了!某日语培训机构86G学习资料外泄 没时间解释了,先上车! 刚开始学日语,你是不是天天在网上找各种资料 又不知道怎么找系统的资料 搜罗了一大堆资料,结果都不系统 这里学一点,那里学一点 ...
- 快上车!通用自主开发无人驾驶汽车首次公开试驾 | 精选
▼ 大型年度AI人物评选--2017中国AI英雄风云榜,评分工作已结束,12月4日乌镇张榜! 奖项设置:技术创新人物TOP 10,商业创新人物TOP 10 表彰人物:华人科学家.学者.企业家.创业者 ...
最新文章
- springmvc【问题1】跨域
- mysql的字符集编码_MySQL的字符编码设置
- Android自己定义组件系列【4】——自己定义ViewGroup实现双側滑动
- css钢铁侠视角,CSS3 Iron Man 钢铁侠肖像
- 计算机b级英语翻译,英语B级考试翻译必备常用短句
- CISSP的成长之路(十六):复习访问控制(1)
- git-bug分支-git-stash-工作代码与bug解决同时处理时解决模拟
- 对抗恶意程序的反虚拟化,百度安全提最新检测技术,具备三大特性
- 逼疯一个程序员有多简单?
- 抖音自动清关注服务器,各位有保留抖音自动关注的代码吗
- linux的abrt目录满了,linux:abrt-cli list
- bmfont 导入png图片不能正常加载
- php获取微信uninoid_微信公众号如何根据unionid获取到openid?
- Java Base64 加密与解密
- PT、CT、CVT各是什么意思?
- 知识图谱嵌入(KGE)主流模型简介
- 【python数据分析】对淘商品类母婴购物数据进行分析(含完整源码)
- ubuntu QQ安装 网易云音乐 rar文件 截屏软件Shutter 图片编辑pinta 文字软件typora 视频播放器smplayer
- 中文地址 识别 切分
- 学渣的刷题之旅 leetcode刷题 70.爬楼梯(动态规划)
热门文章
- 417.太平洋大西洋水流问题
- 318.最大单词长度乘积
- shell2 for linux,Linux Shell编程(2): for while
- 【机器学习系列】MCMC第一讲:蒙特卡罗方法初认识
- 语言模型总结(待完善)
- 【Codeforces Round #291 (Div. 2) D】R2D2 and Droid Army【线段树+二分】
- lnmp mysql 哪个好_[LNMP]Mysql生产环境配置
- IE开发人员工具不见了?
- 【MySQL】mysql中any,in,some,all的区别
- js之数组去重的方法