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

 

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

 

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

 

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

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


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


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

 

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

 

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

 

 

你可能感兴趣的:(开源 架构 设计 开发 未来)