前几篇都着重在写Java和.NET社区的一些不同之处,也对二者做了一些比较。眼下呢,先休息一下,谈谈开源和不开源(为了对仗工整,叫闭源吧)的一些事情。也许不算什么,也许算点什么。这篇文章主要不是写技术的事情,而是谈一些和项目有关的问题。

古人云,存在即合理。也就是说,一个事物能够存在并坚持一段时间,乃至取得成功,必然是有其合理性存在的。不用找那么多理由来解释它的合理性或者不合理性,毕竟一件事情总有两个方面,总有人看的顺眼有人看不顺眼。很多年轻人都喜欢争个面红耳赤,非要辩个输赢出来,但是却不知道,实际上很多事情是没有对错之分的,只有你接受或者不接受。在项目开发过程中也是一样的,用开源组件有其长处,也有其弊端。使用商业组件自然也有优势和劣势,都很正常。在一些开源项目中,自然会使用到很多同样属于开源社区的组件。毕竟法律是用来遵守的,而根据法律规定,很多开源软件不得用于商业化领域,也所以tomcat之类的开源杰作才会如此盛行。我想,每个做J2EE项目的人机器里,或多或少都会有这个软件吧?

但是在商业领域,往往不是如此。一方面受限于授权协议的制约,有些东西不能用。另一方面,也是出于对开源组件的稳定性考虑,不会使用一些开源组件。那么这时候最优化和最合理的选择自然是商业组件,也就是收费版的东西。一般来讲,收费版的组件无论从质量还是稳定性上来说,都要远远高于开源组件,同时由于其收费的原因,售后服务和响应速度更是开源社区无法比拟的。下面就来谈一谈在软件公司中开发的一些情况。首先声明一个问题,本文所讨论的问题,是基于法律基础之上的,对于不遵守版权协议和授权协议的行为,不在讨论之列。

在一些大公司,尤其是外企当中,版权和法律这两个词已经根深蒂固的植入了其内心之中。比如我曾经经历过的一件事情就很能说明问题。当时是需要对项目进行性能测试,那么就需要使用测试工具。一般情况下是使用LoadRunner。而LR本身的价格很贵,并且由于针对的范围太广,所以用起来难免有些不适。甲方最后选择了IBM的RPT作为测试工具。RPT是基于Eclipse环境的一个Performance Test Tool,使用方法和Eclipse基本相同,比较方便。在测试过程中,遇到了一系列问题,诸如并发访问强度不够,对新版浏览器支持不足等等,都在IBM大中华区的技术支持人员的指导下一一解决。就算是最复杂的一个问题,也通过IBM美国总部的快速确认,被列入了hotfix清单中进行Emergency Fix,并第一时间将Update Package反馈给我们。顺便说一句,因为这件事情,IBM大中华区的几个技术人员还和我本人成了很好的朋友,不过都是美国人- -#.

如果使用一些免费工具,在前期的测试成本上会低很多,这一点是毋庸置疑的。但是如果遇到问题,那就只好百度加谷歌了。要是没有人遇到过,那您就可以烧香祷告或者自己想尽一切办法来解决,比如重装系统,重启电脑什么的,如果您有这耐心和想法的话。此外,文档齐全也是商业化项目的显著特征之一。最典型的例子就是MSDN,浩如烟海的文档,权威而且贴近人心。虽然更新速度没有英文版的快,但是也慢不了多少。

那么究竟是什么造成了闭源软件的这些特征?说到底,还是一个钱字。开源社区多数是因为兴趣而做事,纯粹为的是高兴。最初的时候XFire还是很好用的,个人感觉比起Axis来说要好很多。但是不知道因为什么原因,XFire停止更新了,这一点让人非常难受。直到CXF不久前的现身,才弥补了这个空缺。而那段空白期间,我只有硬着头皮从Axis2的不算很全的文档里慢慢配慢慢扣,当然同时还要解决和其他jar之间的兼容性问题。之所以会这么轻易的停止更新,我个人意见来说,很大程度上是因为没有经济回报,通俗一点来说就是三分钟热度。过了最初感兴趣的时间了,再因为一些什么原因中断了开发或者维护的话,会不会拾起来继续,就只能看作者的兴趣了。毕竟人是一个生活在社会里的动物,不是一个活在真空里可以不吃不喝的神,人人都会遇到不开心的时候,也会遇到劳累甚至想放弃的事情,不能因为没有更新就责怪作者,对吧。

而闭源软件在这个问题上,要比开源软件皮实很多。毕竟是有经济因素在背后支撑着,所有的程序员都是有付出有回报的人,质量也是有控制体系的,这种产品的质量会好很多。也许你会说,开源社区的东西也有Bug List,也有人在维护。但是作为一个项目开发人员,我们要的是稳定的DBS输出,而不是间断性的,对吧?您老人家要是一直不改,我还真不能咬您。可是我遇到这个问题,如果影响了我开发,那就闹心了。如果购买的是商业组件,我可以打电话回去,可以提交Bug给厂家,我也可以指望着有人来改。最少,我有个盼头,甚至于有些时候,这种修复是属于合同范围内的事情,那我还有法律来约束双方的行为,岂不是比用开源的要安心很多。

