阅读更多

2顶
0踩

开源软件



   「全球最大的开源公司」这一名号,在数易其主之后,最终归属了 Facebook。这家非典型的开源公司不依靠出售软件盈利,反而走上了开源的道路—提供开源代码,经营开源社区。
  
    Red Hat 最终还是碰上竞争对手了。随着Hortonworks 以十亿美元的市值公开上市,「全球最大的开源公司」这一名号的归属眼看就要引发一番竞争。
  
    但现在,不论是 Red Hat 还是 Hortonworks,都用不着再去争这个头衔了。
  
    几年前,我(本文作者:Matt Asay)在一次论辩中说,Google 是世界上最大的开源公司。但今天,Facebook 拿走的这一荣衔。Google、Twitter、Netflix 等其他的网络巨头,都推出了大量的开源软件,但只有 Facebook 走的是大规模提供开源代码和开源社区的道路。
  
    在开源的模式上越做越大
  
    Facebook 将开源的模式推向极致。Facebook 将所有事物都向用户开放:软件、硬件和技术诀窍。一定程度上,这是 Facebook 吸引开发商的方式之一。但「分享一切」的原则,也正是 Facebook 成功之钥。
  
    至于软件方面,没有哪一家公司能比 Facebook 开放更多的开源代码、提供更多的技术支持。
  
    基于 2013 年的 90 个源代码存储数据库,仅 2014 年一年,Facebook 就设立了 107 项开源项目,这就让 Facebook 的开源项目总数达到了 225 项。
  
    Apache Cassandra(一种 NoSQL 数据库)、Thrift(为扩展性跨语言服务提供框架)、Apache Hive(建立在 Hadoop 顶端的数据仓库基础结构)及其他很多项目,都属于 Facebook 自己的开源项目。而除此之外,Facebook 还积极地帮助大量外部项目发展,包括 Apache Hadoop 和 MySQL。
  
    在硬件方面,Facebook 决定开放其数据中心的源代码。这一决策虽然没有被媒体广为宣传,但却很有发展潜力。在这项名为 Open Compute 的项目中,Facebook 公布了所有必要的细节,从而帮助其他公司仿照 Facebook,建立它们自己的数据中心。
  
    当然,现实情况是,大多数公司还没发展到那个程度,还做不到跟着 Facebook 的引导建立数据中心。
  
    尽管 Rackspace、IO 和微软都已经先后接受了 Open Compute 项目,但大多数的公司却仍不够水平。正如斯坦福大学教授 Jon Koomey 断定的,「如果公司心里有数,并且降低每次计算的成本的话,他们就应该会接受 Open Compute 所提供的项目。但只有当数据中心只有一个所有者,而且有足够的预算经费时,公司才有可能接受 Open Compute;而只有极少数公司才能达到这个地步。」
  
    让开源社区亲如一家
  
    然而,Facebook 所期望的,不仅仅是开放代码和硬件,然后坐视开源项目进入瓶颈。要让 Open Compute 这样的开源项目真正起到效果,其关键在于,让开源贡献者们加入一个活跃的、不断壮大的开源社区。
  
    经过 12 天的源代码开放期之后,Facebook 宣布,公司现在有超过 1000 名手握开源项目的外部贡献者。在这 1000 人中,有 20%的贡献者提交了不少于5项项目。换句话说,在 Facebook 的贡献者中,有相当一部分比例的人并不只是单纯的开源贡献者而已:他们同属 Facebook 开源社区这个大家庭的一员。
  
    回过头来说,Facebook 的开源社区的重要程度,可以说不亚于公布源代码和硬件设计技术,尤其在被第三方开发系统所应用时,效果更加显著。
  
    这就是为什么 Facebook 成为当前开源公司界的领头羊的原因。Facebook 不走 Red Hat 和 Hortonworks 的发展道路,即不依靠卖软件或相关服务盈利。但它利用软硬件的开源方式,就能岁入百亿美元。
  
    听起来,开源项目的投资取得了相当不错的收益。
  • 大小: 119.9 KB
