为什么2020年ios开发还坚持使用objective-c?

先说我个人的结论:

不使用 Swift,要么是开发者在这块经验较少,要么是所参与项目中不适合使用,这项技能也就弱化了。

下面从项目、团队(个人)以及语言的稳定性方便分析下。

项目

新项目:

新的项目没有“历史”负担,如果是有 Swift 开发经验的个人或者团队,一般会考虑使用新语言开发。但也不是一拍脑袋就用的,也要综合评估。看项目的体量、核心组件库支持情况、团队成员经验等。

老项目:

因为老项目基本都是 OC 开发的,有些项目随着时间已经迭代 N 多版本了,项目变的错综复杂、庞大,牵一发而动全身的感觉,这种项目在版本迭代、维护还是会以 OC 为主。

混合开发:

目前有不少公司、团队在这样做。我之前所在公司也这样。

比如核心的页面、功能使用 OC,一些不重要的页面会用 Swift 开发,让团队开发人员学习使用,提高大家的实战经验。这个更多的是从技术角度考虑的。

当然这个也和上面的老项目类似,要评估后才会做决策是否使用新语言。

项目兼容性:

有些项目中,会引用较多的第三方开源库或者核心库也是用第三方的,那么要看这些开源库是否支持 Swift,有些老的开源库(只有 OC 版本)但是刚好是你需要的,你要考虑这个问题。

团队

要考虑开发团队是否都有 Swift 经验或者有核心开发人员有较为丰富的开发经验。

如果团队成员缺少新语言经验,在项目开发时,考虑项目的计划、风险,一般都会选择更“稳妥” OC 开发语言。

有些不错的以技术为核心的公司团队,会组织开发者学习新语言,也会适当的在项目中使用。提高团队的“战斗力”。

个人

近几年的新入行开发者中,学习和使用 Swift 的已经多起来了。因为是从 0 基础学习的,基本会选择 Swift 语言。

还有就是苹果官方也在推荐使用 Swift,从学习资料、开发工具都在支持,所以对新入行开发者影响较大。

而那些老 iOS 开发者,还是以 OC 为主,因为 OC 经验更多,同时也在学习和尝试 Swift,但在某些情况下还是会优先选择 OC,但也有做混合开发的。这个要看具体的项目、计划等,进行综合评估。

语言的稳定性

Swift 毕竟是一个新语言,虽然经过了这么多年的迭代,但也是处于变化阶段,而且每次大版本都会有较大的变化,这个在开发以及维护上,是会有一定成本的。包括学习成本。当你在项目中遇到这种问题就够头大的了。

比如:你的项目中使用 Swift 某一个版本,在下一次 Swift 更新后,你的项目中就需要针对这块做处理,可以理解为给项目带来了额外的开发成本。

再比如:你的项目中使用了一个第三方开源库,因为是第三方的,所以你自己是不可控的,如果这个库在某个 Swift 版本兼容出问题了怎么办?相对来说,OC 已经不会变化了,这种风险基本没有了。

最后:

“最近招ios开发,发现还是使用oc开发语言为主,少用使用swift为主的,目前是2020年,是什么原因让大家不使用swift呢?”

不同的公司和团队,招聘时也是针对当前项目来选人的

比如:某家公司的项目都是 OC 开发的项目,那么在招聘时的要求就是“精通 OC”,而了解或者可以使用 Swift 开发,这属于加分项。

再比如:某家公司的项目是纯 Swift 的,那么在招聘时的要求就肯定是“精通 Swift”,了解或者可以使用 OC 开发,这就属于加分项了。

现在的互联网大厂(像鹅厂、阿里、等),大部分项目都是老项目,所以开发还是以 OC 为主。这些大厂的 app 都属于超级 app 了,光是 iOS 开发团队都是百人级别的,像底层组件的开发、支持可能是另外一个部门,也都是 OC 为主。所以在选择某个语言时,考虑的会非常多。即使是新项目,也会考虑时间成本,如果已经有完整的组件库,而且都是 OC的,你说会使用哪个语言开发新产品呢?

除非 Swift 有什么特别牛的特性,会给终端用户带来多大的使用体验提升、给产品带来更低的成本或者更高的收益,否则为什么要更换一个更有“成本”的开发语言呢?带来的是更多的不确定的风险,相信很多公司、团队都会有所考虑的。

而一些创业公司或团队,用 Swift 的会比较多,因为历史包袱少,也就倾向于选择新东西了。所以在招聘时也会优先考虑选择开发者的 Swift 经验。但如果这个团队是以 OC 为主(开发人员都是 OC 经验为主),那么就优先找 OC 经验的开发人员了。

新事物都是要有一个学习、适应以及进化的过程的,不论是这个事物本身要改进,使用的人也一样。现在 GitHub 上主流的开源库也都已经支持 Swift,也有新的库只有 Swift 版本,说明大家是在拥抱新事物的。

但是理想和现实是不同的,在现实的项目、团队中,是否使用新语言,真的是要综合评估的,不是说新的都好,也不是说老的一定对。而且作为技术负责人,是要做好这些评估的。

针对实际的“环境”,选择合适的开发语言。能够高效的开发、缩短开发周期、提高项目质量和稳定性、降低开发和维护成本,能快速上线,才是硬道理。

相信 Swift 会在未来完全取代 OC,但短时间内还是不会的。

作为开发者,不断的学习、更新自己的知识库,关注新事物的发展是必不可少的额,虽然不能在公司项目中使用,但可以应用在自己的个人项目中作为学习和实践的方式,扩展自己的技术能力。

最后,“适合”的才是最好的!


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 490382048@qq.com 举报,一经查实,本站将立刻删除。

相关推荐

大家在看

返回顶部