阅读更多
开源软件在当今软件市场中的重要性逐渐凸显,越来越多的企业和开发者选择将自己的产品以开源形式发布,也有越来越多的企业开始采用开源软件。

尽管国内不乏一些优秀的开源项目,但不可否认,与国外相比,国内的开源起步比较晚,开源氛围还存在不小的差距。如何建立一个稳固发展的社区,让更多的开发者参与到社区中,是一个亟待解决的问题。

个人开发者该如何参与开源?开源能够给予我们什么?……带着这些问题,我们邀请了开源界的一些大牛,请他们来谈一谈他们眼中的“开源”。他们是(按文中回复顺序排列):

  • zozoh(张志昊,Nutz作者,注:另一位作者wendal正在赶来)
  • 杜玉杰(中国OpenStack用户组管理员、社区经理,息壤开源社区共同发起人)
  • 姜宁(Apache多个开源项目 Camel、CXF、ServiceMix、ActiveMQ 专职贡献者)
  • 庄表伟(息壤开源社区发起人)
  • 程开源(程旭文,息壤开源社区发起人,开源力量社区平台创建人,“开源力量公开课”创办人)

怎么理解开源?是不是把软件源代码公布出来就算是开源项目? Top

程开源    写道
我理解的开源其实是社会协同生产的一种模式,通过将源代码开放出来,使得使用者可以有机会参与到产品生产中。

zozoh    写道
同上。只公布源代码也算开源项目,因此有“比较规范的开源项目”、“假开源”等说法。

杜玉杰    写道
公布源码并不意味着一定允许用户修改或再分发,所以说源代码开放的软件并不一定是开源软件,要看它是如何规范软件的使用、发布、复制和派生等整个过程的,简单来说就是看是否遵循开源软件许可协议。

早期开源软件有严格统一的定义,OSI对开源软件定义的十个条款基本上算是一个事实的标准,但现在业界也有把Free and Open Source Software(简称FOOS)统称为广义的开源软件。

姜宁    写道
开源软件许可协议是理解开源的关键。简单的开放源代码并不能使其成为开源项目。在Apache社区建设中常提到的一个原则就是“Community over code”。成熟开放的社区是成就一个成功的开源项目的基石。

庄表伟    写道
首先同意楼上的诸位,其实这个问题几乎是有共识的,基于某种许可协议发布的源代码,才是正式的开源项目。但是,在Github上有很多并无明确许可协议的开源项目,也有很多的开发者参与其中,这些项目,也是开源生态圈的一部分。


辛辛苦苦做了一个软件,为什么要开放出来呢?您做开源的初衷是什么? Top

zozoh    写道
当初就是为了要开放出来,才做的 Nutz……

杜玉杰    写道
我是开源社区的受益者所以也希望能够让更多人受益。

姜宁    写道
这是一个舍与得的关系。 只有降低了大家获取你劳动成果的门槛,才会吸引更多的人和你一起来为共同的目标前进,当有了更多人的参与,会大幅度降低你今后开发和维护的成本。

庄表伟    写道
我做了一个很不错的东西,当然希望更多的人知道。当我在那里自我吹嘘的时候,有人会问:你凭什么啊?谁知道你做得好不好啊?那么,一旦开源出来,事情就很简单,大家都看得到了。再者,文人可以以文会友。Coder自然可以以Code会友。这是一种寻求同道的方法。

程开源    写道
将项目开源出来通常有两个目的:

  • 知识分享,想让更多的人使用自己写的作品,早期开源项目基本都是这个目的;
  • 商业驱动,开源实际是企业的市场行为,通过开源占有市场,增强企业影响力,降低企业研发成本。


国内的开源环境与国外的对比? Top

zozoh    写道
不了解国外,觉得谈论环境木有意义。

杜玉杰    写道
我在国内参与发起过中国OpenStack社区等开源社区,并有幸作为OpenStack基金会独立董事也参与过国际OpenStack基金会的运作,对比感觉国内不乏优秀的开发者,而最缺乏的是完善的管理体制(如开源基金会等)以及职业的社区管理者。

姜宁    写道
国内开源生态环境没有国外的好,我们更多的停留在使用的层次上,很少能真正参与到开源项目的开发中。

庄表伟    写道
国内有大量的开源使用着、有少量的开源开发者、开源社区(基本上是使用者的社区),但是,没有一个成型的开源环境。因为,大多数开发者没有足够的空余时间,投入与自己职业无关的开源项目。

程开源    写道
国内的开源环境整体落后于国外10年以上,至今没有一个像Apache 、Linux基金会一样的开源协同生产组织出现,国内的灰狐、息壤开源社区(www.sarons.org)虽然做了一些努力,但还有很长的路要走,但毕竟开始迈出了步伐。


