娱乐一下。我们来比較一下4家相似的科技公司的软件政治观。

(1)Facebook—诊断:极端自由。

Facebook的规模已经非常大了。可他们的行为处事仍然像是一家创业公司。并且到眼下为止似乎也活得挺好。他们用得主要是C++和PHP,并且非常喜欢炫耀自己的代码怎么在PHP和C++之间调来调去。而这大概是最糟糕的地方了。他们的数据都放在memcached里:仅仅有键值对,没有数据库结构。他们把数据导出来放到一个后台Hive数据仓库里。然后用Hadoop来进行离线数据分析。每两个星期左右他们仍然会举办通宵黑客马拉松。反正他们的程序猿大多都是单身男青年(至少我上次去參观的时候还是如此)。股票的估值也还非常高(我上次查价格的时候好像已经没那么好了)。

作为一家公司。Facebook是非常紧密的,具有非常强的运行力,十分注重程序猿在站点上公布新功能的单兵能力,没有什么官僚主义。

这对一家规模这么大、用户那么多的公司来讲是难能可贵的。

保守派毫无疑问会厌恶蔑视他们。可是Facebook证明了无论具有什么世界观的程序猿,仅仅要联合起来,就能解决非常多问题。

(2)Amazon.com—诊断:自由。以它的年龄、年收入、成熟的运营部门,以及財务方面的保守性来讲,这算是非常令人意外的了。但其实和早年相比,说它“自由”已经算客气的了。

1998—1999年的时候它和Facebook差点儿一模一样,唯一的差别是当时他们用的是关系型数据库,而且事先做了大量的关系数据的建模工作。哦。除了客服软件,那里用的是键值对的存储方式,否则无法灵活应对混乱不堪的更新公布。这是由于我几十年来身为自由主义者接受教化的结果。无论怎么说,即便公司为了工作生活的平衡做出了非常多变化(特别是股价多次下跌和好多年project师周转率都保持在非常高的两位数之后),亚马逊的project师依然保留了自由,像创业公司那样的核心价值。每一个团队都自己管理数据,自己做决策。基本上像是独立运作的商业个体。亚马逊的公布和运行速度依然比不论什么人都快,由于他们真的敢冒风险(可能导致大规模瘫痪的那种风险),为了及早公布,常常公布。敢于做出取舍。

亚马逊证明了自己在成立15年之后,仍然能保持无人能及的创新力,灵感仍在。

(3)Google—诊断:保守。Google一開始是属于略微有点自由的那种。然后就变得越来越保守了。

Google仅仅有在刚刚開始的时候才是软件自由的,那时候的搜索引擎是用Python写的。随着公司不断壮大,他们非常快就转向了软件保守主义,而这全然是由project师自己主导的。

他们写了非常多宣言警告太多语言所带来的危急,而仅有的几门语言里,也有严格的风格指南,限制使用那些“危急”或者“难以阅读”的语言特性。

Google的JavaScript代码风格极端保守,充斥大量静态类型标注。eval更是被全然禁止。Python的风格指南禁止元编程等各种动态特性。搞得像是没有类型的Java一样。

他们还严格限制非常多C++的特性,而与此同一时候C++
11每几周就会支持一个新特性。(C++ 11里有超过500个的新特性。)内部调查显示,Googleproject师认为妨碍特性升级和高速公布的主要障碍是官僚主义,周转率高。人事复杂。

Google曾多次努力试图削减这种官僚主义。然而他们却一次重新地被project师自己给抵制回来(没想到吧),由于这些人已经变成了死硬的保守派。会主动(当然很多其它的是被动)抵制更具灵活性的方案和技术。

过去5年里Google内部的技术转向绝大多数都是保守的。对于我这种自由派人士来说,目睹这一切实在是太让人扼腕了。好在我为自己找到了一个两方阵营都认为有价值的位置,在我自己的团队里,还能继续保持自由的风格而不受外界干扰。

(4)微软—诊断:难以言喻的保守。

微软有两仅仅下金蛋的鹅:Office和Windows。微软已经彻底退化成一个农民,仅仅会保护它的鹅不受侵害。由于又一次培训团队实在是划不来,因此它的客户根本别无选择,金蛋自然是有它的价值。

但是正由于如此,微软也不再在Office或Windows上有什么创新。他们的贴牌厂商被压得利润很薄。苹果占据了手持设备市场,而微软却在扼杀自家Windows Phone的最后一点创新,由于他们害怕这会吃掉Windows的核心业务。微软已经有15~20年没有在产品层面上有成功的创新了。全部的成功产品都是从竞争对手那里抄来的:IE、Xbox、C#、.NET、Bing、Windows
Phone等不胜枚举。

这些都是非常好的东西。可惜都是别人的创意。微软的策略是拥抱。扩展,然后利用品牌压垮竞争—至少以前如此,直到政府在2002年左右出手制止为止。如今这家公司自己都不知道自己要干什么了。更糟糕的是,他们失去了比尔·盖茨,换了一个疯子来当家。

员工不断地离开。全部人都认为自己内心有“存在感危机”,另外。部门之间从竞争变成互害也让人无法忍受。微软已经变成了一个右翼社团主义的辛辣讽刺:坐在门廊前端着枪诅咒路人。期待向政府行贿能让他们在等死期间再多混几年补助。过去7年间,我私下接触过不下400个现任和前微软雇员。我肚子里的八卦多得是啊……也许有一天我会说出来。

(5)奖励:苹果。

