从软件开发者的角度看开源软件


以下观点纯属个人观点,且基本集中C/C++相关的开源软件,仅供参考:
简而言之,从软件开发者的角度来看,从开源软件中汲取的更多应该是这些软件的开发者的智慧。
1. 软件体系结构
   OpenOffice、Eclipse、NetBeans等大规模软件,设计了非常精巧的、易扩展/集成的体系结构,凝聚了大量优秀架构师的智慧。
2. 先进的软件技术/框架
   Mozilla实现的界面描述语言&框架XUL、Chrome提供的高效JavaScript引擎V8、Apache的XML引擎Xerces、QEMU的动态指令转换引擎、ICE的网络通信引擎、Pin的指令注入技术,不胜枚举。
3. 优秀的库
   Boost、Loki、blitz++、ACE ...
4. 具体的算法实现等
   这类开源软件的应用实在是不胜枚举,下面举一例来说明:
   有一同学在用C#写一程序的时候(赚钱养家不易呀),遇到一bug,我帮忙debug了一下下,发现是编码转换的问题,通过调用Win32 API MultiByteToWideChar解决了这一问题。后面问题又来了,同学说有些机器上用户的权限设置导致C#程序不能调用Win32 API!(晕,全用C/C++不就得了吗?!)他想自己实现MultiByteToWideChar,我迅速在大脑里进行了深度优先搜索...嗯!ReactOS里(Windows的开源实现)一定有MultiByteToWideChar的实现代码。调出SourceInsight,找到ReactOS源码中的MultiByteToWideChar,提取出代码交给同学,done!看看MultiByteToWideChar的代码实现不复杂,如何转换成C#就不劳俺大驾:)
  此外,还有7zip的压缩算法...

你可能感兴趣的:(计算机科学,netbeans,mozilla,引擎,javascript,c#,7zip)