如何看待“外国的月亮比较圆”等类似的说法? Top

zozoh    写道
我在自己周围几乎没有听到过这样的说法,所以也没啥看法。

杜玉杰    写道
没有注意过。不过亲眼所见国外的空气质量不错,天很蓝。

姜宁    写道
开源,自由软件这些理念都是源于国外,很多东西到国内就有些变味了。目前大家看到开源想到最多是就是能看到源代码,我可以自己封装一下去申请国家项目或者直接卖给客户。很少会按照开源协议的规定和开源社区的规则来为这个开源项目做贡献。这样导致的结果就是国外的大牛的开源项目很好,人家做贡献赚人品,我们直接来用就行了。国内的开源项目很少有人问津,大家很少去想如何改善国内开源开发生态环境。

庄表伟    写道
这个问题……无语ing……

程开源    写道
坦率的讲,国外高质量的开源作品确实比较多,我们平时用的开源作品还大多来自于国外。 但随着国内云计算、互联网的深入发展,国内原创的好的开源项目在不断涌现,趋势逐渐向好。


成功的开源项目必备的要素是什么? Top

zozoh    写道
心里不能只想着“成功”。

杜玉杰    写道
不知道成功的标准是怎样定义的,但看到知名的开源项目都有清晰的许可协议、完善的社区基础设施、明确的分工,甚至有独特的社区文化和价值观。

姜宁    写道
社区,社区,社区。 成功的开源项目是靠拥有广大用户的社区来支撑的,社区会为项目成功发展提供各种资源,开源项目的持续发展的生命力来源于健康发展的社区。

庄表伟    写道
有一个以上的使用者,就算成功。当然,这只是底线,用来给自己打气用的。真正的成功,我还是同意姜宁的观点。

程开源    写道
开源项目的成功首先是需要有价值,我们写了一个开源的Java 主题SNS产品-FocusSNS,产品还很不完善,但社区却是非常活跃。 开源项目有了用户,通过用户的不断反馈,才具体了成功的基础,然后加之良好的社区组织以及运营,以及人们通过参与项目得到价值认可和实现,这样逐渐会成为一个成功的开源项目。


开源是创造轮子还是重新发明轮子? Top