来自: 搜狐IT
2
0
评论 共 3 条 请登录后发表评论
3 楼 xsharp 2014-12-24 11:31
没节操的公司
2 楼 sunliao_first 2014-12-24 08:48
但它利用软硬件的开源方式,就能岁入百亿美元
1 楼 clrw 2014-12-23 17:15
支持一记。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • MyBatisPlus 一对多、多对一、多对多的解决方案

    但是在实际运用时对象之间的关系非常复杂,一对多、多对一、多对多。网上查询了大量质量都无法解决此问题。难道要把所有的用Mybatis的重写一次,重写一次Plus的方法还能不能用。实在没办只能查看官网...

  • mybatis generator一对一映射,一对多映射,批量插入,批量更新

    mybatis-generator这是原来的github地址 现在在此基础上添加了一对一和一对多映射配置,配置在table标签上 如果需要一对一配置生成,需要添加插件配置 在context中添加如下配置<!-- 生成一对一配置 --> ...

  • MySQL 多线程并发更新同一行,通过主键id更新,死锁问题以及解决

    最近项目中用到Job+多线程并发执行更新同一行数据,通过主键id更新的场景,但是任务一执行就出现dead lock异常,经过分析和排查,发现多线程并发读取同一行数据获取共享锁(Shard Lo)

  • JPA一对多级联更新遇到的问题

    1、更新的同时删除多的一方的旧数据public class ApplyObject { @OneToMany(cascade=CascadeType.ALL,mappedBy="applyObject",orphanRemoval = true) private List<ApplyObjectList> applyObjectObject;//物品列表...

  • 分布式程序防止多用户对同一数据更新问题

    在分布式程序中经常遇到多个用户对同一数据的更新,虽然数据库中对更新操作加了锁,防止同时更新的问题,但是也可能会存在数据被重写的问题。比如:用户a 对学生表的name字段进行修改,用户b对学生表的age进行修改,...

  • Spring Data JPA OneToMany注解参数orphanRemoval,一对多删除详解

    回顾 上篇文章分析了OneToMany级联操作多方的插入、更新、删除。我们得到如下结论: 1、插入,建议一方设置mappedBy,好处是只会执行一条insert语句。...插入和更新都没有什么问题。但是删除就有些奇...

  • MYSQL多线程并发操作同一张表同一个字段的更新问题

    MYSQL多线程并发操作同一张表同一个字段的更新问题? 可以用乐观锁方案: 在表里增加个字段,版本号字段 每次更新前先从数据库里获取这个版本号的值,然后更新时要同步更新版本号+1,并且增加更新条件版本号=查询...

  • Unity 热更新技术 | (一) 热更新的基本概念原理及主流热更新方案介绍

    开始学习热更新方面系列知识,就从这一篇开始吧! 本系列教程 会从热更新基本概念出发,详细介绍热更新相关的全套知识点。 如热更新技术基本原理、热更新主流方案、AssetBundle系列教程、Lua语言编程、Lua与Unity...

  • EF多表关联数据更新

    本篇是第一阶段的完结篇。 学完这篇后,你应该可以利用MVC进行完整项目的开发了。 本篇主要讲述多表关联数据的更新,以及如何使用原生SQL。 文章提纲 多表关联数据更新 如何使用原生SQL 总结 ...

  • MySQL事务之丢失更新问题

    在事务的并发操作中,也就是多个事务同时对同一组数据进行操作时,可能会出现脏读、不可重复读、幻读、丢失更新这四个问题,本篇博客就来为大家讲解 丢失更新 问题。 丢失更新 就是两个事务在并发下同时进行更新,...

  • 如何利用一条sql语句进行批量更新(需要满足一对一更新)

    需求:现在有一个项目表project,里面的字段主要有proj_Id,money,主键字段为id,proj_Id可能为空,money字段类型为NUMBER(17,2), 在某种条件下,会关联表proj_appl表字段proj_Id, 另外一个表proj_appl,里面的字段主要...

  • 热更新方案 HybridCLR 学习教程 |(一)原理及准备工作

    前面文章介绍了热更新相关的知识,包括使用xLua实现热更新实战等 那本文就来介绍一下 热更新方案 HybridCLR(代号wolong,原huatuo)和基本使用方法。...若是想了解更多关于HybridCLR的东西也可以去 官网 详细查阅。

  • JPA一对多关系,在一端更新所包含多端引用的问题

    在JPA一对多关系中,如   学校类:   public class School{ @Id private int id; @OneToMany(mappedby="school",casecade = CasecadeType.ALL) private Set students; ........ }    学生类:   public...

  • 如何解决多线程数据库重复插入、更新问题

    文章目录基础概念原因分析解决方案多线程插入解决:多线程更新解决 基础概念 幂等性 : 在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。 简单来说:幂等就是一个操作,不论...

  • SSM框架实现一对多添加(修改)多条数据

    以前在做SSM框架的时候,遇到的一个比较经典的案例,一个角色Role对应多个权限Module,那么如何在添加角色信息的时候将一个角色对应的多个权限也同时添加到两个表关联的中间表中呢。   1.添加角色信息。同时添加...

  • C++多媒体库SDL以及实时音视频库WebRTC中的多线程问题实战详解

    多媒体开源库SDL以及实时音视频开源库WebRTC中的线程约束问题实战详解。

  • Spring Data JPA一对多关联保存到数据库外键为空

    今天碰到一个问题,在使用Spring Data JPA一对多关联时候保存到数据库,数据都保存了,但是外键的值为空! 原因:实体类配置关联关系后还要在保存的时候体现出关联性。 PS:如果有看不懂的可以给我留言,这个问题我...

  • 两表关联更新 mysql_MySQL多表更新(关联表更新)

    在开发过程中,有时会遇到需要将某张表的字段值根据条件动态地更新到另一张表字段的问题,即通过一张表的字段修改另一张关联表中的内容。比如,存在两张表A(表名:test_a)、B(表名:test_b),他们的表结构如下:表A...

  • vue多页面热更新缓慢原因以及解决方法

    多页面就是多入口,会生成多个html文件,之前我基本都是单页面,因为是单入口没有这个问题,当偶然间接触了一个多页面的项目发现了热更新很慢的问题,这当然很不舒服,就开始查方法,可能要2,3分钟,这个和webpack...

  • 更新MacOS BigSur是遇到的常见问题及解决方案

    ​​有新系统更新是当然好,但它也可能会带来一些不兼容问题导致系统出现异常现象。比如:软件打不开,游戏卡顿,机器没声音等等….总是不会遇到这样那样的一些问题!就好比最近大热的Mac big sur亦是如此!如macOS ...

Global site tag (gtag.js) - Google Analytics