Cleaning up the code

I find it amusing that Windows is often called the server platform with the most applications, simply because it has traditionally been the platform with the most desktop applications. But if Windows 2000 has plenty of Web application development tools, it should thank the open source community. The choice tools for building Web applications for Windows are open source and were first developed on UNIX - mostly Linux and BSD - and then ported to the Win32 API.

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. Last month, I mentioned one of the most popular Web application development languages, PHP. PHP and MySQL make up the foundation of the PHP-Nuke Weblog publishing"system I'm using for www.varlinux.org and www.petreley.org.

My PHP column sparked quite a bit of reader reaction. Some of you love PHP; others hate it. Most of those who dislike PHP say it begs for sloppy Web application development. In PHP's defence, I would point out that PHP is not unique in that respect. Almost all server-page language invites sloppy development, including Microsoft's Visual Basic Active Server Pages, Python Server Pages, PyWX, and any other attempt to blend HTML with a scripting language. Because HTML is not a language, a lot of organisation and work is required to make HTML play nicely with a language.

I have to agree with one reader who said that most code eventually gets messy, even if you start with the best intentions and up-front planning. He pointed me to a site about Extreme Programming, a philosophy of testing that attempts to make messy code easier to maintain, and therefore less messy as you continue to maintain it. It seems that the technique is to write test units for different sections of code and use these test units to keep your code modularised and functional. That sounds like a lot of extra work, but it could pay off in the long run.

If you happen to like a particular scripting language - Python, Perl, Tcl, etc. - you aren't restricted to using the implementations in which they are integrated with HTML. For example, some modules let you write CGI-style scripts in your favourite language that will run within the Apache server for added performance. mod_python for Apache is a good way to build a well-structured Web application based on Python. I like mod_python so much that if I had the time, I'd like to try to rewrite something like PHP-Nuke using mod_python instead of PHP; I think it might yield a cleaner publishing tool.

I appreciate that some readers sent in additional information on the publishing systems I mentioned, included pointers to LXP, eZ publish, CMF, Thatware, and Squishdot.

CMF and Squishdot both run on Zope, a Python-based object publishing environment. Zope seems enormously appealing, so I've tackled it several times. But I must admit that I've learned to loathe Zope. I haven't figured out whether it's Zope's fault, or just the symptom of a neurological issue. I'll tell you what: if you love Zope, it's neurological; if you hate it, it's Zope's fault.

I was also informed that PHP-Nuke is based on Thatware, so take a look at Thatware if you haven't tried it yet. If you like either PHP-Nuke or Thatware, you should also check out phpWebSite, a community-developed spin-off of PHP-Nuke.

The other alternatives readers mentioned included ArsDigita and the OpenACS (Open ArsDigita Community System) for Web publishing. Both are based on the Tcl scripting language (although ArsDigita also uses Java) and AOLserver. By the way, AOLserver is a truly nifty and vastly underrated open source Web server. It's so good that 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. Personally, I'm having a terrible time getting OpenACS up and running. I recommend the getting-started tutorial article at the Developer Shed. The article omits a lot of information for anyone using a Linux distribution other than the author's, but it's still the best way I know to get OpenACS to work.

Another reader pointed me to Typo3. The Typo3 Web site uses JavaScript and frames in a way that makes the site really annoying, but don't let that sour you on Typo3 itself. Try the demo before you write it off.

Well, that's it. Forgive me if I've left out your favourite Web publishing system or language, but feel free to keep sending me links to your preferred tools, and I'll revisit this topic sometime in the future.

Join the newsletter!

Or

Sign up to gain exclusive access to email subscriptions, event invitations, competitions, giveaways, and much more.

Membership is free, and your security and privacy remain protected. View our privacy policy before signing up.

Error: Please check your email address.
Keep up with the latest tech news, reviews and previews by subscribing to the Good Gear Guide newsletter.
Show Comments

Father’s Day Gift Guide

Brand Post

Most Popular Reviews

Latest Articles

Resources

PCW Evaluation Team

Luke Hill

MSI GT75 TITAN

I need power and lots of it. As a Front End Web developer anything less just won’t cut it which is why the MSI GT75 is an outstanding laptop for me. It’s a sleek and futuristic looking, high quality, beast that has a touch of sci-fi flare about it.

Emily Tyson

MSI GE63 Raider

If you’re looking to invest in your next work horse laptop for work or home use, you can’t go wrong with the MSI GE63.

Laura Johnston

MSI GS65 Stealth Thin

If you can afford the price tag, it is well worth the money. It out performs any other laptop I have tried for gaming, and the transportable design and incredible display also make it ideal for work.

Andrew Teoh

Brother MFC-L9570CDW Multifunction Printer

Touch screen visibility and operation was great and easy to navigate. Each menu and sub-menu was in an understandable order and category

Louise Coady

Brother MFC-L9570CDW Multifunction Printer

The printer was convenient, produced clear and vibrant images and was very easy to use

Edwina Hargreaves

WD My Cloud Home

I would recommend this device for families and small businesses who want one safe place to store all their important digital content and a way to easily share it with friends, family, business partners, or customers.

Featured Content

Product Launch Showcase

Don’t have an account? Sign up here

Don't have an account? Sign up now

Forgot password?