谈谈你对开源精神的理解以及看法?

SF之前发布的iPhone移动应用,完全开源;同时SF团队也在维护和开发Typecho这款开源博客软件(全新的版本正在加班加点开发中);在SF组织的黑客马拉松比赛中,我们也一直鼓励开源和创新。SegmentFault 本身作为开源精神的推崇者以及实践者,我们希望中国的科技公司以及个人开发者在开源中受益的过程中,也能积极的参与到开源中!

  1. SF iOS应用开源地址:Mobile app: http://segmentfault.com/mobil...
  2. Typecho开源博客官网:http://typecho.org/
  3. Hackathon Hangzhou开源汇总:http://hackathon.segmentfault...
对象:所有SF注册用户(请在撰写答案时,留下自己的简单介绍)~
讨论内容:包括开源精神的理解以及看法,以及开源在中国的发展看法、顾虑、现状、做法或者案例,遇到的问题等等
欢迎大家积极参与,直接在此问题下回答,有任何疑问请使用评论功能。
阅读 29.8k
11 个回答

关于我 - 二线城市的苦逼前端工程师,除了网上没遇到过一个真正的同行,其实呢,我是个js程序员。
这是我的博客:http://www.tychio.net

开源

对于开源的理解,我大概可以分为这样几个阶段,我想现在也许仍有一些人是这样误解的:

  1. 开源是免费软件,随便使用,没有版权。
  2. 开源是开放源代码,随便拿来用,想修改就修改。
  3. 开源是个人开发的,没有公司,也没有版权,并且免费。
  4. 开源是一群人无偿开发的项目,域名大部分是.org的。
  5. 开源是谁都可以参加的项目,它由一个委员会主导。

然而现在,我觉得开源是一种去中心化的创造,让我们可以自由的发挥来满足创造欲,我理想的开源项目应该是没有leader没有核心的,甚至开源可以不是一个项目,它可以是一团代码或者一个半成品,就像自助餐桌上的菜品一样让人随时搭配享用或者二次烹饪,有的只是我们需要“吃”的这种需求。

而说到开源精神,那也许是一种给于和获取的平衡,有给于才能有获取,有获取才会有给于的动力。无需指责别人只会获取,我们应该懂得开源是一种创造方式,一个没有创造欲和创造力的人加入开源也是无用的。

中国

  1. 观念问题,中国许多公司或个人还是处于保守的观念中,认为自己创造的东西怎么能白给别人,我甚至见过,有人问如何把前端css和html代码不让别人下载到这样的问题。
  2. 缺乏交流,中国程序员普遍工作压力大,项目管理混乱,没有空余的经历和时间去融入开源,作出贡献,更不用说与别人的交流了,所以整体展现出了索取大于贡献的状况。我见过许多过去或现在的同事只想完成工作,而不去完善代码,也没有合适的方式与其他同行沟通交流。
  3. 版权问题,书,电影,音乐等传统版权问题都没有很好的解决,更不要说开源这种新概念的版权问题了,所以也很少有公司会去尝试开源,因为版权根本没有保障。

关于我:杭州电子科技大学.软件工程.freshman,学院社团“极客部落”创始人。
个人博客:http://www.pwhack.me


一年前的答案,更新一下:
关于我:杭州电子科技大学.软件工程.大三学生,学院社团啥的就不说了
最近在做一个创业项目,http://lydiabox.com


我对开源的理解和看法:

我成立的极客部落就是拥抱开源文化的,是的,开源是一种文化,而不仅限于开源这一特定的行为。我认为推动整个圈子发展的正是开源,开源是黑客们向技术垄断发起的挑战,是程序员们的饕餮狂欢。

更多理解和看法:

  • 发挥社区的力量,专才专用,每个团体或个人只专注于解决一个事情。
  • 因为前一点,往往能获得更高质量的代码。
  • 开源让这个世界更加美好,现在已经有硬件开源(比如微io)了,限制我们做事情的只有想象了。不久的将来电影中的科幻元素将通过程序员编写的代码变为现实。
  • 就程序员个人来说,参与开源项目能获得自我提升,而且这种提升与被老板逼迫写代码得到的是不一样的。
  • 关于开源和商业化的问题:对于与商业沾边的东西来说,该不该开源?答案很简单,通用模块开源,非通用模块不开源。只有通用模块才能帮助更多的人,产生更广泛的影响。从那些茫茫多的前端开源框架和类库中就能看出来,比如twitter的bootstrap,阿里的SeaJS等。
  • 另一方面,发挥社区的力量,有时还能提升商业价值。开源之后,能在开发者群体中获得更好的口碑。