再一个,因为闭源软件的用户都是花钱的,也就难免有点大爷化,大多数情况下他们都不是专业的软件开发人员,甚至点鼠标都不咋会。这个时候,软件的易用性和稳定性就更加重要了。配置文件少一些,环境依赖小一些,都是一种优势。而一个东西稳定一点好用一点,不管是对开发人员还是终端用户,都是一件好事。而开源社区赖以生存的,就是难用和复杂的配置。因为不好用,所以需要人来指导。而指导了,就好用了,因为什么?还是因为你花钱了呗。没有利益的驱使,谁会那么任劳任怨?

转载于:https://www.cnblogs.com/xhr8334/archive/2010/12/14/1905810.html

.NET系列 之 开源和不开源的背后相关推荐

  1. 《CSDN/TUP 系列活动:我们的开源》学习

    CSDN/TUP 系列活动:我们的开源 目录 1.概述 2.从Git社区看配置 3.一个全职开源软件的生成体验 4.淘宝开源之路 5.总结 1.概述 我们的开源 2.从Git社区看配置 2.1是个较好 ...

  2. (Ryan的Redis系列博客)1.开源协议

    前言 Redis是一款基于BSD协议的开源NoSQL.因此,第一篇文章,我们便来说说几种开源协议. 开源协议是什么? 这里讲的开源协议都是关于计算机软件的,计算机硬件或者其他产品的开源协议我是不懂的, ...

  3. 暑期2020“大咖说开源”之吴雪 | 开源的商业创新

    | 主办方: 中科院软件所.openEuler 社区.开源社 | 编辑:袁睿斌 | 设计:谭嘉露 活动介绍 Overview 开源供应链点亮计划 - 暑期 2020 (https://isrc.isc ...

  4. 盘点开源之经典开源Windows工具集

    盘点开源之经典开源Windows工具集 开放源代码软件已经成为一个时髦的名词,这里有两个有力的证据:Firefox浏览器的下载人次超过了2500万:同时,基于Linux的Web服务器也占据了最大的市场 ...

  5. 阿里云PolarDB-X荣获“2022 OSCAR 尖峰开源项目及开源社区”奖

    9月16日,OSCAR 2022 开源产业大会在京召开,会议由中国信息通信研究院.中国通信标准化协会主办,中国通信标准化协会云计算标准和开源推进委员会承办.此次会议以"千行百业 可信开源&q ...

  6. 2022 中国开源大会“红山开源”创新论坛成功举办

    2022年11月5日,2022 CCF中国开源大会"红山开源"创新论坛成功举办.本论坛聚焦战略科技领域的相关需求,邀请了中国科学院梅宏院士,以及国防科技大学.系统工程研究院.ope ...

  7. Apache IoTDB PMC 乔嘉林荣获 2022 杰出开源贡献者|开源技术强大,开源文化活跃...

    2022 年 12 月 29 日至 30 日,2022 木兰峰会正式召开,会上发布了中国开源云联盟 2022 年度评选名单.本次评审专家包括数十位开源领域专家.社区领袖.科研院所专家,共评选出杰出开源 ...

  8. 谈谈开源的利弊和国内的开源 ——《新程序员005:开源深度指南 新金融背后的科技力量》书评

    感谢CSDN的送测 <新程序员005:开源深度指南 & 新金融背后的科技力量> 是一本以计算机编程和金融科技为主题的杂志书,由中国最大的开源社区之一的开源社主办,内容丰富多样,包括 ...

  9. 开源代码 不开源_开源的8种非代码方式

    开源代码 不开源 无论您是新手程序员,经验丰富的老手,还是根本不是工程师,除了编码之外,还有许多方法可以为开源项目做出贡献. 与专有软件相比,开源项目在涉及非工程方面时往往相对缺乏人手,因此请不要因为 ...

最新文章

  1. 解决电信网通封锁路由以及上网机器台数的破解方法
  2. 编程式事务控制相关对象
  3. python笔试题 github_简单的python面试题,居然
  4. java的vector_java中的Vector类
  5. java将date类型转成yyyymmdd_java中的Date怎么转换成YYYYMMDD形式?
  6. 西安外国语大学计算机基础,西安外国语大学教务处.PDF
  7. 一个校园互联网实验室的纳新试题(我的服务端开发笔试题)
  8. Spring源码分析笔记--AOP
  9. Java程序员必看!java后端开发实例
  10. 对结构体数组进行冒泡排序(根据名字大小)
  11. 每日干货——每日分享技术干货App
  12. webpy+uploadify实现文件异步上传
  13. unity cardboard 设置
  14. 区块链10年兴衰录:中国是最好的发展土壤
  15. vue3中组件给后代组件传值,provide和inject的使用
  16. C语言求解距多个点最短长度,算法设计技巧与分析课后习题答案沙特
  17. node.js里的天龙八部
  18. 区块链论文7(oyente智能合约漏洞检测工具)
  19. 晕死,咖啡.....以后不喝咖啡了.....
  20. Coding and Paper Letter(六十)

热门文章

  1. 【Numpy学习记录】np.transpose讲解
  2. sklearn的基本用法:分类与回归
  3. TensorFLow 常用错误总结
  4. kubernetes常用对象
  5. Hbase总结(八)Hbase中的Coprocessor
  6. Spark编程指南V1.4.0(翻译)
  7. 微信小程序,实现 watch 属性,监听数据变化
  8. 公用技术——设计模式19——行为型模式——备忘录模式——待补充
  9. 分析攻击IP来源地并画出饼图
  10. 组件化h5活动模板的实现