诊断:未知。可是他们的营销太牛了。所以也没所谓了。只是我非常有兴趣想了解它内部的软件文化。有人想爆料吗?穿马甲也行?AMA?[1]

好啦,这也是个好玩的游戏。

只是我们还得继续往下聊!

就快完了。


摘自《程序猿的呐喊》一书。

话说。国内有没有兄弟写下BAT啊。

野哥点评了Facebook、Amazon、Google、微软和苹果的更多相关文章

  1. Google, Facebook, Amazon and Microsoft Salaries

    https://blog.step.com/2016/04/08/an-open-source-project-for-tech-salaries/ Step.com Crowdsource your ...

  2. Facebook 和 Google 如何激发工程师的创造力

    原文链接:http://kb.cnblogs.com/page/193450/ 今天终于“朝圣”了两个伟大的公司——Facebook和Google,对创造力和驱动力的来源有了更多的理解,尤其是对于典型 ...

  3. Facebook和Google如何激发工程师的创造力

    http://taiwen.lofter.com/post/664ff_ad8a15 今天终于“朝圣”了两个伟大的公司——Facebook和Google,对创造力和驱动力的来源有了更多的理解,尤其是对 ...

  4. 关于Facebook和Google+授权登录

    实际中遇到需要Facebook和Google+等第三方授权登录自己的Web应用(可能还有Android和IOS的手机应用),本质上都是JS SDK的官方应用.这时候不得不去他们官方查看文档. 注:一下 ...

  5. 微信分享缩略图,如何增加微信朋友圈分享链接的小图片? facebook、google+、twitter等分享的标签

    微信分享缩略图 如何增加微信朋友圈分享链接的小图片?在网页的头部<head>标签内加上以下代码,图片路径自行修改.<head><div id='wx_pic' style ...

  6. ASP.NET Web API 2 external logins with Facebook and Google in AngularJS app

    转载:http://bitoftech.net/2014/08/11/asp-net-web-api-2-external-logins-social-logins-facebook-google-a ...

  7. Google可能会用苹果的Swift 为什么?

    Google可能会用苹果的Swift 为什么? 2014 年夏天,苹果在 WWDC 大会上宣布了全新的程序语言 Swift,主要用来开发 iOS 与 OSX 应用. 去年年底,苹果将 Swift 开源 ...

  8. Google, FaceBook, Amazon 加州求职记 (转)

    http://blog.csdn.net/ithomer/article/details/8774006 http://www.myvisajobs.com 一年多前,出于显而易见的原因,下定决心肉身 ...

  9. [转]Code! MVC 5 App with Facebook, Twitter, LinkedIn and Google OAuth2 Sign-on (C#)

    本文转自:https://www.asp.net/mvc/overview/security/create-an-aspnet-mvc-5-app-with-facebook-and-google-o ...

随机推荐

  1. 【 Tomcat 】后端tomcat获取真实IP

    环境: nginx + tomcat nginx.conf 配置: proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_ad ...

  2. html中给元素添加背景图片或者gif动图

    添加背景图片有四种常用的方式,分别是: repeat    完全平铺 repeat-x    横向平铺 repeat-y    纵向平铺 no-repeat    不平铺 使用示例: <!DOC ...

  3. 运行微信支付demo

    首先要说说写这篇文章的初衷:集成支付宝支付运行demo都是可以正常运行的,但是我下载下来微信支付的demo,却发现一大堆报错,而且相关文章几乎没有,可能大家觉得没必要,也许你觉得很简单:但是技术大牛都 ...

  4. 火柴棒等式c++

    先建立一个sum数组,打表存入1—9每个数字需要的火柴棒数,然后手动二重循环0—1000的所有数字,写一个int型函数用来计算每个数字需要多少根火柴棒(当前数字%10后在sum数组的下标),然后,最后 ...

  5. ( 转 ) 优化 Group By -- MYSQL一次千万级连表查询优化

    概述: 交代一下背景,这算是一次项目经验吧,属于公司一个已上线平台的功能,这算是离职人员挖下的坑,随着数据越来越多,原本的SQL查询变得越来越慢,用户体验特别差,因此SQL优化任务交到了我手上. 这个 ...

  6. Xamarin XAML语言教程ContentView视图作为自定义视图的父类

    Xamarin XAML语言教程ContentView视图作为自定义视图的父类 自定义视图的父类:ContentView视图可以作为自定义视图的父类. [示例14-2]以下将自定义一个颜色视图.具体的 ...

  7. 【bzoj2142】【礼物】拓展Lucas定理+孙子定理

    (上不了p站我要死了,侵权度娘背锅) Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同,在小E心中分量 ...

  8. 1.10(java学习笔记)super关键字

    supe主要是调用父类中被重写的方法及属性. 用下列代码那说明: package cn.hcf.TestSuper; public class TestSuper { public static vo ...

  9. FCL研究-集合- System.Collections 接口和对象集合

    [目录] 发现自己已经有很长一段时间写代码没什么进步了,随便读读FCL的源码,看看之前一直用的方法是如何实现的,也顺便提高下自己.FCL很是庞大,很难下口,于是用最笨的办法,先看常见的命名空间,逐个展 ...

  10. 【转载】linux2.6内核initrd机制解析

    题记 很久之前就分析过这部分内容,但是那个时候不够深入,姑且知道这么个东西存在,到底怎么用,来龙去脉咋回事就不知道了.前段时间工作上遇到了一个initrd的问题,没办法只能再去研究研究,还好,有点眉目 ...