顾虑:

我有一个同学,他说:

都开源了我们程序员还怎么赚钱啊,你要革自己的命啊?

讽刺的是,他最近专注的Android领域,就是开源项目,这个开源项目,以后也许他得靠这个开源项目赚钱呢。
这世上,有些人给予,有些人索取,甚至只知道索取。在浮躁的中国社会这样的人更多,这也许是造成大家对开源误解的一个原因。只懂得索取的人当然不会是开源的推动者。


一年前的答案,再补充一些:

  • 人类的就是通过不断地站在前人肩膀上来进步的,iphone不是苹果发明的,但是苹果把许多前人的成果整合起来,整合出了一部iphone。
  • 特斯拉最近开源了他们的专利,短期来看他们受到了损失,但是长期来看,整个行业的繁荣,收益的必定是他们,这其实是存量思维和增量思维的问题。
  • 开源从各方面助我成长,我从开源社区攫取了太多,等到我有能力了,我一定要好好回馈开源社区,让下一个新手也能快速成长。
新手上路,请多包涵

对开源精神的理解以及看法,开源在中国的发展看法、顾虑、现状、做法或者案例,遇到的问题等等。

对于这些,我曾经写过一篇文章:《当我谈开源时我谈些什么?

事实上,我现在的想法有所转变,多说无益,实干是真。有空的话:

  • 写一个开源项目,并持续维护
  • 写一份开源文档,以帮助他人
  • 试着用用人家的开源项目,并提供反馈

如此而已。

其实前贤早已讨论的明明白白了: Hacker文化简史
http://man.lupaworld.com/content/deve...

大家知道,俺是个自由软件原教旨主义自,看开源纯粹是没种的妥协行为!
- 当然,俺指的开源,不是开放源代码
- 而是开源软件这一概念,根本就是为了糊弄投资方将自由软件概念弱化后生造出来的一个词
- 再等进入中国,反复被定义后,早已失去了原本的思想,,,

就俺个人而言,基本认同老庄的态度:

"享受开源,其它随之而来!"

关于我:代码狗,编程界二把刀,培训界二道贩子。更多信息参见微博:http://weibo.com/qinjianxiang

我从2005年开始做开源软件,目前在开源世界的努力主要有两个方面:
一是可运行的开源软件,包括:

  1. Lotusphp/kiwiphp,lotusphp.googlecode.com, github.com/qinjx/lotusphp,这是我最重要的,投入心血最多,也是用户最多的开源作品。简单地说,是一个适合淘宝、雅虎这样门户级PHP项目的框架,主要特点是:组件式结构,各组件之间松散耦合;分布式数据库和分布式缓存;代码简洁,潜规则最少,对使用者技术要求最低,简单易学。lotusphp的详细介绍我会另外写一篇文章放在github上。
  2. puppet-example,puppet-example.googlecode.com,我最新做的开源项目。顾名思义,是一个puppet的示例项目,我创建它是用来让我一个人兼职管理一个电子商务网站,包括20多种服务器角色,100多台虚拟机。
  3. 还有一些存活周期不长的开源软件,放弃它们主要是我业余时间太有限,同时做这么多开源项目,肯定都做不好。有的领域是因为已经有很优秀的解决方案存在了,我没必要再做。有的领域没有优秀的方案存在,但我实在能力和精力有限,就暂搁置了。
  4. GreenAMP,一个面向Windows下的Apache、MySQL、PHP免安装套件。2005年创建,2006年放弃,不到10万次下载。放弃是因为xampp,ampps这些都做得挺好的。
  5. Lilyjs,一个javascript工具箱,类似jQuery。2006年创建,2007年放弃,在一个商业产品中有使用。放弃是因为jQuery、Prototype做得太好了,我的能力远不如他们,解决不了浏览器兼容的问题。
  6. blood orange,基于kiwiphp的应用软件,scm工具,思想先进,暂时没看到同样优秀的同类开源软件,精力所限,2009年创建,暂时搁下了,没完全放弃,也许过这两年能重新做起来。
  7. shycat,同样基于kiwiphp,网店融合软件,原本是要做成kiwiphp的demo应用,2010年创建,做了一个可运行的passport中心后完全放弃,因为做成shopex这样代价太大且没有需求,纯粹为框架做一个demo演示效费比太低。

