几个月没有更新了,有些人来问我为什么,我也没有回他们。显然我不会因为有人来问就写东西,我写东西完全是因为我自己想写,它不受任何人的影响,不管是好心人还是别有用心的。不过现在回答一下,我没写文章是因为我在忙着写很好玩,很有价值的代码。
我知道这个博客的影响力很大,但我对此所产生的“名气”一点都不在乎。以前公司的同事有时见到我,说:“我听说你在网上很有名啊!介绍几个粉丝来我们公司,我们就走向成功啦!” 我听了苦笑一声。因为对于我来说,“网上有名”其实是一种贬低。想利用我的名气,说明他们不理解我最重要的价值。可能是好心的恭维,然而这种不理解真正价值的恭维,听着很不是滋味。我给公司提供的实实在在的价值,有目共睹,有些人却只能看到名气,这也许说明他们的内心也只有名和利这些东西吧。我王垠没有粉丝,也不需要粉丝。
虽然我不在乎甚至讨厌“名气”,但我确实在乎“影响力”。我在乎它,是因为很多人能够看到我的文字和想法,这些会对这些人以至于整个社会产生深远的影响。至于这些改变是不是归功到我身上,我根本不在乎。我在乎的是,我的想法真正的改变了很多人的思维,改善了社会风气,最后使我自己也获益。所以也许我最初就不该用自己的真名,而应该使用一个笔名,这样也不至于给我的事业带来影响。但既然这已经发生了,我也只有认命了。我死都不怕,还怕招揽几个恶名吗。实际上名声很难掩盖我真实的能力,就像黄药师的名声,也很难给他造成实际的影响。当然,我的能力是盖世无双的,我可以心平气和的说出这句话,不带半点虚荣。这不需要任何人的认可,因为世界上已经没有任何人有资格来认可我。
这种奇妙的能力,不但最初在 Google 得到了体现,在 Coverity,Sourcegraph,Shape Security,一次次的巧妙发挥,最近又再一次的在微软得到了发扬光大。我不得不说,微软是少有的踏踏实实,用心做技术的公司,很少有瞎指挥的情况。也只有这样的公司,才可能从最底层开始做独立的技术。在微软,我的团队的产品是一种企业级存储设备,名叫 StorSimple。这东西看似跟我的特长程序语言(PL)关系不大,然而我从来就没有局限于 PL,我的洞察力深入到了计算机科学的各个领域。这是一种艺术,是不局限于领域的才能。任何我接触到的东西,都被揭示出其本质,揭开肤浅复杂的表面现象,被改造得更加简单,更加可靠和精密。
在微软,我从头构造的基于 B+ 树的核心数据结构,被巧妙地集成到一个复杂的含有大量并发同步问题的系统里面,正在经受企业级数据的千锤百炼,从来没出过差错。存储设备是一个几乎完全不可以出 bug 的领域,因为一旦用户的数据因此丢失或者发生错误,后果将是灾难性的,不可逆转的,不是重启一下机器就可以了结的。用户会离你而去,再也不会回头,这跟飞机因质量问题而坠毁的后果差不多。
不客气的说,我做的这玩意还真是这产品的核心部件,你可以把它想成是一个“云”里的文件系统(file system)。这是之前走掉的一个 architect 留下来的精(Lan)品(Tanzi),复杂不堪,还可以用,但它简陋的数据结构无法支持大规模的数据量。把它精确地换成像 B+ 树这么复杂的数据结构,就像做个心脏置换手术,不能出一点差错,不能影响其它组件的运行。这是微软这方向上经验丰富的 principal engineer 们联手也难办到的事情。因为这个原因,再加上它至关重要的核心地位,所以 architect 走后一直没人敢碰这块代码。哎,为什么每次我都接手这样的事情……
光是写一个没有 bug 的 B+ 树,其实都够让绝大部分的程序员汗颜,更不要说把它集成到 StorSimple 的“异构云”(hybrid cloud)构架里面去。有个写过 B+ 树的 principal engineer 喜欢跟我咋呼要“先写测试”,可我就是直接两天把代码给写出来了,然后再写了一个测试,就已经到了无懈可击的地步。代码优雅而通用化,不带有任何业务逻辑,可以原封不动用到其他地方,比如数据库索引。像 B+ 树这么复杂的数据结构,你还真是很难把它写得简单正确还通用,但我洞察到了精髓,所以稍加思索就办到了。这是我平生第一次写 B+ 树。
微软有一些厉害的 principal engineer,他们的 B+ 树代码我看过了。实话说吧,虽然可以用,但非常繁复没法看,很难确信它是正确的。每次用到新的地方,你都得改动挺多代码才行,不能作为“库代码”来调用。而且你一改可能就给改错了,难怪跟我说需要很多很多的测试,还说要先写测试再写代码什么的…… 当然我说这些完全没有贬低微软工程师的能力,有个会写 B+ 树的 principal engineer 跟我关系相当好,初期还给了我挺好的参考资料,所以我无意贬低他。不过呢,写代码不能超越王垠,是再正常不过的事了,不是吗?所以当然不是耻辱 :P 相比其它肤浅的公司(Google,Facebook……),微软的好些人显然是有两刷子的,兢兢业业踏踏实实的在做自己的工作,而且在必要的时候给了我一些启发,人也相当好。可是在代码的优雅,简单和可靠性上,世界上还真没有人可以跟王垠抗衡。
微软工程师确实有很多好人,不过呢公司的官僚系统跟人其实是两码事。我也看到了,我创造的价值已经大大的高于我的薪酬。微软这公司给我的级别(别去查了,是 SDEV2)和薪资,完全就是一个笑话。最初就是忽悠的,我在之前公司就已经是 senior,早就已经对这 title 很不满意了,还给我降一级,说你知道微软要升到 senior 级别需要多少经验吗,你要有微软的经验才行,不是其它地方的经验!说先给你个低点的 title(当然工资比以前高),进来半年以内升职,到现在 9 个月了没有一点动静,却跟你说什么:“Review 的时间还没到,要等到 9 月去了。” 去年 7 月中进来的,年底 bonus 都没有,说:“公司规定不满半年的没有 bonus,自己看看手册吧。” 我管你公司规定如何,我差几天就工作了半年,提供了这么多价值,一点 bonus 都没有,还得等一年?你玩我吧!
所有这些什么“公司规定”,其实都是借口,是“catch”,它们就像有些信用卡条款下面的小字,你不仔细看就以为小便宜就在眼前,结果根本不是的。那些小字写的是,你必须满足这样那样的条件才可以!所有这些诱惑的作用,就是把你变成一头拉磨的驴子。在你的头顶上架个杆子,上面挂着食物。你想吃到这眼前的食物,可是你每走一步这食物就随着你往前挪一步,所以你就总也吃不到,只是不停地给别人拉磨。总有人传言说,微软升职好快哦,看那谁进来那么低职位,很快就变成 principal 了。轮到你的时候,就发现完全不是那回事。等你去查,发现那个人升职根本就没那么快,好几年了才升了一级。于是你醒悟了,原来这些都是广告吧?
而且还有人时不时的提醒你一下,好像在说,你不应该得到我应有的回报。比如:“看人家这个(拿L1签证工作的廉价劳动力)印度小妹,也做出了很了不起的成绩,人家才这个级别……” 很是拿 title 当回事,张口闭口“看看人家某 principal……”,“你要是 principal 才可以 remote……” 还喜欢引用某 principal 的话,奉为真理一样。吃饭的时候,跟我关系不错的 remote principal 本来过来跟我坐在一起,然后就被坐在另一桌的大老板叫过去了,说:“过来过来,别跟他们浪费时间。” 这 principal 只好跟我道歉之后走掉了。于是几个 principal 单独一桌,跟大老板一起吃,我和其他人另外一桌。这大老板呢,自以为级别高点(partner),从来不正眼看人,也从来不直接跟我谈话。好像很是高高在上,从几个台阶上面看我的样子。
虽然口头上的政策是所有级别一视同仁,然而久而久之你就发现一些微妙的区别。有些话,管理层是不敢对 principal 级别的人说的,然而他们却可以对较低级别的人说,而这些话又正好表现出微妙的不尊重。本来自己做不出来的东西,却偏要显得自己能做,以保持自己的权威,显得在指导你似的。有次居然当众对我说,你遇到了困难要告诉大家,我们这么多经验,随便帮你看一下就解决了。哈哈,我倒是想看看王垠都觉得棘手的问题,你们怎么解决!实话说吧,那几个 principal 经常都是在受我指导,走弯路的时候都是我在跟他们争论,及时制止,虽然有些时候不听,继续走弯路。当然,管理层绝对不会忘记的一件事情就是督促写注释,写测试,而且用的是对奴隶说话的口气,说:“你的代码注释太少了,要是你走了就没人能理解了。要是你想能放假,那就要写注释,否则没人能帮你维护代码,你就永远放不了假!” 说这话语气是调侃而温和的,然而听到好几次之后你就发现,这里面的含义是狠毒而贪婪的。如果是个 principal engineer,就没人敢叫他写注释!
这一切都让我心里很不是滋味。这种情况,不仅我这样顶级专家难以接受,这是任何一个文明人都不应该接受的。我压根就从来没把 title 当回事,我对待 principal engineer 和印度小妹是同样的尊重。张口闭口 principal,那倒是叫你的 principal engineer 写出可以跟我匹敌的代码来啊?实话说吧,门都没有。世界上就只有一个人可以做到这个事情。微软的所有 title,全世界公司和大学的所有 title,还真没有一个是可以衡量本人的。管你什么 principal, partner, distinguished…… 只要跟我一聊,我就知道他脑子里有多少货。资本主义根深蒂固的劣根性就是利用这些标签,肆无忌惮的贬低人的价值,拿白菜的价钱买白粉。你稍微谦虚一点,就有人真把自己当回事了,开始用“老资格”的口气说话。这不是微软一家的问题,然而不管在哪里出现都是值得鄙视的。
本来进微软的时候我就想,这是我在离开美国之前想看的最后一个公司。所以呢,我的微软之行已经达到了它的目的,也快要到达它的尽头。对于 Google 我只有鄙视,而对于微软,我觉得技术能力还是有那么几刷子的。如果 Google 得分是 D 的话,那微软倒是可以得 B。然而在这里,技术能力确实没法得到公平的回报和尊重。过了这么几个月,我觉得也该是寻求自身价值应有回报的时候了。在美国待了十年,我已经很清楚,美国根本不是一个尊重事实和人才的国度。从来都不是,换了总统也不会是。这个虚伪而邪恶的国家,正在继续走向昏庸和毁灭。这一切,我已经看得很透了。
我的心,已经飞回到了中国,飞回到了家乡,飞到了北京。我每天都在想象跟老朋友们坐在一起喝茶聊天,感受城市生命的律动。这一切,都是在美国永远得不到的,我命中注定要在中国生活。当然我知道国内的人也很复杂,很多制度不健全,但中国之大,我相信会遇到很多靠谱的人。我不会再给任何公司工作。我会创造一个伟大的公司,它会创造世界上最精致的产品,它会给真正有价值的人相应的回报和尊重。由于一些现实的问题,回国的日子还要等几个月,不过应该在年底之前。