title

摄影圈子里的「器材党」通常泛指热衷于讨论器材的爱好者群体。无独有偶,技术社区里也有一类以掌握某个开发框架为骄傲的程序员。你还别说,这两个群体还真的挺像的……

一名摄影器材党有哪些关键特点呢?我能想到最关键的三点:

  • 津津乐道于器材差异
  • 对器材宗教般的热情
  • 涉猎器材求广不求精

嗯,这和「框架程序员」有什么接近之处呢?让我们从第一点开始吧:

津津乐道于器材差异

器材党们大多有着自己最宠爱的器材品牌,并且非常熟悉不同家器材之间的微妙差异:

不是我跟你吹,佳能的肤色多好看,尼康的锐度多高,宾得的绿色多油润,蔡司的蓝色多德味……

正如框架程序员们对框架之间的差异熟捻于心:

不是我跟你吹,React 的函数式多纯粹,Vue 的全家桶多方便,Angular 的设计多严谨,Backbone 的代码多简洁……

其实同个时代同个定位的摄影器材之间,往往只有非常细微的差异,并不会决定性地影响出片的效果。但这完全架不住器材党们精益求精的匠心:

看了最新 DxOMark 评分没有?佳能的锐度就是不行啊,被尼康吊打妥妥的。

这方面框架程序员们就更激进了:

看了最新 Benchmark 没有?React 的速度就是不行啊,被 Vue 吊打妥妥的。

没有对比就没有伤害。可是就像佳能和尼康的粉丝势均力敌一样,React 和 Vue 的粉丝也是各有一方天地。双方争起来的的话怎么办呢?且看二者的第二个共同之处吧~

对器材宗教般的热情

从尼康党对佳能党,到 Vim 党和 Emacs 党,再到 Vue 党对 React 党,党争可以说是无处不在了。对器材党来说,争论两家器材的优劣就是司空见惯的:

我大佳能镜头群才是强无敌,你们索尼微单就那几个镜头一只手都数的过来价钱还贼高,还不灭门留着过年吗?

这在前端圈子里似曾相识啊:

我大 React 生态才是强无敌,你们 Vue 就那几个组件库一只手都数的过来 star 还贼少,还不重构留着过年吗?

这种热情一般而言会具备这样的倾向:

  • 通过贬低对方来显得自己的选择更优秀
  • 不允许保留态度或者对立的观点存在
  • 容易演进为大规模的论战撕逼

器材党和框架程序员都具备这种倾向。比如在器材党活跃的摄影社区里,各种评测帖里就时常能看到这样的斗争。而国内的前端社区几次大规模争论的事件更是足够我等吃瓜群众看戏了。

个人的理解里,基于每个人的个性,一个人对某个工具的偏爱是非常合理的,而爱好者之间的讨论本来对参与者来说也应该是多赢的。那么为什么会这样呢?这也许和下面提到的最后一点有些关系:

涉猎器材求广不求精

要说器材党们是因为只用过一家的器材所以才只拥护这一家器材品牌,那多半是不准确的。很多器材党其实是非常有钱任性的,他们体验过种类非常广泛的器材。但为什么器材党们阅历的增加并不能降低他们在社区咄咄逼人的程度呢?我能想到一个可能的理由:对器材的了解,其广度和深度是两回事。

很多摄影社区的新器材评测里,不可或缺的一个要素就是样张。新玩家开箱之后,会拿着船新的器材去拍一些这样的样张:

  • 器材的盒子
  • 楼下的风景
  • 同事的大脸

然后下面就会有一群人开始讨论这些(没有多少摄影学术价值)照片的锐度、色彩等指标,社区的氛围也一下子就活跃了起来。这能让我想到前端领域里非常经典的一个东西,那就是 TodoMVC

就好像所有的器材都可以被拿来拍妹子糖水片一样,所有的前端框架也基本都被拿来写过 TodoMVC 了。对框架爱好者来说,挑选不同的框架来写出这样一个增查改删 Todo 的应用,乐趣应该可以和女人逛街时挑衣服相提并论了吧。

但问题可能也就出在这里:用再牛逼的框架去重复实现这样一个简单量级的应用,不仅缺乏评判框架的参考意义,对于走出自身的舒适区也不是特别有利。这就和器材党随手按下快门就能轻松获得的「样张」一样,虽然能让你感觉到新器材的新颖之处,但其实还是在复用之前的经验,新鲜感背后带来的未必是洞察力的提升。这样看来,我们似乎就能理解摄影社区「老法师」们浸淫多年后还在为佳能色彩和尼康锐度争执不下的原因了。

