`

也谈开源软件,开源并不容易做,更不是免费的午餐,应当如何发展开源

阅读更多

 

       我是做商业软件设计开发的,开源软件给我的印象并不好。sf.net上的东西,好的不多,多数烂兮兮的,没有思路,没有清晰的概念,缺乏规划和文档,模块设计和代码考虑情况太少太少,可读性和可理解性几乎为零。

 

     更不用提国内的了,到网上一搜,框架满天飞,实际的东西很少,翻来覆去都是那一套。这里还不说只是把国外的东西介绍和翻译到国内的这种情况了,只要不是“贪天之功,以为己力”,也还是对大家都有好处的。

 

     对于开源,我感觉,只有商业软件能做得好了,才能说得上开源软件的发展。做得东西太烂,给自己一个辩解说是开源的,这没有任何意思。开源软件和商业化的开发有千丝万缕的联系,有着本质的关联。

    做开源,需要对开源这件事本身的背景和需要有足够清晰的了解才说得上,并且,开源的话,也要有自己的发展路线,有自己的需求和需求管理,有清晰的概念、好的架构,优雅的实现和丰富的测试,不是一两个人心血来潮就搞一个的,那样肯定搞不好。


    因为国内商业软件领域其实做得不好,所以,对开源,也没有什么迫切的需求,也不能催生开源软件发展的环境,所以,我想,开源发展还有待时日。我是个做商业软件的,在这个阶段里,努力把自己的工作做好就行了。这本身就是对开源的一种间接支持。


    再有,其实做开源比作商业软件更需要水平,控制需求的水平(包括需求的收集、分析、剪裁、变更),设计的水平(架构、模块、文档的能力、变更的控制)、代码的水平(写出简洁优雅的实现)。可不是掌握几个流行的框架就能作出来的,或者说了解掌握了Java或C++就能做到的。尤其是,设计者和开发者要以商业软件对可延续性、可追溯性、质量至上的要求来要求来要求自己的开源软件,这是正道,如果资源不足或者时间不足,一是苦自己,挤时间,二是找一些真正志同道合的朋友分担,三是放弃;降低要求凑合做肯定是最坏的选择

 

   再有,态度决定一切,做开源,目的是什么?兴趣吗?做商业软件不容易所以独辟蹊径吗?不愁生活打算做点事业吗?帮助别人做义工吗?等待商业软件厂商的收购吗?想把技术研究的成功贡献给社会吗?我倒不是说哪种目的一定是对的,但是目的不同,做事情的方式一定有所不同,做出的东西也一定大不一样。

 

    最后提一句,不管做什么方面的设计开发,世界上没有免费的午餐,自己的问题还得自己上心,自己努力寻求解决,一定要摒弃速食主义的做法,一定不要为了节省点代码和时间,用一堆别人的代码(开源和免费)来构建自己的产品(或许,特殊情况下有些项目会这么做,也很难责怪)(即便是优秀的开源产品,例如Apache、Spring、Hibernate还不一定适用于自己的场景呢,何况多数开源软件本身设计和实现很一般)。人们不这么想不这么做了,开源软件也就能得到发展了

 

 

0
4
分享到:
评论

相关推荐

    开源的钱途 第一次活动:谈新的技术趋势和我们面临的机会

    3. **商业机遇**:开源并不意味着免费午餐,相反,它为服务、咨询、定制化开发、支持和培训等创造了商机。例如,Red Hat公司就成功地通过提供企业级的开源解决方案实现了盈利。 4. **开源工具的使用**:开发者可以...

    开源MySQL分布式中间件剖析.pptx

    dble是一款基于MyCat的开源分布式中间件,它优化了代码结构,修复了上百个已知Bug,并增强了核心功能,如分布式事务和SQL支持。此外,dble还对复杂查询进行了支持和改进,同时减少了非核心功能,如异构数据库的支持...

    linux常见问题集合,英文版,汇集了linux的常见问题

    虽然Linux本身是免费的,但这并不意味着使用Linux没有任何成本。用户可能需要投入时间去学习如何使用Linux,以及在遇到问题时寻求解决方案。然而,从长期来看,Linux可以帮助减少软件许可费用等方面的开支。 **0.9 ...

    eMule TK4 Mod-开源

    这有助于打破“免费午餐”现象,即某些用户只下载而不上传,从而平衡网络资源的分配。 附加信用系统是eMule TK4 Mod的特色之一,它鼓励用户积极上传文件以获得更高的信用积分。这样的设计不仅促进了社区的公平性,...

    VMware 10的注册机

    7. **替代方案**:对于那些经济上有困难但又需要使用 VMware 的用户,可以考虑使用 VMware 提供的免费产品,如 VMware Player,或者寻找其他开源虚拟化软件,如 VirtualBox,这些选项同样能够满足基本的虚拟化需求。...

    Linux新手系统管理原指南.pdf

    - 免费软件并不意味着质量低下或功能受限。开源项目往往由全球范围内的开发者共同维护,其质量和可靠性得到广泛认可。 - **1.8 天底下根本没有免费的午餐** - 开源软件背后的商业模式多样,包括技术支持服务收费...

    Android系统收费不过是时间问题.pdf

    实际上,Android系统至今仍保持开源且免费的状态,收费仅针对特定的服务和软件。 中国作为Android用户基数最大的国家,如果谷歌对中国手机厂商实施收费,将会对市场带来显著影响。一方面,厂商可能会选择压缩利润...

    《计算机基础与应用(第五版)》项目三任务3移动终端应用.pptx

    接着,下载并安装了导航软件,如百度地图,输入目的地获取最佳路线,并在线购票;再者,他使用出行服务应用查询八达岭长城的开放时间,通过应用订购门票和午餐。这一过程充分展示了移动终端在现实生活中的实用性。 ...

    加特技的无限循环滚动视图

    So,我的第一个"作品",就这样出现的,虽然功能并不复杂,但我也依然非常开心,在此过程中,也顺便学习了git的一些用法,也知道了如何把自己的代码加入cocoapods豪华午餐,中间也遇到了一些问题,自己也解决了一些,还有一些...

    awesome-mpc:精选的多方计算资源和链接列表

    它被设计为一个中心位置,每个人都可以找到专为MPC设计的开源软件以及该主题的入门资料。 此外,该列表按字母顺序给出,并分为积极维护或最近开发的库类别。 请随时使用您知道的任何MPC软件或资源进行拉取请求,...

    UU:北京午饭科技有限公司

    【UU:北京午饭科技有限公司】是一家专注于技术创新的科技企业,其项目主要基于Java技术栈进行开发。从提供的信息来看,"UU"可能是该公司的产品或项目名称,而"README.md"是一个标准的Markdown格式文件,通常包含项目...

    《APM演进之路》-胡彪.pdf

    然而随着技术的不断发展和业务的变化,部分机器的利用率并不高,这就需要更高效的方式来管理和优化这些资源。此外,国内移动网络环境非常复杂,包括WIFI、4G、3G、2.5G(Edge)、2G等多种网络共存;Android系统的碎片...

    陕西省西安市庆安高级中学2015_2016学年高一英语第一次月考试题

    然而,由于提供的信息并不涉及具体的IT知识点,无法进一步展开详细的IT知识讲解。如果需要讨论与IT相关的主题,例如网络技术、编程语言、数据安全或者人工智能等,请提供更具体的信息,这样我可以生成相关的详细知识...

    LunchTime:午餐地方选举制度

    本文将深入探讨"午餐地方选举制度"这个项目,它使用了多种核心技术,包括Java Server Faces (JSF)、Primefaces、Java Persistence API (JPA)、Hibernate、Spring框架、Spring Security、JUnit、Mockito以及MySQL...

    (完整)小学班级日志.pdf

    9. **数据库软件选择**:对于小学这样的环境,可以选择用户友好的开源数据库软件,如SQLite,它不需要专门的服务器,适合小型应用。 10. **接口集成**:如果学校有更复杂的管理系统,班级日志数据库可以与其他系统...

    koabrunch:早午餐的贵重物品

    在IT行业中,"koabrunch"似乎并不是一个常见的技术术语或编程框架,但我们可以将其视为一个项目或应用的名称,它可能与早午餐相关的在线服务或者餐饮业的数字化解决方案有关。标题中的“贵重物品”可能暗示这个项目...

    PMCL:Python Minecraft午餐者

    这个启动器为玩家提供了一个简洁、便捷的方式来启动Minecraft游戏,而不是依赖官方的Java版本启动器。它允许用户通过Python环境来运行和管理他们的Minecraft客户端,从而提供了一种不同的游戏体验。 **Python基础...

    2019年高考英语一轮复习专题02Healthyeating押题专练新人教版必修3

    然而,这些信息并不直接涉及IT领域的知识。不过,我们可以从【部分内容】中提取一些普遍适用的生活习惯和理财观念,并结合IT行业的角度进行延展。 【部分内容】讲述的是作者如何努力养成带午餐的习惯,这个习惯带来...

    qidalunch:企大午餐点餐系统

    这个系统可能包含了用户管理、菜品管理、订单处理、支付接口集成等核心功能,使得员工可以在工作日轻松预订午餐,同时也减轻了食堂工作人员的管理压力。 在PHP开发中,该系统可能采用了MVC(Model-View-Controller...

    火爆朋友圈的今天中午吃什么源码 v1.0

    这个源码的开源性质意味着任何人都可以查看、学习、甚至根据自己的需求进行定制,这也正是开源社区的魅力所在。对于开发者而言,这样的项目可以作为学习和实践前端开发技能的好例子,而对于普通用户,他们可以通过这...

Global site tag (gtag.js) - Google Analytics