一个应届生对近来前端界流派之争的一点思考

回家躲避寒潮,忽然发现自己又变成无所事事的状态了。果然以后工作的话,远程办公这种东西不适合我,毕竟在家效率太低。最近几天刷微博的时候发现业界大神们沉寂了十天半月之后也许被寒潮冻出来寂寞感,关于“真伪前端”的话题又被拿出来辩(si)论(bi)了。其实最近两三年关于前端新技术的“抵触”和“拥抱”两种态度一直存在,爆发不少口水大战。尤其是react-native以及ES6在2015年横空出世以后,关于前端工程师的技术栈应该如何构建的话题引发了一轮又一轮的“世界大战”。作为一个还没毕业的应届生前端小白,自己对于业界前辈的华山论剑一直是秉持理性观战、汲取众家所长的态度,毕竟年轻,不敢妄加评论。所以这篇文章的基调也是从毕业生小白的视角对前端领域“真伪前端”话题进行肤浅的总结。

一、现状

其实对于前端界两种态度的持有者,按照流派划分大约可以对应为“保守派”和“狂热派”。“保守派”的特征是对CSS有深入的研究,可以说是CSS专家;“狂热派”的代表是像淘宝前端团队这样的成熟前端团队成员,他们在javascript和nodejs方面造诣非凡。所以呢,从技术的角度来讲,也可以把两大阵营划分为CSS流派和JS流派。
“保守派”也不是说这些开发者对于前端技术不欢迎或者抵触什么的,他们的观点是,当前前端的发展有点偏离轨道,前端人员玩像react-native这样的技术是雀占鸠巢,有点不务正业。保守派认为诸如Angular、React-native、SASS这样的热门技术并不能维持长久的适用度,它们必将会像之前的很多曾经火得一塌糊涂的框架一样仅仅是昙花一现,不值得前端开发者去花大量精力研究,而热衷于这些东西的狂热派都是“伪前端”。另外一个批判点就是,当前对于形形色色框架的狂热追捧会导致前端小白迷失方向,随大流去捣鼓RN、Babel这样的技术框架和工具,本末倒置,忽视了对CSS和javascript本身的研究。
“狂热派”是前端社区比较活跃的存在,他们热衷于捣鼓各类横空出世的新技术,是Facebook、Google以及Twitter等国外互联网企业开源出的新技术的忠实追随者。狂热派大多处于或者曾经处于国内一线互联网企业的成熟团队,工作中接触新技术较多,是实实在在的“技术潮人”。狂热派认为,ES6、react、Webpack这样的新技术是可以真正解决当前的业界痛点,是前端发展的主流和正确方向。他们鄙视还在捣鼓jQuery的前端开发者,认为这是真真切切的“切图仔”,没有真正步入现代前端。狂热派觉得保守派是一批不思进取的懒人,只有新技术才能推动前端的进一步发展。

二、分析

之所以像现在这样出现两种不同的对立阵营,是因为web前端的发展现在正进入一个全新的时代,一个真正的鼎盛时代,一个技术界的工业革命时代。随着互联网网民增加特别是移动互联网网民的比重逆转PC端网民,大型前端项目在接受来自移动端的大规模访问时出现了相对于PC端时代更大的挑战。移动互联网对流量和速度的极致要求推动了相关技术的迅猛发展。“快”和“省”成为前端开发的技术中心点。所以FB的天才工程师们才会孵化出虚拟DOM这样的前端技术。另外,工业化时代的自动化生产流程也是大型前端项目的产儿,是推动新技术诞生的核心力量。种种因素之下,各种工具和框架满天飞,每天都有新玩意儿出现在github和相关社区。在这样的情况下,一部分业务繁忙的工程师们无暇顾及充斥眼球的各种新名词。一般来说,如果只专注于自己的业务领域的话是根本用不到RN、AG之类的乱七八糟的东西。再加上资深的前端开发者见过太多的新玩意起起落落,大部分昙花一现,所以对当前新技术的热衷潮流不屑一顾的态度也就是自然而然形成了。
但是呢,另外一批来自成熟团队的成员(也可能是其他类型的开发者),由于他们产品大多数已经成熟,平时的业务范围也就局限于内部框架之上的二次开发,他们的工作重心是造轮子、研究新技术。很自然地,这批人的关注点在于新技术,对业界的新技术也就格外推崇。再加上国内的互联网技术环境决定了前端工程师更多地是使用外国佬的技术而不是创造出颠覆业界的技术,对技术的狂热可以把逼格满满提升几格,何乐而不为呢。
那为什么程序员那么喜欢争(si)论(bi)?要知道,程序员是一群特立独行的人,骨子里天生就有一种优越感。在码农的世界里,对就是对,错就是错。我认为对的东西你不认同你就是错的,既然你是错的,我就要嘲讽这种错误的存在。所以有人说,毁掉一个团队最简单的办法就是把写java、python和PHP的人都丢进去,这样这个团队基本上就完了。在前端的世界里,要毁掉一个团队也许更简单,把使用不同框架的人丢进去就可以了。这虽然是一个段子,但是折射出来的结论就是:程序员的眼里揉不得沙子。那么在风风火火的前端界,这种争论的存在就更不用说了。

三、一点思考

上面分析了这么多,只是对前端界的不同观点进行阐述。那么作为知识水平low几个等级的小白们来说,面对纷纷扰扰的前端世界,宝宝应该怎么样去辨析真假,调整自己的学习方向呢?都说web前端正处于一个最好的时代,可是面对眼花缭乱的选择,小白们也许无所适从。从我的角度来讲,首先,我不属于保守派(也没有资格列入任何流派),我是很欢迎新技术的(毕竟一穷二白,学什么都无所谓)。但是从一个小白的角度来看,最佳的态度应该是将精力放在研究CSS、原生javascript、架构思考等基础知识上,同时要关注业界技术动向,了解新技术的思想和基本用法。至于说是否要对新技术深入研究,可以根据工作业务需要决定,毕竟最适合的才是最好的。如若不然,本末倒置,即使把最新的某项技术研究透了,到最后连CSS兼容都处理不好,那么等到热潮过去之后,新的替代者出现,可能就会发现自己一无所长了。