发布于 2016-04-01 03:32:48 | 292 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

小米

小米公司正式成立于2010年4月,是一家专注于智能产品自主研发的移动互联网公司。“为发烧而生”是小米的产品理念。小米公司首创了用互联网模式开发手机操作系统、发烧友参与开发改进的模式。


从1995年至今,从美国到中国,从自由软件到开源软件,小米首席架构师崔宝秋一直在参与开源软件的开发等工作,亲历中美两国开源的变迁与发展。如今,开源是互联网的大势所趋,个人与企业都纷纷拥抱开源。

回顾过去,开源这些年,有哪些值得铭记的瞬间、有哪些影响深远的事件、有哪些极具代表的人物?放眼未来,开源到底该怎么玩,怎样的思路与打法是值得国内互联网公司借鉴的?在3月27日举行的技术社群大会上,崔宝秋与大家分享这些年的一点感触。

本文根据崔宝秋在大会上的演讲整理而成,关注『聊聊架构』微信号,回复关键字『开源』,获取演讲PPT。)

大家好,我是小米首席架构师、小米云平台负责人崔宝秋,今天我分享的主题是《我看开源这些年》。本次分享中,我会介绍下过去二十多年我对开源的一些看法和理解,重点是我认为在国内我们应该怎么玩开源的方法。

我和开源

首先,我先介绍下我和开源的缘分,或者什么时候和开源结缘的。我是1995年出国的,那会国内都停留在DOS编程。1995年去美国读书,在那里我大开眼界。我看到了Linux,被他庞大的功能,后面所有的软件、能力、水平所震撼,当时真有惊艳的感觉。我在学校的几个老师也对在开源上对我有很大的启发作用。之后我的四年研究成果,五年博士四年我都在做XSB,简单来讲就是增强版的Prolog语言。当时我基于GPL把它开源,再道后来很多工业界也在用这个编程语言。从1995年开始到2010年,这中间我参与了很多Emacs社区讨论,也直接贡献了一些代码。在LinkedIn我们也开放了一个搜索系统SenseiDB,后来小米也把它用到了搜索技术里。

2012年回到中国,我就开始推进小米的开源战略,比如在有限的人力的情况下,如何站在开源巨人肩膀上快速推出一些云存储计算和大数据处理能力。

在这个过程大家可以看到,我是从早期的一个自由软件的信仰者,慢慢的转化到一个开源的倡导者,中间也经历过学校、公司,从个人的爱好到公司的推动,从项目贡献者到项目管理者。

开源关键人物、关键事件和基金会

说到开源,讲开源过去的这些年,我觉得应该讲一下重要的人物。在我看来在开源史上,在开源界这几个人是至关重要的:第一个是,Richard,他创建了自由软件基金,为后来的Linux发芽等等奠定了扎实的基础。第二个,Linus,Linux的创造者。最后一个是Eric,最开始我不太喜欢,因为我认为他是机会主义者或者实用主义者,但是后期我觉得开源这个词是他和另外几个人创造的,并且主要是他的功劳。我觉得如果没有Eric,只凭着自由软件,开源做不到今天。这三个人在开源史上未来都很难有人取代的。

下面是开源历史上一些重要的里程碑事件和重要基金会,以及重要的开源软件时间表。

版本控制系统(VCS)的演进

对于开源来说,代码管理平台非常重要。我记得在我读书的时候,我们的系统都是在系里自己维护的,整体来看,并不安全,版本管理也不方便。开源软件,势必要有很多人参与,所以最重要的代码一定要放在安全可靠的地方。相对的来讲,2008年有了GitHub出现,它所管理的开源项目数量就不是线性增长,早期可能有点线性,但是后来的曲线可能更加陡峭一些。

开源软件 VS 自由软件

自由软件我觉得过于理想主义,过于强调人的自由。开源软件更加实用一些,较少涉及政治和道德,强调“使⽤和提供开源软件对你和你的⽣意有好处” 。确实,早期GPL推动了自由软件的萌芽或者早期发展,但是后期我们用开源,它会大力限制自由软件的发展。所以我觉得开源软件属于工业界,我现在参加了中国很多的开源社区,大家对开源的热情其实都离不开Eric的推动。虽然早期我对他有负面的认识,但是他现在的贡献也离不可替代的。

开源的三种力量