除了这些,我也会在一些开源项目里小小地改动一些代码,提个小bug,回答一下用户问题啥的,总体来说,主要的精力都贡献给我自己创建的开源项目了,作为Founder和投入程度要比作为Commiter的高很多(是不是很俗气,呵呵)

二是开源文档、书籍,主要有:

  1. 《PHPer's Happiness》:https://github.com/qinjx/advX6Xphp_book,目前已完成的是PHP自动加载,这是质量最好,最详细的一个章节,其它的还停留在PPT和FreeMind大纲阶段。写文档这个事情,对归纳总结和书写能力要求非常非常高,比写代码还难,比写ppt现场演讲也难。所以,我先把演讲用的大纲放上来了,在线下演讲了接近100小时吧。这个不会放弃,要完全成形,可能是两三年以后了。
  2. 各种30分钟入门教程:https://github.com/qinjx/30min_guides,目前在写的是《iOS开发60分钟入门》,以前写在别的地方待整理(说是整理,其实就是重写了)的还有:Hadoop/hive 10 分钟、MapReduce 30分钟、PHPUnit 10分钟、DocBook 10分钟。。。
  3. PHP编码规范,以前放在lotusphp的wiki上的

还有一些科普性质的技术原理文章(例如GPS定位的原理),我也会写了放上来,针对那些和我一样不是计算机专业毕业、学习和理解能力比较差的同行,希望以浅显的语言传播一些知识。

-- 未完待续:周末写了两天代码眼睛疼,休息两天吧 --

节操回来了,继续更新。

我持续做开源项目(开源书籍也算,活跃在开源社区回答问题不算)的目的和感想:

  • 初衷:都是想为同行造福。最早做的GreenAMP,是想让那些初学PHP的人只用在搭环境上花10分钟。持续时间最长的Lotusphp,也是在这样的心境下诞生的,当时我已经预见到,将来总有一天,我不在编程第一线了,或者不在PHP编程岗位了,写一个开源框架,解决那些项目中通用的标准化问题,给PHP同行们留下一点有用的代码吧。这个念头,支撑着我坚持了7年。7年间,有4年我都没在PHP编程岗位上(甚至没有在编程岗位上),但我坚持焉了,虽然更新不多,项目一直活着。

引用不知道是谁说的一句话,“代码无用,思想无价”

如果你是写过代码的人,写过多年代码的人,就能明白这句话的意义;世界上成千上万的代码,我们不缺代码,代码只是你想出解决方案并实施后的最终结果中的一个(除了代码,还有文档,。。。。)
以上是对那些“开源即简单等于给你源代码”的人说的。

回到开源,我们只讨论现在的情况,开源是一个鼓励创新,帮助实现创新的工具,开源项目是一个能把无数程序员聚集在一起为同一个目标贡献并相互分享经验的东西。
所以,我同意h00w的回答,“开源的本质在于交流”

另外,我也认为开源和商业软件并无本质的冲突,更不用说总是有不懂装懂的人提到bill gates,好像他是开源的大敌。。。我知道Richard Stallman与Bill Gates相互不欣赏,但是这是人家的私事。

如果说国内的状况不适合开源,那你就加入国外的开源,我认为这不是什么悲催或者很大不了的事情,以后国内的环境好了,再说呗;话说国内无数目前都改变不了状态海了去了,各位蛋定。

新手上路,请多包涵

丛1991年就是FSF的会员,对我来说开源就是三件事:

  1. 可以打开看里面如何运作
  2. 可以修改他
  3. 可以传播我的修改

其他社区一些的都是在上面的三个原则下建立起来的。

之前在一个开源软件团队

开源
其实本质就是命运由自己掌握。

开源在中国的发展看法、顾虑、现状、做法或者案例,遇到的问题等等
开源目前已经被大众扭曲成“开源=免费”,在中国这种奇葩的国度,大众版权意识薄弱、维权成本高昂是非常现实的问题。

