自己原文公众号: https://mp.weixin.qq.com/s/c0krbIG9ysJFQqh1sDUVig
前一天发一个朋友圈时候,德哥(PG的布道者)教了我一个名词--安迪比尔·。安迪是原英特尔公司 CEO 安迪·格鲁夫(Andy Grove)背后所指代的是所有硬件厂商。而比尔就是微软的创始人比尔·盖茨,背后所指代的是所有软件厂商。我和比尔盖茨同一天生日10月28日(世界男性日)。言归正传, 原 文对于 定律是这样解释的: Andy gives, Bill takes away. 直白地讲,就是硬件厂商们辛辛苦苦把硬件性能提升,而傻X软件公司们开发出更庞大、更消耗资源的软件,把硬件提升的性能给抵消了。
乍看起来,是微软在和我们作对。但实际上,盖茨本人也不想把操作系统和应用程序做得这么大,他过去搞的 BASIC 只有几十 K 。当年的 BASIC 解释器是由汇编语言写成的,精炼得不能再精炼,但也因而大大降低了程序的可读性。随着硬件性能的进步,程序员们渐渐开始更讲究工作效率和规范化了,并且不再像过去那么精打细算。于是,哪怕是同样功能的软件,今天比昨天占用更多的硬件资源,也是在所难免的事。这是正面的评价。
当然也有负面的评价: 许多新软件有着更高的配置要求,从而带动了硬件的消费市场,让整个IT生态更加活跃。比如某游戏公司推出一款酷炫的游戏,那么显卡公司一定会偷着乐。
我讲这个是说有的时候我们性能遇到了问题,会想加资源。当然可以,有些实在解决不了的可以用硬件,比如高配置的机器,成百上千的hadoop节点,或者类似exadata这种逆天的硬件组合。(从实际估算好像前者真的比后者贵,因为几台机器无法发挥MR的优势,几千台机器的价格 远超exadata,而且还不算后续运维和开发的成本。)有的时候一体机真心不错。要不然为什么阿里、腾讯、华为、浪潮也都做一体机,不仅仅是甲骨文和AWS。
但是有的时候我不觉得一有问题就加硬件。像前辈们做 BASIC一样,有点匠心,KOF97、坦克大战没多大对吧?不要有个几个G数据就说大数据,各种分布式、实时计算。都是浪费。这不是比尔拿走了,是自己拿走了。
