topics that matter; ideas worth sharing

share a tip, submit a link, add something new

Open Source Web Application Development Tools and Languages

May 28, 2001, 12:00 AM —  ITworld — 

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.

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 couple of weeks ago, I mentioned one of the most popular
Web application development languages, PHP. PHP (http://www.php4.org )
and MySQL (http://www.mysql.com) make up the foundation of the PHP-Nuke
Weblog publishing system I'm using for http://www.varlinux.org and
http://www.petreley.org.

Love-hate relationship
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. But in PHP's defense, 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
(http://www.ciobriefings.com/psp), PyWX (http://pywx.idyll.org), and
any other attempt to blend HTML with a scripting language. Because HTML
is not a language, a lot of organization 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
(http://www.xprogramming.com), 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 modularized 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 favorite language that will run within
the Apache server for added performance. mod_python for Apache
(http://www.modpython.org) 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
(http://www.phpnuke.org) using mod_python instead of PHP; I think it
might yield a cleaner publishing tool.

Nature or nurture?
I would not like to use mod_perl (http://perl.apache.org), because I
despise Perl. I don't despise it on its merits -- it is a magnificent
piece of work. I have an unusual reason for hating Perl. I recently
discovered that I have some hereditary neurological problems, including
one that affects short-term memory and text assimilation (did I mention
that I have a short-term memory problem?), and that combination somehow
makes Perl the antimatter to my gray matter. Go figure. But the lesson
I learned is this: When people say that they hate a language or tool,
don't automatically assume they're biased or too ignorant to see the
benefits. Sometimes the language or tool just conflicts with the way
their brains process information.

I appreciate that some readers sent in additional information on the
publishing systems I mentioned. In case you missed that column, I
included pointers to LXP (http://www.linuxports.com), eZ publish
(http://developer.ez.no), CMF (http://cmf.zope.org), Thatware
(http://www.thatware.org), and Squishdot (http://www.squishdot.org).

CMF and Squishdot both run on Zope (http://www.zope.org), 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 almost as much as I do Perl. I haven't figured out whether
it's Zope's fault, or just the symptom of another neurological issue.
But I'll tell you what: If you love Zope, it's neurological. If you
hate it, it's Zope's fault. Regardless, this approach will cut down on
my hate mail.

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
(http://phpwebsite.appstate.edu), a community-developed spin-off of PHP-
Nuke.

The other alternatives readers mentioned included ArsDigita
(http://www.arsdigita.com) and the OpenACS (Open ArsDigita Community
System) (http://openacs.org) for Web publishing. Both are based on the
Tcl scripting language (although ArsDigita also uses Java) and
AOLserver (http://www.aolserver.com). 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
(http://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 way I know to get OpenACS to
work.

Another reader pointed me to Typo3. The Typo3 Website uses JavaScript
and frames in a way that makes the site really annoying, but don't let
that sour you on Typo3 (http://www.typo3.com) itself. Try the demo
before you write it off.

Well, that's it. Forgive me if I've left out your favorite 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.

» posted by ITworld staff

ITworld

I like it!
Post a comment
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
Resources
White Paper

Symantec Backup Exec 12 and Backup Exec System Recovery 8 deliver industry leading Windows data protection and system recovery. Download this whitepaper to find out the top reasons to upgrade and how to get continuous data protection and complete system recovery.

Webcast

Data and system loss — from a hard drive failure, malicious attack, natural disaster, or simple human error — can happen anytime. Don’t leave your business vulnerable. Make sure you have a secure recovery strategy in place. Symantec's latest backup and system recovery technology can efficiently restore critical applications, individual emails and documents and even restore your entire system in minutes in the event of a loss.

White Paper

Businesses face a growing challenge to ensure that the IT environment is properly protected. Backup Exec 12 integrates with other applications in the Symantec family of products, to complement your current data protection strategy, keep your data securely backed up and make it recoverable when you need it most.

Free stuff
Featured Sponsor

Get a broad understanding of important regulations and how you can make sure your site is in adherence.





Learn how VeriSign SGC-enabled SSL Certificates can help improve site security and customer confidence in the free white paper, "How to Offer the Strongest SSL Encryption." In this paper you will learn the differences between weak and strong encryption and what they mean for your site's performance.

Get VeriSign's free white paper: "The Latest Advancements in SSL Technology" and learn about the benefits of strong SSL encryption, Extended Validation (EV) SSL and security trust marks and what these SSL offerings can do for your site.

Now with Extended Validation (EV) SSL available from VeriSign, you can show your customers that they can trust your site. Learn about EV SSL benefits in this free VeriSign white paper.

More Resources