objective c(为什么2020年ios开发还坚持使用objective-c)
一、为什么2020年ios开发还坚持使用objective-c
我做iOS开发也有好多年了,目前也还在写代码。我自己是OC为主,用Swift开发过一些页面,但是用的少。聊聊我的个人看法,欢迎交流讨论。
不使用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,但短时间内还是不会的。
作为开发者,不断的学习、更新自己的知识库,关注新事物的发展是必不可少的额,虽然不能在公司项目中使用,但可以应用在自己的个人项目中作为学习和实践的方式,扩展自己的技术能力。
最后,“适合”的才是最好的!
二、学objective-c前,需要先学c语言么
不需要学C。尽管如果学过C会更好的理解oc,但不会C也没有关系。但你之前最好学过一门高级编程语言,java,python,甚至php,js都可以。因为oc不是一门适合初学者的语言,它晦涩难懂,从编译到调试都很不友好。
三、同时学习《易经》在思维方法上对学习Objective-C有没有指导性帮助
首先说计算机及其编程语言都是老外开创的,这些人可能没看过什么是易经。但万物皆有共通,你要觉得有联系就有联系,但指导性帮助,我觉得谈不上。