大前端时代,我为什么支持前端程序员学习原生技术?

9,842

在上一篇文章中,我分析了大前端的趋势,我建议原生程序员拿出3分精力来学习大前端技术。本文将进一步分析这一趋势,并针对前端程序员(FE)给出一些建议。在此之前,先给大家介绍下大前端。

大前端技术的发展已经有一段历史了,但是这个概念正式映入大家的眼帘是在2017年,当时以饿了么为代表的一些企业开始提出大前端的概念。在2018年年中,InfoQ举办了首届全球大前端技术大会(GMTC),在大会中将前后端分离、跨平台和PWA等技术设立了专场,这次大会具有重要的意义,它预示了大前端时代的正式到来。

大前端到底是什么呢?直接来说,大前端就是所有前端的统称。在后端眼里,最接近用户的那一层都叫前端,比如Android、iOS、Web、Watch等。对企业来说,每上线一个新产品都需要开发几个平台的APP,这是一种资源浪费。从节约成本的角度来看,用一份人力来开发适用于多个平台的APP,这才是最有价值的。总结来说,平台、跨平台技术以及周围生态,它们共同组成了大前端。

下面开始阐述本人的观点,我认为:前端程序员也要花3分精力学习下原生技术栈

前端技术在经历了前后端分离以后,从互联网迈向了移动互联网。现在除了淘宝京东之类的电商平台还拥有大量的PC网站开发外,剩下的PC网站开发大部分都是做运营平台,Web开发已经越来越向移动端靠拢了。

在互联网时代,大家可以通过浏览器收藏夹和搜索引擎来打开各大企业的网页,但是移动互联网时代,网页已经很难触达用户了,因为用户在手机上缺乏搜索的习惯,这也是百度在移动互联网时代掉队的原因。解决这个问题的方式就是手机APP,还有微信小程序,但是稍微大一点的公司都不会把微信小程序作为自己的主要入口,所以移动互联网还是APP的时代。

在跨平台方案上,最有潜力的依然是ReactNative(含Weex)和Flutter。Flutter现在才preview,而且其动态性方面有缺点,也没法支持H5,在我眼里,Flutter更像是一个未来的方案,而ReactNative则是目前的最优解,虽然它也有很多不足。

随着大前端的发展,如果有朝一日ReactNative变得更完善,成为了各大公司的主流开发模式,那会出现什么现象呢?毫无疑问,肯定要使用JavaScript进行业务开发,但是由于ReactNative本身的限制,它在复杂UI、长列表加载,原生能力的支持完整度上都还有不足,还有已有的第三方库复用,这些都需要以原生的方式来支持。也就是说光靠JavaScript是完成不了的,还必须配上一定的原生程序员(Android和iOS)。

问题来了,这套技术栈提高了研发效率,那公司肯定要进行“人员优化”,淘汰掉不能适应新体系的程序员,节约人力成本,毕竟这才是企业拥抱大前端的本意。那大家猜一猜,哪些人会被淘汰掉呢?

肯定是不懂JavaScript的原生程序员和不懂原生的FE。

在大前端时代,三端已经融合了,Android、iOS和FE已经没有那么明显的区分了,所以谁适应不了新形势谁就会被淘汰。JavaScript本身有一定复杂度,但是ReactNative中的JavaScript只是子集,其门槛很低,原生程序员可以很快上手。那问题来了:如果前端程序员不懂原生,而原生程序员却懂JavaScript,那作为领导,他会选择裁掉哪类人呢?我相信大家都心里有数。

所以,大前端时代其实是Android、iOS和FE的融合,并不是说FE替代原生,更不能说APP已死,要知道最终的APP是运行在Android和iPhone上面的。

我给大家的建议就是:
原生程序员学习JavaScript,FE学习原生技术

尤其是FE,千万不能觉得自己只要坐享其成就好,一定要改变下自己的观念,主动学习下原生技术和跨平台技术。

我知道,本文的观点或许有一些超前,因为本文不是一篇描写现在的文章,而是一篇描写未来的文章。但是我并不是乱说,这一切都是我观察、学习和思考后做出的预测。我想说的是,当一个趋势所有人都能看懂,你才能看懂那就晚了,只有在大部分人还看不懂的时候,你看懂了并且去做了,才能在趋势到来后领先大部分人。你们认可我的观点吗?点赞,将本文分享给更多有需要的人吧。

推荐阅读
大前端摧毁了原生开发者的一切,但是我们应该开心

欢迎关注我的微信公众号「玉刚说」,做大前端的领航者