最近发了两条微博:
想起克军的一句话:前端研究,研究个屁~ 的确如此呀。补充下联:前端设计,设计个屁~
前端目前最大的困境是,如 HTML 一样,无论你承不承认,市场上并不太需要 HTML 高手。
微博上的回复大部分歪楼了。上面两句话乍看有点激进,却是我的真实想法。
背后是一个问题:
前端的价值究竟是什么?未来应该如何发展?
前端的价值
如果你刚入行,或者从事专职前端工作未满 3 年,请忽略上面这个问题,并且尽量不要再往下看了。
我知道你会忍不住往下看,那就看吧。负能量有时也是正能量。真实面对所做的事,如实面对自己的真心,这是迟早的。有过痛,才真正懂得乐。
特别注意,下面说的前端,都是阿里的前端,其他公司切勿对号入座,每个公司的情况都不同。每个公司,前端的定位也会有差异。
阿里的前端,目前主要分两种:一种在 UX / UED 部门,另一种在技术部门,所做的事大同小异,都是负责界面交互层的开发。上游是 PD、交互、视觉等,下游是后端开发人员、测试等。技能主要是 HTML、CSS、JavaScript,有些前端团队比如支付宝还直接负责 Velocity 等模板层的开发。这是阿里目前前端的现状。
前端是后端数据的第一消费者,也是最贴近用户的程序员。
一切看起来很美。
前端的价值在哪呢?很多人会回答:
实现界面交互。
提升用户体验。
第一点是前端的本职工作,也是前端岗位存在的原因。第二点也不多说,前端做得好,对用户体验是有益的。
让人纠结的,是前端有价值,可是,这价值真的很重要吗?真的值得做为一个职业投入一辈子吗?
做技术的,可能都会有类似纠结。但传统技术,纠结相对少点。比如搞数据库的,有一堆牛人榜样,搞网络、安全等等的,也是如此。这个现实的背后,是因为
这批传统技术的背后,无论是数据库底层优化,还是网络优化、安全防范等等,做得好,对业务都能直接产生影响,比如大幅度降低硬件成本等等。价值是直接的,可见的,不太会被质疑。
然而前端的价值,没有人会直接否认,但看得明白的,都知道:
淘宝的核心用户体验,并非是 UI 层面带来的,而是 C2C 的模式,是同等品质下商品的价格,还有支付宝的便捷等等。前端的确很重要,但真的,也就那么着。比如京东,很多交互细节做得其实不咋的,但京东靠着靠谱的物流、货到付款等方式提升了整体购物体验。对阿里来说,用户体验非常非常重要,但前端在用户体验层面能做的其实很少很少。
一个事实:
把国内大部分公司的 UX 部门解散掉,也不会太影响产品的体验。在国内,UX 主要还是起到美工的作用,虽然我不想承认。
前端依旧是美工,而且仅仅是实现工。
在阿里,我们不得不承认一个事实:前端的确有价值,但放在全局来看,前端产生的价值并非核心价值。在阿里,虽然前端的工作已经不可或缺,但对大公司而言,不可或缺的岗位多了去呢,不可或缺不代表有核心价值,我就不说了。
前端的未来发展
前端,往后是技术,往前是体验。我的理解,前端的未来发展,有两个方向:
前后端体系的融合,技术平台化。范例是 Google、Facebook 等公司的技术体系,不细分前后端,都是 Web Developer,在整套技术平台上,Developer 都可以从后到前高效开发。技术平台本身由 Engineer 维护,有各个领域的高手,包括前端的。
前端技术带来的体验革新,成为某些产品的核心竞争力。典型的比如 Path,国外有很多创新型项目,体验是核心竞争力之一。在这类产品中, 前端带来的用户体验很关键。
然而,上面两个方向,在阿里的现状下,困难重重:
技术平台化之路很难。阿里现有的技术体系,前端只是薄薄的一层,要靠这薄薄的一层,来渗透甚至改革现有前后端开发模式,非常困难。支付宝算是走在前面,已经摸索了一年多,但越来越觉得,前端的绝大部分问题,其实都需要后端才能解决。去跨团队推动也可以,因为难,所以前行也挺有挑战挺有意义。可是,更悲催的事实是,技术平台化,前后端开发模式的融合,目前来看,并不是阿里的痛点,还没有到这一步,没这个强烈需求。需求不强烈,意味着缺了“天时”。很希望我的想法是错的。前后端的技术平台化之路,还有一个很现实的问题是,马云留下的隐患:平凡的人去做非凡的事。虽然现在有意不提这句话了。这句话很伤人,特别是技术人员,然而事实就是事实。即便技术平台能建成,在平台之上,阿里现有的开发人员,无论是前端还是后端,很多人可能还欠缺了不少能力。Facebook、Google 等玩起来,有个重要因素是精英文化。这话题不多说。现实的残酷,虽然也有方法是改变。
体验创新之路也非常难。在淘系可能相对好点,在支付宝,前几年首要的问题是安全、稳定,接下来几年之内,依旧是安全、稳定。创新受产品形态的影响非常大,没有一个好的产品,妄谈创新。可以有不少微创新,可以有很多小而美,但目前都触不到痛点,隔靴搔痒。真正承担阿里用户体验的,是 CDN 团队、是数据库团队、是 PD、是运营、是大安全…… 继续希望我是错的。
以上两个方向,虽然困难重重,但在一些新领域,却充满机会与希望:
无线领域。 未来是属于无线的,这话说到心坎上。目前阿里的无线才起步,起步意味着百废待兴。无论是前后端的技术体系,还是产品的体验创新,在无线领域,前端的机遇与挑战都很多。并且其价值,有可能变成核心价值。这一点,希望我的判断是对的。
Node.js 领域。严格来说是 JavaScript 程序员的新舞台。通过 Node,前端程序员可以摇身一变,变成传统程序员。数据库、网络、业务架构等等技术核心领域,都可以通过 JavaScript 来达成。Node 社区是迷人的。同样,希望我的判断是对的。
上面的分类有点混乱,下面继续乱谈:
创业。 在很多产品中,前端虽然很难产生核心价值,但在有竞争的地方,附属价值经常会成为核心竞争力。比如出去创业,如何在大量同类产品中脱颖而出,前端界面层的实现非常关键。可是,无论是淘宝,还是支付宝等,目前都已经过了初期创业期。有时真希望,易趣如果还强大着该有多好。
转行。 的确,没必要因为懂 JavaScript,就一辈子做前端。没必要限定自己的发展,可以做 2-3 年前端,然后再去做 2-3 年开发,还年轻的话,可以继续尝试各种岗位,说不定,10年后,就变 CTO 了。
从人的一生来看,前端只是一段很小的旅途。它能带给你我们的已经不少,舍弃惯性,脱离舒适区,长远来看才能走得更远。放弃有时也是坚持,重要的是你心中的梦是什么。
感悟与坚持
纯技术上,前端目前的很多发展,只是在满足业务,并没有真正对业务带来“从无到有、促进变革”的变化。从公司的角度讲,并不需要那么多前端牛人。这是我那条说 HTML 高手是屠龙术的微博的含义。
另一个角度上,前端技术这些年的变化,无论是 YUI 的发展、还是最近两三年兴起来的模块化开发理念、以及 Node.js 带来的前端工具变革、还有 Backbone 等类库背后的 MVX 的发展,这些都切实推动着前端往前发展,虽然很慢很慢,虽然短时间内很难直接影响业务价值,但我相信,这类工作的价值,也很大。
一类是直接促进业务发展,一类是缓慢带动人员的成长。这两类工作,都非常有价值。一个着力于现在,一个发力于未来。
看起来,路都很清楚。然而我们都是人不是神。最后以一段人与人之间的对话来结束这篇充满负能量的文章:
章小新:有一个现实是,如果在这块上长时间的价值不被认可,那很有可能真正产出的价值没有我们想想象的大,是否是我们自己深限其中? 有时虽然不想往这方面想,但又是不得不仔细深思的问题。
玉伯:毕竟我们都是人,要坦诚面对自己的真心,包括贪欲。比如一个事,如果做了 5 年,依旧得不到直接认可,也没更多物质上奖励,我估计你也很难做下去了,或者就是打着酱油,干着其他有意思的事情去了。
章小新:哈,今天的话题的确是沉了点,今天上午还和同事们讨论过~~~ 先认清自己,再从容微笑去面对。
玉伯:从容微笑谈何容易。从容微笑的一个前提是,认清了自己,找到了今后要走的方向,知道接下来该怎么走下去。
李牧:这么说好像我有多么淡定一样。。其实没有了。会很计较,但是现实面前了。
玉伯:从容不是有希望,也不是在路上,而是自己喜欢自己做的事情。又变鸡汤了,不过发现很多鸡汤越来越有道理,得真心去信。真正的认可是自己给自己的。
柏林:我不是做前端的,一直在关注大家。 呵呵。看到这句话蛮有感触,要体验过鸡汤的过程,才能品味到真实的味道。(说得不好哈)
(完)文 / 玉伯
PS:把这篇文章发出来,很犹豫�。把这些想清楚的事情说出来,虽然可能会影响团队士气,会打击工作不久的前端,但隐瞒更不可取。 前端还很年轻,如何发展,如何前行,需要所有前端们一起来思考。我们需要未来,也需要真实。我们不需要的是混日子。我们往哪里去,取决于我们自己。
题图:路在心里,更在脚下。