凌晨开始写, 我都有点梦游了, 有不对的地方请谅解.
过去一年互联网上看到过好多关于中国制造的赞誉的声音,
比如手机行业的崛起, 比如陆续披露的各种超级工程, 以及在国外的成就,
中国中低端制造业简直称霸全球了, 相比前一年的新闻非常乐观,
而美国和一些西方国家仍然占据高端部分, 比如手机芯片, 知识产权等等.
我就在想, 软件行业呢, 软件的制造和服务, 我们做到廉价和高效了吗?
早先国产的产品常常有山寨的名字, 比如说手机, 模仿苹果,
今年看来, 好多手机厂商开始跑在前头, 渐渐有一些惊喜出来.
在软件行业, 山寨国外网站商业模式甚至界面的事情也不少了,
但是到今年, 渐渐有一些 Facebook 模仿微信的声音,
我想制造业和软件行业应该会有相当多的共性, 于是就有前面这个问题,
当国产手机开始进攻国外市场, 制造做到了, 软件行业有这个能耐了么?
我做前端, 实际上我大部分时间在刷国外的社区的新闻, 而较少国内,
其实很容易对两者的差距有切身的体会, 新闻几乎都是国外的!
偶尔会有淘宝发布了什么, 或者腾讯, 但是平时都是国外的大厂,
我们的社区里在讨论哪个框架好, 而国外总是在生产着各种框架类库,
国内逐渐有成群体的程序员出现在知乎, 微博, 在各种论坛, 越来越大的人群,
但是很少看到前端程序员从编译原理层级讨论, 虽然英文社区也不是非常多,
我想说从中能看到两个群体的程序员之间不小的差距.
随着近些年社交媒体的发展, 网络社区发达, 逐渐增多的线下活动,
可以看到技术前沿的信息传播的延时在减小, 比如 Swift 文档神奇的翻译速度,
而且很多人乐忠于转载甚至翻译英文社区的技术资源到中文,
这些都在表明我们正在快速地追赶, 只是不知道多久才能追上,
同时技术在换代, 比如 WebAssembly 正在制定规范, 参与的好像都是外国人,
我们在追, 他们在跑, 究竟又是谁更快呢, 我也看不清说不清.
此外除了编程语言我们还有框架, 还有平台, 都需要追赶.
近些年我的思维改变也不小, 热衷于学习那些经济方面的网红,
比如某个用货币战争为线索梳理各种历史和国家战略的人,
或者某个每周三晚上评论一遍经济话题的人, 以及他的宠物,
或者某个做投资的每天更新一个对科技前沿的解读的人,
他们看待 IT 行业和经济时事的视角和方式让我极为钦佩,
带上这样的视角, 再回来看软件行业各个大厂的竞争, 简直暗流涌动.
我的知识量很难说可以把事情看清, 但看上去比一两年前条理多了.
制造业本身似乎跟人口红利有关, 庞大的人口和城市化带来的工人的规模,
也许还加上国人的吃苦耐劳, 解释了中低端制造业的产品的优势,
然而软件行业并不大一样, 有个段子说宁愿价钱招高手也不要分成招十个人,
更不用说 AI 了, AI 将会解放大量的人力. 机器和科技会弥补人口的差距,
而计算机领域的教育呢, 至少从圈子里的声音很难感觉什么时候能追上英文社区,
我在前端圈接触到好多人都是自学, 还有很多创业的人是辍学, 而不是本专业,
与之对比, 国外偶尔看到人说十岁开始学编程, 还有说编程三十年, 怎么比?
也许真的到我们这边从小写代码的人长大, 这个差距才能追上.
作为外行来看待制造业, 竞争力要看成本, 售价, 生产速度, 质量和售后,
去掉售价这个全球共通的因素, 就是成本, 速度, 质量了,
当然这些因素类比到软件行业, 总会涉及到各种复杂概念, 我不指望能弄清楚,
大概说这些吧, 底层工具的可靠性, 业务代码的可靠性, 时间人力成本, 设计,
说起来就是公司技术的积累和人才的素质, 这两个都有被拉开差距的吧.
公司层面比如华为再到现在靠的是这么多年巨大的科研投入,
新兴的厂商比如小米, 在短暂的时间内能做到什么程度, 我们还不知道,
但这不管怎样下定决心以后几年甚至十年的时间还是会要的吧?
假如说国内人品暴走做出了一个强大的 VR 操作系统, 怎么说,
VR 会有大量的计算速度的需求, 有大量防眩晕的需求, 还有重新定义人机交互,
中间都会有大量的工作, 要形成竞争力要多少技术积累, 一两年能做到吗?
然后是人的因素, 要解决比如 VR 这么多问题, 就对应到那么多的简历,
需要大量的交互经验, 高性能的图形开发, 3D 体感和空间计算, 还有更多,
已有的程序员通过什么途径获取知识? 博客, 聚会, 别人的代码, 工作经历,
是的我们学东西是非常快, 但是如果没有先例可以去学呢? 没有框架没有代码?
比如编程, 如果没有前人做过, 就需要去读 paper 写算法自己去做,
极端的还有自己去研究. 我们现在有这样的实力么? 精通操作系统和编译原理?
至少从前端开发的行业看来, 我感到非常地被动, 主流框架几乎都是国外的,
也许现在好多了, 我刚入行时候说国外某某公司怎么, 被人吐槽崇洋媚外过,
现在大家很清楚, Google 主导着浏览器, Facebook 主导着一个框架,
这个有着众多中文开发者的号称开放标准的平台, 谁最有话语权?
当然是开发浏览器的人, 制定 ECMAScript 规范的人, 那主要都是谁呢?
我们在说移动通信标准, 华为抢下 5G 的某个什么的时候. 编程领域我们有什么?
当然短期来说以我们的差距, 我们甚至是后发优势, 但是微软跟网景竞争总听过了吧,
假如我们追上, 到了那个量级, 别人手里捏着标准, 然后发生竞争, 会怎样?
我也考虑另外的可能性, 比如小种语言小众社区, 如果我们早点切入,
然后跟着社区成长, 我们有一席之地, 等到社区壮大, 就有我们说话的地方,
比如 Elixir, 这门语言新兴, 没几年, Conf 都只开了两届,
以我国的人口, 如果有那个几十个人活跃在当中, 对社区来说相当多了,
但是回到现实, 如果要深入 Elixir, 得有深入的 Erlang 的经验, 多少人有,
其他新兴的小众社区, Clojure, 甚至 Haskell, 门槛更高,
倒是 Go 社区这些年风风火火看到有不少的人, beego 也是风光了.
回到前端来, 这些年重大的创新, 有我们参与么, 算我们骄傲么?
我们需要有足够的高素质的程序员才能在这方面取得优势和好处,
呃.. 也许有点像我没睡醒在说梦话, 大家写代码主要是为的谋生才对,
我想说换个角度, 比如你公司上级创业, 缺人, 还有技术搞不定,
然后你上, 结果坑多得要死你完全忙不过来, 然后想挖人, 一看国内没人可挖, 坑吧.
或者你用了国外的代码有功能缺失, 费尽力气找到解决方案, 希望官方解决,
结果官方没时间 review 代码, 你只能一直用有问题的版本,
如果自己 fork, 还有面临新的代码跟官方的代码冲突的问题, 只能自己解决.
我只是想说这个事情真的是重要的, 否则会消耗很多时间金钱.
目前看来很难单纯依靠学校教育把整体的素质提高上去了,
前端以写教材都跟不上的速度在往前发展, 还不止往一个方向,
我们更不可能先不工作几年, 好好学习这些东西, 房价新闻也很多啊,
只剩下说建立社群, 尽量把学习技术的成本压缩下来, 让大家更快能赶上,
比如说, 尽快用检验完成的新技术替换掉旧技术, 效率落后的技术还学个什么劲,
还有通过社区的信息量夯实基础, 常见问题看别人接连犯错, 旁边干看也能看明白了,
以及扩大人群, 让真正聪明的人能进入到编程的领域, 带来技术的突破,
我们甚至需要学习的梯度, 因为高手写东西新手看不懂, 比如 Haskell 社区的情况.
就是说有个成熟的社区, 按说是可以很大程度降低学习成本的.
具体关于社区, 我从前也讨论了, 新闻, 文档, 通讯工具, 博客讨论等等,
我们需要论坛, 微博, 个人博客, 问答网站, IM, Wiki, 各种形式和各种人,
甚至还要有线下聚会, 要有擅长 PPT 和演讲的人, 还要交际花,
首先我们要掌握消化国外技术的能力, 然后想办法积累自己的技术,
到后面我们才能形成足够的竞争力. 至于跟 Google 同台竞技? 好吧我是不敢想.
以此为假想吧, 我们走到哪一步了? 我们遇到哪些瓶颈了? 接下来做什么?
我们有 V2ex 有知乎某些意见领袖了, 有 Go, Ruby, Node, React 各种中文论坛,
也有了 Segmentfault 这样综合性的纯技术网站, 以及一些年代早一些的社区.
接下来我们需要的是什么? 什么样的方案是有效的?
其中一些也是我这些年思考 React 社区的事情的逻辑, 首先我微博刷了大量新闻,
然后一起弄了 React 论坛, 在微博创建了抓新闻的机器人, 接着还有微信群,
同时更多我以外的人还弄了 QQ 群, 各种线下分享, 各种博客等等,
对我来说参与进中文社区的创建, 帮我认识了很多厉害的人, 还有他们做的事情,
我也看到微信群他们会聊复杂到我对付不了的各种技术细节, 真庆幸他们都是自己人,
同时, 我也明白这不够, 文档整理, 聊天室, 技术探索, 新人引导, 各种不足,
而很多超出我的能力了, 或者我其实也没那个决心或者那种资源.
到我个人吧, React 那么多问题, 明天 Facebook 会不会把 js 撤了放新语言上来?
会不会很快 React 被淘汰了, 这是更加困扰我的问题, 到时候我怎么办,
要注意, 我是自学的程序员, 如果技术换了, 那些年轻人肯定是学得比我快的,
Chrome 每个月都会更新, API 一直在调整, 连 js 都一年好几个版本,
所以我对 js 并不珍重, 我需要更可靠的技术栈. 熟悉我的人知道我在赌 Clojure.
年初休息的几个月我花大量时间写 cljs, 年底在 D2 做了一些分享, 我安稳了很多,
如果明年 Facebook 强推 Reason, 很多人也许头疼, 但我至少已经做了很多准备.
新技术其实还关系到一个成本的问题, 比如当年福特 T 型车压成本的事情,
当然现在还有今年国产千元机的事迹. 某种程度上软件行业更多压缩成本的例子,
从前写软件要大量的人一起协作, 现在一个人就能做出小的 app,
创业公司变得一个后端几个前端加移动端, 然后就能做产品了,
但是, 即便压缩成本, 科技本身的含量却是急剧上升, 实际上整个技术栈成本不是在降低,
甚至是在升高, 只是说, 在当前的环境中获取上游产品的成本降低了,
强行举例, 比如从前只有一家公司卖芯片, 很贵, 但现在大家都做, 就便宜了.
以此可以解释 FP 语言比如 Clojure 为什么我说成本低, 实际上却门槛更高.
随着更多人用 cljs 的理念编写界面, 我认为将会遭遇更少的问题, 也就是成本低,
但是学习 Clojure, 特别是没有足够中文资料和中文社区的情况下, 成本很大,
这么多年耳濡目染, js 已经信手拈来了, Grunt Gulp Webpack 花那么多力气学会了,
到 Clojure 语言变了, 编译工具变了, 社区认不出来, 都是英文, 合算么?
这笔账不好算. 但是站在我的角度, 我会 Clojure, 我看到 js 那么多坑, 我是忧心忡忡的.
比如 JSX, 当年 coffee 中完全不是问题, 而 ES6 大家还在吐槽 JSX 有问题. 让我怎么说好.
而且明年的 WebAssembly, 我看过别人社区的人吐槽 js 的各种言论,
我有理由担心几个大厂联合发动了产业升级, 要强行替代掉旧的技术,
js 成为热门技术最近十年的事情, 很多前端比如我, 入行也就四五年,
但是站在 Java 或者 Objective-C 的角度, js 就是搅局啊, 抢走了一大块蛋糕,
现在有别的技术来抢 js 的市场, 背后三个大厂撑腰, 会不会就搞成了? 很有可能啊.
当然 wasm 是底层技术, 有专门写编译器的职业分工, 一般人不用担心,
但是长远看呢, 你的 app 每天有千万用户, 竞争对手打开网页飞快, 你能安心继续 js 么?
过去一年还发生了很多事情, 大概是叫 O2O 吧, 我学会了订外卖, 手机打车,
我还体验了一次飞猪直接订宾馆, 还有扫描骑自行车, 手机买地铁票,
当然也怪我自己没能力, 但是如果去一个新的城市游玩, 这些都很成问题,
地图的问题早些年已经解决了, 各种生活化的服务, 还有信用方面, 仍然在完善中,
不管怎样我这种小城镇进城的死宅也能刷高铁出去玩, 至少没以前那么困扰了.
随着互联网行业的发力, 情况会越来越好, 就像我在新城商业视频里看到的那样,
不久以后我能从 app 上直接租赁别人空间的空间用来办公或者其他事情,
也许几年后真的另一个地区就像去上海另一个区那么方便也说不定.
还有按照某人的预言, 明年无线充电技术成熟会逐渐进入市场, 有的玩了,
我也记不大清楚哪些厂商承诺了要在 2017 年发布什么技术的,
最关心的是 Weex 和 WebAssembly, 一个关系到我工作, 一个关系到会不会丢工作,
Clojure 已经处于稳定状态, cljs 应该很快会有对 ES6 模块的支持, 算是重大利好,
Webpack 2 经历了一个季度的跳票, 终于迎来了 RC 版本, Larkin 晒娃也是看够了,
React Fiber 快成了, 不关心, 反而 Jordan 前天发 ReasonML 的 demo 暗藏杀机.
如果 ReasonML 真能成气候, FP 也许又会刷一波新闻, 我反正已经笨鸟先飞了.
后端语言 Go 和 Elixir 要盯两眼, Clojure 已经山寨了 Go, 不知道不会继续下手,
Vue 2 已经算是搞好了吧, 我后面就围观 Weex 方向怎么发力了, 小程序还没看.
对了 CoffeeScript 2.x 正在 alpha, 官网都好了, 就差 class 部分, 快了.
当然忧心的事情也很多, 说了几年的要学后端要学设计, 到现在没有可靠的路径,
由于我在 Clojure 和前端要花很多精力, 其实很难踏踏实实一点一点学,
某种程度上我担心以后我更难学东西了, 而且年龄增加本身就会削弱学习能力.
同时苍白的恋爱经历让我对自己的宅属性也感受到了越来越大的压力,
我不知道整天上网的人群之外的人都在想些什么, 玩些什么, 加上我本来就是独处的性格,
我也不熟悉杭州上海苏州之外其他地方, 但是我工作好几年了, 还能逃避多久?
我也没参加过一次 Clojure Conf, 社区的大神网上都不爱搭理我, 感觉很孤立.
仔细去想, 头疼的事情不少, 我也是躲着. 俗话说报喜不报忧吧, 点到为止.
2016 年对我来说是个转折, 前面三年写的单页面应用, 投入了大量的精力,
年初硬生生把自己变成了 Clojure 程序员, 工作方面也脱离了 React,
曾经的 React 中文站长, 在 Vue 程序员组里给移动 app 写 Weex, 的周边...
去年春节我曾询问 cljs 的工作, 但是新年将至我更加确信 Clojure 在国内的小众,
外人看我恐怕更像是为的代码洁癖才变身 Clojure 程序员, 属于过分激进,
而且对于 Clojure 实用性的判断, 推广的进度, 有很严重的时间上的误判,
结果反而导致 React 中文社区出现了投入不足, 正好是 Vue 风头正盛的时候.
好吧, 虽然我坚持不可变数据优于 Observable, 但 Vue 的成就和前景不容置疑.
也正好是晓松奇谈播放最后一集的时候, 就像其中女粉丝正忙着伤感那样
她说自己都已经成年了, 听了高晓松的节目, 价值观仍然在改变.
某种程度上我也是, 从宋鸿兵, 从高晓松, 从王煜全, 从吴晓波等等, 我学到好多东西,
那些东西我家长没能力教我, 我老师不曾教我, 我同学同事也不能教我,
甚至从书里我也学不到, 而这些深深改变着我的世界观, 改变着我对自己的期望,
他们教了我很多历史和当下, 让我在思考时有了更多的知识储备和视角,
就像高晓松说的, 如果都不知道世界是什么样, 历史是什么样, 还怎么形成独立思考?
而他们带给我的, 丝毫不逊于编程领域我投入那么多时间所学习到的,
世界依旧很大, 我们依然渺小.