碎碎念

上面的讨论里,我们基本已经对比出了「器材摄影师」和「框架程序员」之间的共同点了。那么如何评价这样的标签呢?下面是作者一家之言的碎碎念了 XD

工具的意义

摄影圈子和程序员圈子一样,已经规模庞大而有了相当多的岗位细分:我们能够听到一位摄影师是风光摄影师、人文摄影师、体育摄影师等等,但很少会听到一位摄影师是佳能摄影师、尼康摄影师、索尼摄影师吧……同样地,我们经常能听到程序员有前端程序员、后端程序员、AI 程序员之分,但很少听到一个人是 Vue 程序员、React 程序员、Angular 程序员吧?这能够反映出的一点是,一个人在组织中的角色是按照他所能解决的问题来划分的,而不是解决问题所用的工具。器材党和框架程序员们所关心的实际上都停留在工具层面,这是很大的一点区别。

撇开对工具的偏好,目前作者个人的体会是:合格的程序员应该是能够为了解决问题而灵活地选择工具的。譬如在摄影的语境里,如果想要和妹子出去浪,你可以带上大光圈的微单;如果想要拍风景,你可以带上无人机;如果想要招待友人,那可以选择拍立得……而在作为开发者的语境里,我个人最近的工作从维护 React 上的富文本框架转战到了 Vue 上的另一个编辑器,这个过程虽然没有我想象的那么容易,但也没有那么痛苦:二者都能够写出高质量高复用性的模块,设计上也有许多相通之处。在挖掘过它们的一些实现细节后,我个人对它们的评价的偏激程度也确实降低了。

类比的差异

不过,从摄影社区到技术社区的类比也是不准确的,这里至少有两点值得一提的差异:

  • 摄影爱好者的范围远远多于摄影从业者,但编程爱好者的范围却很可能比编程从业者要小不少,毕竟许多人是将编码作为职业而非爱好的。
  • 摄影领域里,要想从头发明一台相机是很难的。但从头打造一个框架的造轮子行为,对靠谱的程序员来说并不是一件难事,甚至是很多同学进步的必经之路。

这两个差异能够折射出这样的区别:

  • 在从业者多于爱好者的编程社区,戾气和浮躁的气息可能更重。
  • 和摄影师的艺术天赋难以后天培养不同,造轮子是可以客观提升程序员水平的行为。

后一条结论听起来似乎有些励志呢~那么什么才叫程序员范畴内的「提升水平」,或者说能够赢得尊重的程序员又是什么样的呢?有趣的是在这个话题上,我们也能在摄影领域里找到类似的类比。

一幅脍炙人口的摄影作品未必是具备完美技术参数的,但它们一定有其特别之处:构图的手法、拍摄的对象、背后的故事等等。类似地,程序员们也是靠作品说话的:从应用到类库到框架,有太多的作品正在被编写出来,但其中真正能流行的寥寥无几。对于有技术追求的同学,相信对高质量作品的追求是可以让你一步步脱颖而出的~

总结与展望

那么,编写出高质量的代码就是程序员唯一的追求了吗?这倒也不一定。在我换了几个团队以后,所发现的一个有意思的规律是:越 hold 得住我的技术 leader,通常也越有趣。「有趣」不止是一个形容幽默感的词语,它可以泛指技术上信手拈来的轻松态度和私下交流时的人格魅力。也许不管在哪个行业,精彩的人都是有故事的人吧。和有故事的摄影师聊天的时候,你会只限于讨论器材光圈感光度等技术参数吗?那多半是和器材贩子讨价还价时的话题。同样地,和身边的技术大牛交流的时候,话题也不会限制在 API 如何调用的层面,而是会有更丰富的发散和展开。可以说这种有趣的感觉也是给我干劲的一大动力吧 :-)

在这个技术迭代越来越快的年代,就像手机摄影已经能够一步步取代相机一样,越来越完善的框架也会逐步降低编程入门的门槛,方便具备潜在天赋者的入场与创作,从而一步步地升级行业。老东家里的一句名言很适合这个场景:太多人为了逃避思考,愿意做任何事情。为了不加思考地获取「进步」,我们很容易掏钱买下昂贵的器材和现成的滤镜,或者追逐新潮的框架和时尚的代码,而忽略了自己的判断和思考。

最后,这篇文章的观点同样可能是不客观的,希望读者能有自己的判断 :-)