I find it amusing that Windows often gets credit as the server platform with the most applications simply because Windows is typically the platform with the most desktop applications. But if Windows 2000 has plenty of Web application development tools, it has the open-source community to thank. The choice tools for building Web applications for Windows are open source, developed first on Unix (mostly Linux and BSD), and then ported to the Win32 API.
But not all of these tools have been ported to Windows or ported completely. So if you really want the widest range of choices for Web application development, you'll have to go to one of the Unix derivatives. A few weeks ago I mentioned one of the most popular Web application development languages, PHP (www.php4.org), which along with MySQL (www.mysql.com) is the foundation for the PHP-Nuke (www.phpnuke.org) Weblog publishing system I'm using for www.varlinux.org and www.petreley.org.
This sparked quite a bit of reader reaction. Some of you love PHP and others hate it. Those of you against it dislike PHP because it begs for sloppy development. In its defense, I would point out that PHP is not unique in that respect. Almost any server-page language invites sloppy development, including Microsoft Visual Basic Active Server Pages (msdn.microsoft.com/workshop /server), Python Server Pages (www.ciobriefings.com/psp), PyWX (pywx.idyll.org), and any other attempt to blend HTML with a scripting language. The problem stems from the fact that HTML is not a language. And it takes a lot of organisation and work to make HTML play nicely with a language.
If you happen to like a particular scripting language such as Python, Perl, or TCL, you aren't restricted to using the implementations where they are integrated with HTML. For example, modules are available to allow you to write CGI-style scripts in your favorite language that will run from within the Apache server for added performance. Mod_python (www.modpython.org) for Apache is a good way to build a well-structured Web application based on Python. I like this module so much that if I had the time, I'd like to rewrite something like PHP-Nuke using mod_python instead of PHP. I think you could build a cleaner publishing tool with this module than you could with PHP.
The other alternatives readers mentioned include ArsDigita (www.arsdigita.com) and the OpenACS Open ArsDigita Community System for Web publishing (openacs.org). Both of these are based on the TCL scripting language, although ArsDigita also uses Java. Both are based on the America Online Web server (www.aolserver.com). By the way, the AOL Web server is a truly nifty and vastly under-rated open-source Web server. I'm surprised it doesn't get more attention from the open-source community.
Anyway, ArsDigita uses Oracle for its database. OpenACS uses the open-source database PostgreSQL. I'm having a terrible time getting OpenACS running. I recommend the Getting Started tutorial article at the Developer Shed (www.devshed.com/Server_Side/PostgreSQL/OpenACS). The article omits a lot of information for anyone using a Linux distribution other than the author's, but it's still the best bet I know of for getting OpenACS to work.
Well, that's it. Forgive me if I've left out your favorite Web publishing system or language, but keep sending me links to your preferred tools, and I'll revisit this topic in the future.Nicholas Petreley is founding editor of VarLinux.org (www.varlinux.org) and works with nonprofit Linux projects. Reach him at firstname.lastname@example.org