开源有三种力量,这是我总结的。第一,属于个人爱好者。这些人是狂热的技术爱好者。我很早以前,我的一个目标,就是等我财务自由以后,我去分享代码,享受那个成就感,为大家创造价值的成就感,这代表了一大帮技术爱好者,宅男。其中我合作过的一个作者,他是一位天文学的教授,有一天他写了一个非常好的文本管理器,可以帮你管理时间,记事等。他每天的工作几乎在上下班两个小时的地铁上或者轻轨上完成的。我看代码写的不太优雅,算法性能不够好,我以为他是很高的计算机高手,后来我发现他是学天文学的,后来我就理解了。但是他的一些算法不是特别美妙,但是对事情的推进还是有贡献的。

第二种我叫无开源模式,这里包括组织和学校,这些是以互联网服务或者以某种东西来盈利的,它不是通过开源的软件,或者解决方案来赚钱的。

第三种是有开源商业模式组织,包括IBM,也中国的华为,它们有一种商业模式在后面,利用网络硬件,设备,开源,有一整套的解决方案,对大的企业,通过整套的东西来盈利。所以三种的贡献者,三种的力量,对开源看法不同,贡献不同,投入也不同

国内开源的几个阶段

中国的Linux在过去的二十年发展的非常迅猛,早期可能很多人不知道这件事情,因为这是我在1999年10月份的一天早上在网站上看到Eric写的一篇文章,我当时看了觉得不对。他就是表达了对Linux进入中国的反对或者不相信的态度。他说Linux被中国政府采购不可能的,我们不应该,我们不欢迎,就是表达了他的一些政治偏见。我后来跟他们也进行了电子邮件交流。那次让我认识到Eric确实把自由软件当成政治的东西来看待的,所以不是资本主义,社会主义的政治,而是其他的政治观点,他觉得是自由的等等的。

国内开发者几个阶段:第一,我认为1995年是与世隔绝的,这是加了引号的,我们确实落后了,国外玩了很久了,国内也没有互联网,后来十年是初级阶段,2005-2010年初步成熟了,现在有了Git,也开始了快速发展。

开源的玩法我简单介绍下,重点可以看演讲稿,个人的就是热爱,就像刚才讲的天文学家一样,个人玩开源的也有盈利的,成为暴发户的都有可能的,因为你可以接受赞助等等的。像大公司,有商业模式的公司的开源是另外一种玩儿法,我没有直接参与,就不讲了。我讲的是中间这个无开源模式,公司或组织的一些玩法,以小米为代表,可以看一下小米大数据做了哪些开源,这是一个简单的全貌。为什么拥抱开源?我们首先要站在巨人肩膀上,快速推出产品,快速占领市场,快速为公司创造价值。

所以对很多创业公司,甚至对很多大公司而言,不拥抱开源就一下子输在了起跑线上。当然吸引人才,吸引贡献,提升内部软件质量,我认为也是开源非常重要的几个好处,所以拥抱开源已经是大家公认的。

在小米我一直推行这几个原则:一,快。快速选型,快速定位,快速掌握,快速推出产品。二,绝不重造轮子。宁愿学习掌握,化为己有而不要自己重写,这个投入远远大与前者。三,不用则已,要用则精。四,永远抱着开放与共享的态度。如果讲自由主义,讲政治上的一些东西的话,道德层面的,这个是反映的一块。五,与其他公司所不同的,小米会主打自己的版本,为什么这样讲?

想解决国内很多公司所犯的一个很粗浅的错误,最根本的原因就是它们拿了一个版本,完了以后就把这个给割断了,然后自己用起来很爽,然后自己改动,改动又不回报到社区,不管什么原因,这个版本就被这个公司维护的越来越重,越来越远,和社区的版本差别很大,最终这个版本就没用了。社区是后面一个庞大的力量在推动,BAT我认为都是小的,比不过社区后面力量的推动。不然的话公司最终会被维护成本所拖垮。最后一点很重要,在座的各位如果在公司想推开源的话,这点一定要注意。我们推出的版本也是要投入的,虽然永远开源第一,投入第二。

如何回报社区

怎么有效回报社区?参与交流,这个主要是针对国内开源爱好者或者参与

者、贡献者。第一,要勇于参与;第二,描述清楚想法和算法;第三,还有就是自信,坚定自己的观点,不要被社区中某些貌似大牛的人所吓到了,没必要的;第四,一定负责任,不要打一枪换一个地方,就是写了代码一定要维护,要做QA,要做测试,要做自己的用户,要做客服,你的问题有人提问要及时回答。小米为什么这么快让社区接受了我们,就是我给他们展示了,小米为什么会在某些领域大力投入等等的,所以这个时候社区愿意跟你合作。

我想总结一点结束今天的分享,一句话,我认为开源是软件的未来。

作者: 崔宝秋   文章来源:聊聊架构



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务