开源项目,顾名思义,开放式源代码项目.
如果在 Windows 平台上开发开源产品有什么建议的话,您可以和他交流。当然,我也乐意和您交流。因为我认为,作为一个 Web 开发人员,在 Windows 平台上搭建一个 WAMP(Windows+Apache+MySQL+PHP/Perl/Python)应用作为自己测试和学习,并不是什么可耻的事情。
一谈到开源,你或许就联想到一大堆的开放源码产品,如果你是程序员的话,或许会联想到 KDE 或者 GNOME 上开发的那些工具。但是,本文要讲述的是在 Windows 平台上,遵守业界标准,开发开放源码的系统。本文介绍了一些十分有用的连接,如果你是 Windows 平台上的程序员,并且写惯了封闭源码或者专有软件,那么,请您去看看文中提到的这些连接,你会知道,在 Windows 上开发开源软件是一件更加富有成就感和挑战性的事业。
尽管 Windows 是被开源社区的人们看不上眼的东西,但是还是有很多的开源软件能应用于 Windows 。 我记得在 Linux 出现之前,就有 GNU 工具被移植到 Windows。现在只是使用开源或者自由软件,你就能开发出复杂的 Windows 软件。
还有一个反向的路径:如果你在开发 Windows 版本的软件,那么可以利用那些专门针对 Windows 的工具,并充分利用他们的优点。在这种情况下,你可以使用 COM 着重来优化Windows 界面。如果你用微软的 Visual Studio 来写程序的,这样你的程序就只能在 Windows 上跑。
但是在优化这些程序的时候,你可能要在很多应用之间折衷考虑。你的程序成为 Windows 专用程序,这样,你就要遵循微软的”教诲“,以写出最好的程序。然而,很多人不喜欢这样,例如,如果你使用微软的 MAPI 作为 e-mail API ,那么你就只能从非微软平台得到简单的支持。因此,坚持标准,能为你选择正确的产品来适合自己的需求带来更大的自由。
Windows 上至少有一个主要的开源开发系统:Perl。 ActiveState 是 Perl 的 Windows 版本的主要发行商,使 Perl 成为 Windows 上优秀的脚本工具。另外,在 Windows 上使用 Perl ,并不一定意味你在编写可移植的代码,无论在 Windows 上还是其他平台上,Perl 经常作为能方便的和操作系统打交道的语言。如果你浏览一下 CPAN的话,就会发现海量的 Perl 代码,其中的大部分都只能支持 Unix。但是,在现实生活中,还是有很多 Windows 上 Perl 代码,还有很多网站帮助 Windows 上的 Perl 用户。
尽管有为数不少的网站支持 Windows 上开发开源软件的工具,但是,我还没有发现有一个网站专门用来讨论 Windows 上开源工具(或许我找的不全面)。
OSDN 有好几个网站:Freshmeat.net以及SourceForge,托管着开放源码工程,但是很多是开发工具(因为他们本身就是程序员为了工作而写的)。
所有和 Windows 兼容的产品,其用户界面要么是字符界面,要么是 Web 界面,要么是类似 wxWindows 的抽象库。但是很多仅仅是交叉平台的库。
IBM 的 alphaWorks上有很多开源工具。大多数的目标平台是 Linux 或者 Java,但是也有 针对 Windows 的 XML。
对于 Web 开发人员来说,就有很多的选择。所有的市场上领先的开源应用都有对应的 Windows 版本,包括本网站的”中心思想“:Apache, PHP, 和 MySQL,对于 Windows 上的 PHP 程序员来说,笔者建议你一定要拜访一下 php4win 这个网站。
如果你不是自己开发的话,也有一些应用你可以选择,OpenOffice 是根据 Sun 的 StarOffice 的代码而建立的一个开源工程,也能工作于 Windows ,看起来似乎很有争议。另外你还可以使用 Mozilla 的浏览器。
在 Windows 平台上使用开源工具,看起来很不顺眼,如果你十分坚信开放源码的话,你就应该抛开 Windows 。但是开放源码是一个现实的存在,尽管和 Windows 相处得不是很好。
开源项目的语言工具
PHP:由于PHP短小精悍、加上PHP程序往往是没编译和没加密的,所以,PHP程序成为网上开源应用程序开发的首选语言。也正应为PHP没编译和没加密,所以,PHP开源项目很少有用于企业级应用的,同时也就缺乏大型企业对PHP在财力和技术方面的支持。PHP主要在自由的、个人或小团队开源开发中应用。SugarCRM算一个比较成功的应用在中小企业上的CRM系统。
Java:是企业级应用开发的首选语言。IBM为跟Sun争Java的主导权,同时跟Oracle和微软争企业应用的市场份额,于是IBM成为推动Java基础项目的开源开发方面最用心和最用力的企业。IBM对Apache Jakarta项目的大力扶持,使得Java有了强劲的Tomcat服务器,有了Apache Commons一系列基础开发组件;IBM的Eclipse的扶持,则让Java有了强劲的开发环境。跟PHP不同的是,Java的开源更多集中在功能模块上的开发,而面向最终用户方面的开源应用系统则明显不如PHP那么多,从功能上看,也不如PHP开发应用那么成熟,这主要原因是Java程序对服务器要求较高,共享主机时,功能有限的PHP在安全、管理方面也更加灵活、可控。