zozoh    写道
你可以批评他人的轮子做得不好,做得有多烂,但不可否定制造轮子的权利及付出的努力……(via http://wendal.net/411.html)。

杜玉杰    写道
给zozoh +1。

姜宁    写道
开源是创新的试验场,开源促进创新。很多时候开源让我们有改进轮子的能力,当轮子改得多,我们就有了创造其他轮子的能力。

庄表伟    写道
不同花纹的轮子,也需要申请不同的专利的。


开源是温饱解决之后才考虑的么?如何看待开源项目商业化? Top


zozoh    写道
起码我是。

开源项目的所有者愿意商业化,谁也拦不住,人家有这个权利。不过对于 Nutz 这个开源项目,我们承诺一直免费 ,绝对不会收费,也不会和大家抖小机灵,变相收钱的。事实上,我们比较鄙视所谓的“社区版”和”商业版”。

杜玉杰    写道
我现在基本上算是靠开源解决了温饱问题。

开源软件不等于免费软件,开源软件也不等于说不能有商业开发,任何开源项目的发展模式都是和其许可协议密切相关的。确实有很多开源项目最后由于商业原因夭折了,但商业化也未必能够挽救所有的开源项目,经营一个开源项目和经营一个企业一样有风险。

姜宁    写道
我比较幸运从06年公司就给我开工资,专职做开源项目。

我现在所在的公司就是靠开源项目赚钱的,我当然赞成开源项目商业化,否则我的工资就不知道从那来了。这里我想澄清的是开源项目和商业软件的区别。有些多企业在使用开源项目的直接成果,有些企业在购买基于开源项目的商业软件,这些都是市场的需要。开源项目很多时候无法提供向商业软件的那样的服务支持,例如一个版本提供10年的维护期,安全补丁的及时更新等等。还有一句话就是商业产品是给用户省时间,开源项目在给用户省钱的同时需要用户自己投入更多的时间。

庄表伟    写道
做开源又不是一种淫欲。

商业项目与赚钱不排斥,赞成好的开源项目赚到钱。

程开源    写道
对于个人,可能是。 对于企业,是有计划的商业行为。

成功的开源项目,如Linux、Apache基金会的项目,参与项目的人和企业都实现了商业价值,不过大多数情况下,赚钱是开源的衍生价值。

您每天投入在开源项目上的时间大概有多少? Top


zozoh    写道
最近不太多,平均不超过半小时。wendal 花的时间多一些。如果忙过这段时间会多花一些时间。

杜玉杰    写道
总是在跟开源打交道,不知算不算投入?

姜宁    写道
我算是全职吧。

庄表伟    写道
平均不超过半小时,最近太忙了。

程开源    写道
我现在全职打理开源力量,是我们的创业项目,通过“向最牛x的开源技术专家学习”,旨在让更多的人掌握开源技术,最近我们推出了“开源力量公开课”,每周二线上线下同时开课,欢迎大家多参与。

您从开源中得到了什么? Top


zozoh    写道
快乐。

杜玉杰    写道
工作的乐趣。

姜宁    写道
结交了很多朋友,也收获了很多乐趣。

庄表伟    写道
我能做这个,而且我喜欢做这个。

程开源    写道
同众多牛人一起创造的乐趣和成就感。

该如何选择开源协议? Top


zozoh    写道
我们选最宽松的。

杜玉杰    写道
看出发点是什么,前面说过任何开源项目的发展模式都是和其许可协议密切相关的,看你打算如何经营你的项目。

姜宁    写道
GPL give me everything, MPL give me something, ASL give me credit。

我看好宽松,并且对商业友好的Apache 软件许可。

庄表伟    写道
与项目的具体性质有关。

程开源    写道
看各自的目的,如果是出于降低研成本的考虑,建议用Apache License;如果是出于知识自由传播,建议用GPL/LGPL等,如果是商业考虑,建议用多License并存。

列举出您心中的开源项目Top5,并给出理由。 Top


zozoh    写道
wendal 比较在行。

杜玉杰    写道
  • Top1 GNU项目,该项目的发起者不仅定义了GNU GPL许可协议,同时也是自由软件的精神领袖,该项目对开源运动影响深远。
  • Top2 Linux项目,世界上最具影响力的开源项目,开源社区典范。
  • Top3 Apache项目,其背后的基金会以及其运作模式对开源社区影响深远。
  • Top4 Git项目,正影响无数开发者的工作方式。
  • Top5 OpenStack项目,不解释了。

姜宁    写道
项目太多,还没真排过……

庄表伟    写道
这个TopX,重要吗?

程开源    写道
  • No1. Gcc ,早期开源产品的妈,没有她,好多开源产品无从谈起;
  • No2. Linux开源产品的家 ;
  • No.3 MySQL 开源产品的肚子
  • ……

谈谈您的开源项目!有没有想放弃的时候?您是如何坚持下来的? Top


zozoh    写道
因为没有过想放弃,所以也没怎么坚持。

杜玉杰    写道
我还在不断学习中。

姜宁    写道
我参与的开源项目背后基本都有公司在后面推动。如果我放弃现在的工作的话,我不太可能会放弃现在参与的项目,这和Apache软基金会项目都是面向个人的有很大关系。只要我愿意,我对项目的贡献不会因为我工作的变动而受到阻止。

庄表伟    写道
我的开源项目,都是出于兴趣来做的,不必专门介绍,也许到某个时候,没兴趣了,就不做了呗。我猜想,大多数开源项目背后的心态,都是类似这样的吧。

国内开源将如何发展?你的建议是? Top


zozoh    写道
Github 用的人越来越多,会越来越多的人和开源项目沾边。我觉得蛮好的,没啥建议。

杜玉杰    写道
题目太大,也不是我能预测得到的,另外自己做得也还不够好还需要继续努力。

姜宁    写道
前途是光明的,道路是曲折的。我的建议就是营造好的开源生态环境。

庄表伟    写道
其实,关于国内的开源,我并没有太多的话想说,只有三句话想说:

  • 开源力量公开课这样的形式,我觉得很有前途
  • 开源人应该多找机会聚聚
  • 最缺的是一个或者更多个健康运作的开源基金会,希望早日看到开源基金会的成立
程开源    写道
国内的开源发展,最需要大家的协作意识,并意识到协作其实需要规则,具体就不讲了,大家可以在由40多位共同发起人发起的息壤开源社区得到一些答案。

您最希望对打算从事开源的开发者说的话是? Top


zozoh    写道
多写代码,少吹牛B。

杜玉杰    写道
别光听我瞎说,要相信你自己。

姜宁    写道
开源就是重在掺和,在掺和中你能开拓视野,学到知识,收获友谊,成就事业 :)。

庄表伟    写道
zozoh +1,如果喜欢,就去coding,然后发布代码。

