Developing applications in enterprise computing environments has special challenges: Multiple back ends are the norm, and code resources must be managed, maintained and reused by several generations of developers.
Even with these constraints, IT managers still have to deal with great pressure to deploy new projects quickly, and when those projects are on the Web, scripting languages are often very good choices.
As a business case for this eValuation, eWEEK Labs modeled its testing on the needs of a new, relatively small Web application designed for deployment on an intranet. We limited ourselves to a budget of a few thousand dollars and one week of a developer's time.
For the tests, we used two identical Dell Computer Corp. OptiPlex GX1p systems, each with a single 550MHz Pentium III CPU and 384MB of RAM.
One server was running Windows 2000 Server with Service Pack 1, and we used it to test Allaire Corp.'s ColdFusion Server Professional 4.5.1 and Microsoft Corp.'s ASP (Active Server Pages) 5.0. The other server was running Red Hat Inc.'s Red Hat Linux 7.0, and we used it to test Beta 5 of the Apache Group's Tomcat 3.2 and the PHP Development Team's PHP 4.02.
With our priorities of speedy development, ease of use, and a complete and powerful API, ColdFusion really stood out.
We also recommend the use of JSP (JavaServer Pages), which is represented here by Tomcat, as a good choice for enterprises. ASP and PHP did the job, but they weren't our first picks.
To measure Web page performance and to test stability, we used Quest Software Inc.'s Benchmark Factory load testing and capacity planning tool; Quest Software can be reached at www.quest.com or (800) 306-9329. The benchmark we used was Doculabs Inc.'s nile.com, a sample online bookstore, although we wrote all the code ourselves. Data was stored in an Oracle Corp. Oracle8i 2.0 database running on its own server.
Although performance varied, we believe every product is fast enough (especially considering possible bandwidth constraints) for the smaller projects where pure script-only applications make sense. More information on our testing, including code and performance details, is posted at www.eWEEK.com/links.
Allaire's ColdFusion
ColdFusion server professional 4.5.1 is our top overall choice for script-based Web application development. It provides a rich API combined with the easiest programming language and the best administration, performance monitoring, development and debugging tools we tested. It also runs on several platforms and has strong back-end data connectivity.
ColdFusion uses a tag-based language syntax that doesn't use script blocks, and there is no need to use an output or print function—we could just type in HTML and, if that particular section of a page was executed, the HTML was sent to the client. Because of the language's syntax and use of untyped variables, we found the ColdFusion site was the simplest to write.
ColdFusion also has an extensive API set and supports some more advanced features, including arrays, structures and try/catch keywords for error handling. ColdFusion provides its own easy-to-use API to access several databases.
The ColdFusion site running on a Windows 2000 test server had a speed of about 29 pages per second.
We tested Allaire's $1,295 ColdFusion Server Professional 4.5.1; a free ColdFusion Express version that supports only desktop databases is also available and will be a good pick for some projects.
The $4,995 ColdFusion Enterprise package provides fault tolerance and clustering. ColdFusion Studio, Allaire's development environment, is priced at $495.
Apache's Tomcat (JSP)
Sun Microsystems Inc., in an effort to popularize its JSP scripting language, has donated code for a JSP and Java Servlet engine to the Apache Group, which the group has released as an Apache product called Tomcat.
JSP is a relatively new technology and still has clear market immaturities in terms of tools, support resources and available talent.
However, because JSP is based on Java (and can do nearly anything Java can do, thus opening up a huge API set and selection of class libraries), and because a just-emerging JSP extension called tag libraries lets JSP mimic ColdFusion's tag-style API, we think JSP is going to be a core Web scripting language in a few years.
There is also more—and more varied—vendor support for JSP among high-end application server products (which are almost universally based on Java) than for any other scripting technology, giving JSP developers an easy path to greater scalability and fault tolerance.
Because JSP is based on Java, a strongly typed language, we had to declare the types of variables we used and manually convert between types when necessary. This makes JSP the hardest of the scripting languages we tested for nonprogrammers to learn, although anyone who knows some Java will figure out JSP almost immediately.
Using Java Database Connectivity, Java has a flexible and complete API for accessing databases.
On the server side, we tested Beta 5 of the Apache Group's free Tomcat 3.2. On a test Linux server, Tomcat had a speed of about 13 pages per second.
Unfortunately, Tomcat has very rudimentary performance monitoring and administration tools (we could find only one beta project on the Web), a management problem it shares with PHP. Higher-end Java-based application servers provide rich administration tools.
Development tools are also generally lacking in the JSP space, although Sun's Forte for Java 1.0 Community Edition is a free and quite capable JSP development environment.
For enterprise development, we believe that JSP, despite its newness, is the right option because of its use of Java and the many application server product options that support JSP.
Microsoft's ASP
Microsoft's asp (active server pages) language is one of the best-known and best-supported Web scripting technologies in corporate environments, and this means that ASP developers are quite easy to find. Because ASP is shipped as a default part of the Windows NT Server and Windows 2000 Web servers, the technology is also very widely deployed.
ASP makes programming easier by supporting untyped variables, and it provides easy access to the huge Windows API set through native support for Microsoft's COM (Component Object Model) standard. This is a two-edged sword, as it provides access to all the power of COM objects but also can make ASP code more complex and harder to write. Microsoft's ADO (Active Data Objects) COM interfaces provide a comprehensive database access API.
Microsoft is also investing heavily in clustering technology for ASP, and the upcoming Microsoft Application Center Server (expected later this year) will provide clustering and content management features for ASP sites.
We used VBScript for our code, and we wish it had try/catch keywords; without these, writing error-handling logic was more cumbersome because we had to do manual checks in the code to see if errors had occurred. (ASP also supports JScript, which has try/catch keywords.)
ASP development tools are widespread and generally quite mature. We used Microsoft's Microsoft Script Editor (which comes with Microsoft Office) to edit pages and found the tool very productive, with a comfortable editing environment and an integrated debugger.
Our ASP site running on a Windows 2000 test server had a speed of about 43 pages per second.
PHP Development's PHP
php has come flying up through the ranks to emerge as the preferred Linux Web scripting language. It's had especially big momentum this year with the release of PHP 4, which included a new scripting engine and standardized key parts of the language (such as HTTP session management) that were add-on modules before.
The PHP Development Team's PHP language is open source and is downloadable in source form. Precompiled binaries for Windows are available as well, and PHP can work with a number of Web servers, including Apache and Microsoft's Internet Information Server.
PHP is a real mix of influences, including Perl, C, Java and even some ASP, and supports untyped variables to make development easier. PHP is very extensible, and because the source code is available, a variety of extension modules that do things from provide database connectivity to mail to XML parsing to Lightweight Direc tory Access Protocol queries have been contributed by a variety of people.
This abundance of extensions also leads to a lack of consistency in the APIs. Users must make a concerted effort to keep track of the indepen dently changing components of PHP they are using.
A key concern for us is PHP's lack of a standardized database API: To access the Oracle database we were using, we had to code directly to the Oracle8 API, making our pages very nonportable and upping development costs. There are some ongoing projects in this area, including an effort to port Microsoft's ADO API to PHP.
Integrated development tools and debuggers for PHP are scarce (we could only find one, Ives Development Inc.'s Nexidion Designer, which is nearing Version 1.0 status). Also, any organization doing clustering or failover with PHP is in largely uncharted waters.
PHP had a speed of about 47 pages per second on a test Linux server. (This was without the optional Zend Technologies Ltd. PHP optimizer add-on. With the optimizer, PHP had a speed of about 46 pages per second, a slight performance drop. We didn't have many loops or complex code structures in our code, the places where the optimizer can be most helpful.)
West Coast Technical Director Timothy Dyck can be reached at timothy_dyck@....