`
jnn
  • 浏览: 287692 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

开源软件使用的几个阶段

阅读更多

 

 

阶段一, 使用开源软件完成自己的日常工作。

虽然开源软件与其他商业软件相比较没有花哨的用户界面,没有完善的用户使用文档,但是这些开源软件可以满足大家日常工作的绝大部分要求。最重要的是这些开源软件对于最终用户来说都是可以无条件免费使用。

 

这一阶段的门槛很低。大家使用搜索引擎很容易就能找到介绍相关的软件使用的页面或者是日志。大家只要把相关的软件发行版本下载本地就能马上开始使用了。

 

对于直接面向终端用户使用开源软来说,这一阶段的用户数是最大的,他们是开源用户社区的基础。对于这一阶段的用户来说,软件的可用行,易用性是他们最关心的问题。这些用户经过一段时间的培养,或者当他们对开源软件有了更高程度定制需求的话,他们很容就进入了第二阶段。

 

阶段二, 修改开源软件满足自己的需要。

开源软件的最大好处就是代码公开,用户在遵守相关开源软件许可的前提下,可以根据自己的需要修改代码。通过修改代码,用户可以获得对开源软件掌控权。这也是目前国内厂商以及高校科研机构所看重的,当然这也是培养软件研发的队伍的一个行之有效的手段。

 

在最近召开的开源大会上,我见到很多这样的用户:他们可能因为需要解决企业计算领域的问题,需要将多个开源软件结合在一起搭建业务系统,并且需要针对其特定功能对这些开源软件进行修改来满足自己的需求;他们有可能是以为项目课题的需要, 对某个开源软件进行了比较深入的研究之后,将其定制,包装之后。

 

对于这样的用户来说,开源软件就变成一个一个的砖块。用户只需要对这些砖块进行少量修补就可以搭建出满足自己的需求应用。听起来这视乎是一条阳关大道,但是当你深入下去的时候,你会发现前面的道路充满的荆棘。 

 

首先是缺乏技术支持,虽然大多数的开源项目都有文档,以及用户邮件列表提供免费的支持,但这些与商业软件提供的用户手册以及技术支持来说还是相距太远。如果你的问题很棘手,或者是项目进度很紧张的情况下,这样的免费支持是很难满足你的要求。

 

其次是要在漫漫代码中定位问题,寻找解决方案是一个比较漫长的过程,其时间成本是可想而知的,当然如果你有足够的时间和精力的话,这样的投入也是值得的。

 

最后就是版本管理的问题。如果你对开源软件代码进行修改,同时这些修改没有进入开源项目的主分支上,那么你就需要维护一个自己的版本。版本管理的成本随着你对开源软件使用和修改的程度一同增加,而且这样的成本在开始使用的时候 隐形的,随着时间的推移,成本会不断增大。这也是开源软件使用第三阶段试图解决的一个重要问题。

 

阶段三, 参与开源软件开发,在分享的知识的同时收获成长和快乐。

 

在开源社区里面有一句话,当你奉献的同时,你会收获更多。

 

拿前面提到的第二阶段版本管理来说, 如果你能把你的修改提交到开源项目的主线上,那你的版本维护成本就趋向于零;如果你在本地维护修改版本的话,一旦主线上进行的了相关bug的修改,你都需要同步过来,否则你本地版本的维护和升级都要你自己来做。

 

软件开发是一个螺旋上升的过程,这个过程需要开发者和用户直接不断反馈,磨合。很难想象某一个软件在1.0的时候就能把所有的功能都实现完。这也是众多软件开发者愿意参与到开源软件开发的一个重要原因。他们在扮演用户的同时也扮演着开发者的角色。如果他们不满意开源软件的某一项功能,他们会圈起袖子直接修改代码,并且将自己的修改反馈到社区,而不是锁在柜子里面让它烂掉。 这样的好处是今天修改的内容,可能一个小时,或者明天就有人会提供反馈,在不断的思维碰撞中,大家能想出更好的想法。 开源开发者虽然都分布在不同的地方,但是这样的共享协作开发机制,从分享代码的基础上最大限度的降低了开源软件开发知识沟通成本,通过审查代码,用户直接反馈等多种手段保证了软件研发和创新的效率。

 

目前国内进入这一阶段的开源用户还很少,有大量的用户还只停留在第二阶段。也许他们比较羞涩没有打算将自己的成果分享出来, 也许他们还没有体会到把这些成果分享出来会收获更多的乐趣。但是我有理由相信他们很快会进入到第三阶段的,因为只要经过适当的引导,由第二阶段进入到第三阶段是一个很自然的过程。

2
1
分享到:
评论
4 楼 shuangpan.zhang 2011-10-21  
估计中国市场上,能讲自己修改后的框架 共享出来 是比较难的~

我觉的大家在看重利益的同时 其实也失去了更大的利益!!!

希望以后的主流开源框架是国人开发出来的。

愿中国IT行业越走越好~
3 楼 zimingforever 2011-10-21  
开源也包含些走开源路线的门槛低的软件
2 楼 jnn 2011-10-21  
开源软件的生存之本在于开源软件社区的壮大,你表述的只是一个场景。

开源软件的最大魅力在于用户有充分的控制权,只要用户愿意,就能深究代码,长久下去不会被厂商所左右。
1 楼 comsci 2011-10-21  
开源软件的生存模型其实就是   

1:用免费的名义引诱用户以极低的成本进入这个领域

2:以二次开发的名义让用户陷入大量的代码堆里面,无法自拔

3:因为用户无法摆脱免费的诱惑,所以花钱请所谓开源软件专家来做二次开发

4:用户从此离不开开源软件。。开源软件和专家一起变成另外一种商业软件模式

相关推荐

    开源技术发展介绍开源技术发展介绍.pptx

    开源软件的发展历程可以分为三个阶段: * 早期阶段:20世纪60年代至80年代,开源软件的概念刚刚出现,但还没有形成规模。 * 发展阶段:90年代至2000年代,开源软件开始得到广泛应用,成立了许多开源社区和组织。 * ...

    开源软件在运维中的实战

    具体来说,主要包括以下几个方面: 1. **非标准化操作**:早期阶段的运维工作中存在着大量非标准化的操作,导致效率低下且容易出现错误。 2. **资产管理混乱**:硬件采购缺乏统一的标准,导致资产管理和维护工作变...

    人工智能开源软件发展白皮书2018版

    《人工智能开源软件发展白皮书2018版》详细阐述了在21世纪这个信息爆炸的时代,人工智能(AI)技术的崛起与开源软件的紧密结合,如何推动了全球科技发展的新纪元。这份报告深入剖析了人工智能开源软件的现状、挑战、...

    基于开源软件的软件工程实践教学.docx

    通常,教师会指定几个熟悉的开源项目作为作业基础,而非让学生根据个人兴趣自由选择。同时,学生在大规模软件项目开发经验上的欠缺,也使他们难以系统地学习如何参与和贡献于开源社区。 企业发起的项目,如谷歌编程...

    中国开源软件产业发展洞察.pptx

    中国的开源软件产业正处在快速发展的阶段,无论是从技术创新的角度还是从商业模式的探索来看,都有着巨大的潜力和机遇。通过对开源软件的基本概念、许可证类型及其商用性、以及产业生态的深入了解,我们可以更好地...

    全流程一体化开源软件管理与实践.pdf

    总结来说,《全流程一体化开源软件管理与实践》所探讨的知识点主要涵盖以下几个方面: 1. 开源技术在金融行业的应用和重要性,特别是对银行业务创新和数字化转型的推动作用。 2. 农业银行的全流程一体化开源软件...

    计算机视觉开源软件发展综述.docx

    开源软件在计算机视觉领域的核心作用体现在以下几个方面: 1.1 促进技术创新:开源软件鼓励社区参与,开发者可以共享代码、交流想法,从而加速技术的迭代和创新。 1.2 提供研究基础:许多开源库提供了预训练模型和...

    开源仿真软件NgSpice使用探索小结

    在使用NgSpice的过程中,有几个关键知识点值得深入探讨: 1. **安装与配置**:首先,你需要从官方仓库或者第三方源下载NgSpice的源代码或预编译版本。根据你的操作系统(如Linux、Windows或MacOS),遵循相应的安装...

    开源时代5-8 开源时代5-8

    理解不同许可证的含义对于合理使用开源软件至关重要。 3. **协作与贡献**:在开源世界中,任何人都可以参与到项目中,提交代码、报告bug或提供文档支持。这种开放的协作模式促进了技术的共享,也鼓励了个人和企业的...

    企业的开源战略.pdf

    在全球敏捷运维峰会广州站上,王兴宇分享了企业如何正确“打开”开源软件,强调了企业实践中的几个阶段,并且强调了“正确打开”开源软件的必要性。在企业中实践开源战略,不仅可以提高效率,降低成本,还能够通过...

    java开源包10

    Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司的开源项目。 SwingSet 增强现实标记跟踪软件库 AccuTag AccuTag是AR(增强现实)标记跟踪软件库。它利用GPGPU的快速和...

    java开源包8

    Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司的开源项目。 SwingSet 增强现实标记跟踪软件库 AccuTag AccuTag是AR(增强现实)标记跟踪软件库。它利用GPGPU的快速和...

    开源2008年第十一期

    1. **开源软件的定义与意义**:开源,即开放源代码,允许用户自由地查看、使用、修改和分发软件的源代码。这种模式促进了技术的快速迭代和创新,降低了开发成本,并推动了全球范围内的协作。 2. **Linux操作系统**...

    一个开源的地震处理系统

    地震数据处理主要包括以下几个核心步骤: 1. **预处理**:这是地震数据处理的第一步,通常涉及去除噪声、校正偏移、检测事件等。开源地震处理系统可能包含一系列工具,用于去除仪器响应、进行时间同步、平滑滤波...

    java开源包6

    Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司的开源项目。 SwingSet 增强现实标记跟踪软件库 AccuTag AccuTag是AR(增强现实)标记跟踪软件库。它利用GPGPU的快速和...

    java开源包9

    Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司的开源项目。 SwingSet 增强现实标记跟踪软件库 AccuTag AccuTag是AR(增强现实)标记跟踪软件库。它利用GPGPU的快速和...

    金山卫士开源代码

    通过分析开源代码,我们可以了解到以下几个关键知识点: 1. **反病毒引擎**:金山卫士的反病毒引擎是其核心部分,通常包含启发式扫描、行为阻断、特征码匹配等多种技术。开源代码中可能涉及如何检测和清除恶意程序...

    OSTC开源技术大会-腾讯陈磊《腾讯开源战略》

    腾讯对开源软件的态度经历了几个阶段,从最初的严格保密管理,到后来的内部公众开源平台,再到目前的开放开源生态,这种变化体现了腾讯在思维意识上的转变以及交流的价值。 开源软件是互联网技术发展的重要基础,它...

    开源时代200809(创刊号)

    这本创刊号的内容可能涵盖了以下几个关键知识点: 1. **开源软件介绍**:可能会详细介绍一些流行的开源项目,如Linux操作系统、Apache HTTP Server、Perl、Python、PHP等编程语言,以及MySQL、PostgreSQL等数据库...

Global site tag (gtag.js) - Google Analytics