程开源    写道
放出代码前,想清楚,你是想通过开源赚钱呢,还是分享,如果是前者,按商业的作法玩开源,就像MySQL, Jboss 一样;如果后者,请多学习一下Apache ,Linux Kernel的作法。 末了,希望大家多参与到我们发起的开源基金会-息壤开源中来。



评论 共 13 条
13 楼 windshome 2013-05-23 10:33
从内容和形式,从需要来讲,开源都是对之前IT行业的一个冲击,一个有益的成分;关键是从事商业开发的人怎么对待开源产业,从事开源产业的人又应该以什么样的态度和方法来做事。
12 楼 走调歌谣 2013-05-23 10:22
开源是一种态度
11 楼 windshome 2013-05-09 15:40
我用过不少的开源软件,感觉开源这个东西本身很好,但是给一些人不好的做法给搞得人不爽。所以我的建议是
(1)开源软件最好也要有很好的长期路线与近期计划
(2)开源软件最好也要有足够的文档,包括需求的描述、设计、使用文档
(3)开源软件最好也做“专”,不要总想着做通用类的东西
(4)设计开发开源的人最好也做过商业软件,以商业软件的质量要求来要求自己的设计和开发活动
(5)开源软件在版本更新和修正bug时最好能多考虑一下版本间兼容性。开源软件版本间的不兼容实在是害人匪浅

这些建议,不光是为了很多使用开源库的设计开发人员,对开源软件的设计开发组织、开发者也是有好处的。

之前我在我的博客里发过几篇文档,专门写开源问题,表达的观点未必适合每个人,也欢迎大家品评:

http://windshome.iteye.com/admin/blogs/1856486
http://windshome.iteye.com/admin/blogs/1853680
10 楼 lection.yu 2013-03-29 13:53
这种文章真好,让沉寂的高手们贡献力量。
9 楼 cheng888qi 2013-03-28 11:56
中国开源界的先驱,不管怎么说精神值得能尊敬。
8 楼 chnlslc 2013-03-27 16:27
图片咋不能发啊

???
7 楼 chnlslc 2013-03-27 16:26
6 楼 chnlslc 2013-03-27 14:08
 
5 楼 wushexu 2013-03-27 13:10
有的开源是重复发明轮子,有的则是创造更好用(或更适合)的轮子。我刚开源了一个rails项目:项目管理平台
http://www.iteye.com/topic/1129644
4 楼 javay 2013-03-27 09:04
我去。。。看完想吐。
3 楼 PetriNet 2013-03-26 23:09
无论谁,编写出的软件如果不能提升人类生活品质,就是罪人
2 楼 lightgjc1 2013-03-26 22:55
感觉对开源的理解更进一步了!
1 楼 yunzhu 2013-03-26 12:46
这么个排版发,让人怎么看啊

发表评论

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