如果单靠用户自觉交授权费,是不现实的。针对不同的用户,设定不同的功能是一般常见的做法,通常都有会有个免费版。更多的是去做项目/技术服务了。

开源,并不意味着不负责,放半成品。反而有更高的要求:
1、技术是否过硬(架构设计稳定性、扩展性,上手简单)
2、技术本位思维转变成产品本位思维;
3、降低体验成本(初次体验免费或者非常便宜,支付无障碍)
4、其实销售人员/团队建设、渠道建设也很重要。
5、多接近用户,客服响应要及时。
6、团队作战,这已经不是个人英雄的时代了。小而精悍的团队战斗力非常大。

关于我:普通互联网PM一只,基本没有写代码的能力

我的开源经历:

  • 感兴趣

把玩程序是一个很有乐趣的事情,在免费空间商安装各种CMS、论坛程序,逐渐接触“开源”这个词

  • 敬仰

对极客精神心存敬畏,开始思考自己能做什么,于是翻译一些国外开源程序,或是做一些语言包,现在还能搜索到一些

  • 参与

意外接触到了他开发的magike博客程序,也认识了joyqi同学,后来有更多志同道合的人加入,就有了typecho

一点对开源的思考

  • 团队很重要
  1. 团队要有一个负责架构的核心人物,他的热情关系到项目的生命力
  2. 团队要小,需求要少,宁缺毋滥;
  3. 团队要有异步协作的能力,在国内做开源很难全职去做,需要能协调好团队的碎片时间
  • 需要及时得到反馈

社区的力量有时候不止在提交代码,更重要的是给团队及时的任何形式的反馈,项目的活力是开发者和用户双方贡献的

  • 活下来

任何时候都要先活下来,不排斥商业介入,有资源才能支撑梦想

对像我一样没什么开发能力的人说几句

  1. 找错大于提功能,文档大于代码
  2. 开源项目优缺点同样明显,功能全面往往平庸
  3. 帮助任何一个新手都是贡献
新手上路,请多包涵

关于我

其实不怎么了解开源,但是已经有点兴趣了。
我刚毕业,菜鸟一个。

为什么有兴趣

一切都是一个叫Minecraft的游戏引起的。

那个游戏的Mod非常多。其中有一个多人联机几乎必用的Mod叫Bukkit。它提供了多人联机的插件接口,可以方便的基于它制作插件,为多人联机增加游戏功能。Bukkit是非官方的,但是它的更新速度极快,最快时能在官方升级之后的几十分钟内跟上。

那些插件大部分是开源的,放在GitHub上。我也参与了一下,包括:对别人的工程提建议、修改别人的代码,以及自己发布插件、听取别人的意见。

高手们极有效率的讨论、提交、发布更新,这让我很震惊。世界各地的开发者因为兴趣在一起交流开发,这让我觉得很有趣。

所以,我的理解是

开源的本质在于交流。

我是不了解开源在中国的状况啦。但我觉得搞开源肯定需要一批有闲心有爱好喜欢唠嗑的程序员。

参与过几个开源项目的全过程。下面我简述下我的开源的个人理解:

-- 开源必须也要有资金支持,纯粹的开源是活不下去的,开源不是免费,而是一种Free & Share的精神。开源需要赚钱,这个跟开源精神没有矛盾。

-- 作为一个开源项目,必须用做商业软件的态度来对待,或者必须更精益求精,不能马虎,因为要对使用你产品的用户负责。

-- 一开始的架构很重要,开源产品最重要的是其扩展性如何,最大限度地放便第三方开发插件,组件,模块。提供一个完善的平台给用户与开发者。

-- 用户文档,开发文档的好坏直接决定了开源项目的品质,这部分工作应该占去50%的时间以及精力,没有一个好的文档,不能算一个真正的开源项目。开源不是只要开发代码,也需要用文档阐述表达你的思想。

-- 社区是重中之重,不提供用户支持的开源项目没有存在的意义,因为没有用户会继续使用你的产品。

目前来看,国内行业内总体缺少Free & Share的精神,这个我个人觉得是文化决定的,怪不得谁。希望未来逐渐地会有所变化。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
极客观点
子站问答
访问
宣传栏