开源社区“大牛”关于“开源”的大讨论 -凯发k8国际

2013-03-26  编辑 wangguo 评论(13条) 有33290人浏览
开源软件在当今软件市场中的重要性逐渐凸显,越来越多的企业和开发者选择将自己的产品以开源形式发布,也有越来越多的企业开始采用开源软件。

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

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

  • (张志昊,nutz作者,注:另一位作者正在赶来)
  • (中国openstack用户组管理员、社区经理,息壤开源社区共同发起人)
  • (apache多个开源项目 camel、cxf、servicemix、activemq 专职贡献者)
  • (息壤开源社区发起人)
  • (程旭文,息壤开源社区发起人,开源力量社区平台创建人,“开源力量公开课”创办人)

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

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

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

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

早期开源软件有严格统一的定义,osi对开源软件定义的十个条款基本上算是一个事实的标准,但现在业界也有把free and open source software(简称foos)统称为广义的开源软件。

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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


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


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

杜玉杰    写道
给zozoh 1。

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

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


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


zozoh    写道
起码我是。

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

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

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

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

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

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

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

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

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

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


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

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

姜宁    写道
我算是全职吧。

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

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

您从开源中得到了什么?


zozoh    写道
快乐。

杜玉杰    写道
工作的乐趣。

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

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

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

该如何选择开源协议?


zozoh    写道
我们选最宽松的。

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

姜宁    写道
gpl give me everything, mpl give me something, asl give me credit。

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

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

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

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


zozoh    写道
wendal 比较在行。

杜玉杰    写道
  • top1 gnu项目,该项目的发起者不仅定义了gnu gpl许可协议,同时也是自由软件的精神领袖,该项目对开源运动影响深远。
  • top2 linux项目,世界上最具影响力的开源项目,开源社区典范。
  • top3 apache项目,其背后的基金会以及其运作模式对开源社区影响深远。
  • top4 git项目,正影响无数开发者的工作方式。
  • top5 openstack项目,不解释了。

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

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

程开源    写道
  • no1. gcc ,早期开源产品的妈,没有她,好多开源产品无从谈起;
  • no2. linux开源产品的家 ;
  • no.3 mysql 开源产品的肚子
  • ……

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


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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

程开源    写道
放出代码前,想清楚,你是想通过开源赚钱呢,还是分享,如果是前者,按商业的作法玩开源,就像mysql, jboss 一样;如果后者,请多学习一下apache ,linux kernel的作法。 末了,希望大家多参与到我们发起的中来。



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

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

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



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

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

发表评论

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

相关推荐

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

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

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

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

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

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

  • openstack当今有许多的应用案例,利用它部署的大规模项目逐渐增多,同时,在发展过程中也存在一些问题,今天主要和大家谈谈自己的经历、入门openstack,以及解决技术问题的思考和看法。 初识openstack,为中国开源...

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

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

  • 认识开源,读什么书?

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

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

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

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

  • 管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: 用于学校或教育机构的学生信息、教职员工信息、课程管理、成绩记录、考勤管理等。学校管理系统帮助提高学校的组织效率和信息管理水平。 人力资源管理系统(hrm): 用于处理组织内的人事信息,包括员工招聘、培训记录、薪资管理、绩效评估等。hrm系统有助于企业更有效地管理人力资源,提高员工的工作效率和满意度。 库存管理系统: 用于追踪和管理商品或原材料的库存。这种系统可以帮助企业避免库存过剩或不足的问题,提高供应链的效率。 客户关系管理系统(crm): 用于管理与客户之间的关系,包括客户信息、沟通记录、销售机会跟踪等。crm系统有助于企业更好地理解客户需求,提高客户满意度和保留率。 医院管理系统: 用于管理医院或医疗机构的患者信息、医生排班、药品库存等。这种系统可以提高医疗服务的质量和效率。 财务管理系统: 用于记录和管理组织的财务信息,包括会计凭证、财务报表、预算管理等。财务管理系统

  • gb2312字符集 作用:国家简体中文字符集,兼容ascii。 位数:使用2个字节表示,能表示7445个符号,包括6763个汉字,几乎覆盖所有高频率汉字。 范围:高字节从a1到f7, 低字节从a1到fe。将高字节和低字节分别加上0xa0即可得到编码。 gbk字符集 作用:它是gb2312的扩展,加入对繁体字的支持,兼容gb2312。 位数:使用2个字节表示,可表示21886个字符。 范围:高字节从81到fe,低字节从40到fe。 gb18030字符集 作用:它解决了中文、日文、朝鲜语等的编码,兼容gbk。 位数:它采用变字节表示(1 ascii,2,4字节)。可表示27484个文字。 范围:1字节从00到7f; 2字节高字节从81到fe,低字节从40到7e和80到fe;4字节第一三字节从81到fe,第二四字节从30到39。

  • 毕业设计,安卓app,基于java开发的学生成绩课件管理系统app,包括pc端和安卓anroid手机app,内含java完整源码 安卓andriod学生成绩课件管理系统 系统开发环境: windows myclipse(服务器端) eclipse(手机客户端) mysql数据库 服务器也可以用eclipse或者idea等工具,客户端也可以采用android studio工具! 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,mvc设计思想! 服务器和客户端数据通信格式:json格式,采用servlet方式 【服务器端采用ssh框架,请自己启动tomcat服务器,hibernate会自动生成数据库表的哈!】 hibernate生成数据库表后,只需要在admin管理员表中加个测试账号密码就可以登录后台了哈! 下面是数据库的字段说明: 班级: 班级编号,班级名称,开办日期,班主任 学生: 学号,登录密码,所在班级,姓名,性别,出生日期,学生照片,联系电话,家庭地址 老师: 教师编号,登录密码,姓名,性别,出生日期,联系电话,邮件,地址,

  • 管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: 用于学校或教育机构的学生信息、教职员工信息、课程管理、成绩记录、考勤管理等。学校管理系统帮助提高学校的组织效率和信息管理水平。 人力资源管理系统(hrm): 用于处理组织内的人事信息,包括员工招聘、培训记录、薪资管理、绩效评估等。hrm系统有助于企业更有效地管理人力资源,提高员工的工作效率和满意度。 库存管理系统: 用于追踪和管理商品或原材料的库存。这种系统可以帮助企业避免库存过剩或不足的问题,提高供应链的效率。 客户关系管理系统(crm): 用于管理与客户之间的关系,包括客户信息、沟通记录、销售机会跟踪等。crm系统有助于企业更好地理解客户需求,提高客户满意度和保留率。 医院管理系统: 用于管理医院或医疗机构的患者信息、医生排班、药品库存等。这种系统可以提高医疗服务的质量和效率。 财务管理系统: 用于记录和管理组织的财务信息,包括会计凭证、财务报表、预算管理等。财务管理系统

  • 软件开发设计:php、qt、应用软件开发、系统软件开发、移动应用开发、网站开发c 、java、python、web、c#等语言的项目开发与学习资料 硬件与设备:单片机、eda、proteus、rtos、包括计算机硬件、服务器、网络设备、存储设备、移动设备等 操作系统:linux、ios、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:数据集、包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。

global site tag (gtag.js) - google analytics
网站地图