相关推荐

  • 开源社区的激励模型

    | 作者:庄表伟|编辑:刘雪洁| 设计:宋传琪| 责编:王玥敏缘起开源社区里的激励模型,其实是一个经久不衰的老话题。4年多以前,我还写过一篇《区块链技术是否会终结开源时代?》,也是在讨论...

  • 2022开源之夏 昇思MindSpore社区活动经验分享

    我首先会对本次活动和参与的社区进行简单的介绍,接着详细介绍项目申报和撰写项目申请书的相关经验,再以我本次参与的CPU算子开发项目为例介绍项目开发经验,然后介绍一下我基于本次“开源之夏”活动所做的拓展与...

  • 关于开源的五个问题--北航开源软件开发导论第一次作业

    北航开源软件开发导论的第一次作业

  • 如何看待国内开源现状?贾扬清、李沐、陈天奇等大牛如是说

    选自知乎机器之心报道陈天奇、李沐、贾扬清、老师木等人如何看待国内开源现状?这篇文章也许能为 AI 社区的开发者们提供洞见。近年来,「开源」成为了国内科技公司对外传播技术实力的热门词汇。特...

  • 开源十问, 社区新人快速上手指南

    如何成长为开源社区的大牛?怎样深度参与开源项目?开发者如何通过参与开源项目提升技术?项目捐给开源软件基金会与不捐开源软件给基金会,有什么区别?开源社区如何能持续发展?开放治理对社区的成长到底意味着什么...

  • 工程师如何对待开源

    据统计,每个工程师在企业内部进行研发和运维等工作的时候,每年会接触到上千款开源软件, 如果是以 Java 或 JavaSciprt 为主要程序开发语言的工程师,则接触到的开源软件数量更多,在万级别甚至十万级别。...

  • 几大主流区块链开源技术的比较

    比特币(BitCoin)是最早也是全球最广泛使用和真正意义的去中心化区块链技术,因此他的开源技术体系非常值得参考。 比特币区块链的核心技术框架采用C++语言开发,共识算法采用POW算法,工作量(挖矿)证明获得记账...

  • 拥抱开源

    大约是4年前,我们要去浙江移动去竞标一个项目,产品中需要一个流程引擎负责工作流的运转,竞标会上针对这个流程引擎的实现方案展开了激烈的讨论。   * 我们给出的引擎是开源的activiti,成本主要在对activiti的...

  • 程序员搞开源,读什么书最合适?

    认识开源,读什么书?

  • 国内外开源分析及实践

    开源时机已来,国内开源从业者应抓住这个契机,摸索出一条符合国内开源切实可行之路。

  • 解秘开源与社区

    解秘开源与社区前言开源社区为什么要加入开源社区?加入社区的门槛有哪些?加入社区你能做什么?加入社区如何正确互动提问?加入社区有哪些收益写在最后 前言 开源已经无处不在,当下已经很难找到一款软件是完全和...

  • 开源赋能 普惠未来——回顾全球数字经济大会及开放原子全球开源峰会(Intel专题)

    这次峰会展示了开源社区的创新力量和合作精神,以及开源技术在数字经济中的巨大潜力。峰会汇聚了全球开源社区的成员,他们分享了各自的项目和经验,展示了开源技术在人工智能、物联网等领域的应用。这些创新解决方案...

  • 贾扬清谈国内开源社区的现状

    @转自知乎 谢邀,在赶飞机的路上( @夏威Wei Xia 看过来)。...我自己做开源其实并没有很多前辈来得久,基本上就是随着 AI 这一波,大家有个核心的痛点就是没有好的软件框架可以用(那位说下载matlab zip包...

  • 开源贡献难吗?

    本文整理自字节跳动 Flink SQL 技术负责人李本超在 CommunityOverCode Asia 2023 上的 Keynote 演讲,李本超根据自己在开源社区的贡献经历,跟大家分享《开源贡献难吗?》这一主题演讲。

  • 发卡系统源码无授权版 带十多套模板

    发卡系统源码无授权版 带十多套模板

  • STM32F103系列PWM输出应用之纸短情长音乐——无源蜂鸣器.rar

    STM32F103系列PWM输出应用之纸短情长音乐——无源蜂鸣器

  • 基于matlab开发的rvm回归预测 RVM采取是与支持向量机相同的函数形式稀疏概率模型,对未知函数进行预测或分类.rar

    基于matlab开发的rvm回归预测 RVM采取是与支持向量机相同的函数形式稀疏概率模型,对未知函数进行预测或分类.rar

  • STM32 CubeMX FreeRtos系统 基于lwRB通用环形缓冲区的串口非阻塞发送

    STM32工具 CubeMX 使用FreeRtos系统 基于lwRB通用环形缓冲区的串口非阻塞发送,程序使用printf,通过重定向fputc函数,将发送数据保存在FIFO中,可以在中断中调用printf,保证了系统的线程安全和中断安全,将发送任务放在线程中。LwRB有两个指针一个r读指,一个w写指针,底层采用原子操作,不需要用到锁,保证了线程安全,最大的好处是它是支持DMA的,为CPU减负。

  • 整站程序EasyJF官网全站源码-easyjfcom-src.rar

    EasyJF官网全站源码_easyjfcom_src.rar是一个针对计算机专业的JSP源码资料包,它包含了丰富的内容和功能,旨在帮助开发人员快速构建和管理网站。这个源码包基于Java技术栈,使用JSP(JavaServer Pages)作为前端页面渲染技术,结合了Servlet、JavaBean等后端组件,为开发者提供了一个稳定、高效的开发环境。通过使用这个源码包,开发者可以快速搭建一个具有基本功能的网站建设平台。它提供了用户注册、登录、权限管理等基本功能,同时也支持文章发布、分类管理、评论互动等常见内容管理操作。此外,源码包还包含了一些实用的辅助工具,如文件上传、数据导出等,方便开发者进行网站的维护和管理。在界面设计方面,EasyJF官网全站源码采用了简洁、易用的设计风格,使得用户可以轻松上手并进行个性化定制。同时,它还提供了一些可扩展的插件和模板,开发者可以根据自己的需求进行修改和扩展,实现更多的功能和效果。总之,EasyJF官网全站源码_easyjfcom_src.rar是一个功能强大、易于使用的计算机专业JSP源码资料包,适用于各类网站建设项目。无论是初学者还是有经验的开发者

Global site tag (gtag.js) - Google Analytics