<P>Infoworld测试中心主要分析师Jon Udell评述Windows平台的开源,指出:Windows和开源这一对奇怪的合作伙伴有可能组成软件开发的完美团队。 </P>
<P>有一点我要承认,当我在开发一个并不熟悉的开源组件时,通常会另辟蹊径。即便我正在开发的软件将是被应用于Linux平台上,很多时候,我也是首先在Windows平台进行开发的。 </P>
<P>为什么我要这样做呢?原因是在Windows平台上,开源组件通常都附带提供一个很有用的安装程序。这是一个很大的优势。因为软件开发的主要工作就是评估可用组件和选择最能满足需要的组件。要想做好软件开发,你就必须尽你所能,做到简单快速的评估和选择组件。 </P>
<P>但是在Unix/Linux系统上,组件的评估和选择通常并不容易,效率也不高。尽管有些组件可能会带有二进制的安装程序,但是当你要把不同的组件综合到一起时,你通常不得不通过写源代码来构建。 </P>
<P>如今,我非常看好发布工程(Release Engineering),它实现了所谓的“configure, make, make install三步曲。”在这一过程中,组件可获知其环境,并且实现相应的构建。 </P>
<P>这很特别,当它起作用时(很多情况是起作用的),对极端复杂性的管理让我为之惊奇。但是这一过程也可以转变为一场灾难。我已经花了很多时间来找寻独立性和调整构建脚本。 </P>
<P>一些公司,如SourceLabs和SpikeSource,也正在着手解决这一问题,在此我希望他们一切顺利。对于那些我以后经常用到的东西,我并不介意花费精力,自己去解决这一问题。在那些情况下,我感觉到我可以调整源代码(在很少的情况下我才回去写源代码,但是在某些情况下扮演着关键的角色)。 </P>
<P>花费巨大的精力去开发一个组件,结果却派不上用场,这绝对是件令人沮丧的事。所以只要有可能,我就会选择偷懒的途径。我想大概这也是因为我自己的懒惰和没有耐心,就像Larry Wall将程序员概括为3个特点:懒惰,急躁和自傲。 </P>
<P>请注意,我是个不可知论者。任何捷径都会成为我的选择。当我第一次开始将Libxml2(一个流行的XML工具包)和Python综合起来时,Windows平台是障碍最少的一个途径。如今,RPM(Red Hat Package Manager)的出现已经使基于RPM系统的工作变得一样的容易。现在剩下的只有笨拙的OS X系统了。 </P>
<P>在即时满意(Instant Gratification)方面,Macintosh通常比Windows略胜一筹。然而,Macintosh的这些闪光之处却很少能达到开源开发者所关注的深度。如果你要在OS X平台上同时使用Libxml2和Python,那将变得极其笨拙。XML天才James Clark在此步骤上颇费周折,并且他勉强写出的Web页面帮助了我运行于新的PowerBook上。 </P>
<P>尽管LAMP(Linux,Apache,MySQL,Perl/Python/PHP)经常等同于开源,Windows却可以成为这一平台的强大支撑。Windows服务器平台PHP的日益流行正表明了这一趋势。对于两个阵营各自的追随者来说,也许这看上去有些骑墙,但是我还是要游走于这两个阵营之间,这对我再好不过了。</P>