When it's time to develop your Web application, you have choices: You could roll up your sleeves, select your programming languages, pile references manuals on your desk, and begin the time-consuming task of building your application from scratch. You might take a shortcut and grab one of the many open source frameworks available, such as symfony or Zend for PHP programmers, Django for Python users, Ruby on Rails, and so forth. Or you might consider one of the many rapid development tools now available to the Web world.
I had a chance to test-drive five Web development systems that claim to significantly cut application development time: Alpha Software's Alpha Five 10; Iron Speed Designer 6.2.1; LANSA's LANSA for the Web 11.5; OutSystem's Agile Platform 5.0; and MLState's OPA (One Pot Application) 2.0 Beta.
Based on my testing, I can say that these tools provide a speed boost to development with features such as WYSIWYG prototyping environments, loads of prebuilt graphical components, and easy deployment. Importantly, some of the tools are specialized, designed primarily for constructing database-centric Web applications, but even those tools offer enough flexibility to create more generic apps.
Find out how the Web development tools fared in InfoWorld Test Center's review. (Please note that we did not score OPA 2.0, as it's still in beta.)
Alpha Five 10
First released way back in 1982, Alpha Five at first blush appears to be just a database management tool, capable of talking to MySQL, Oracle, SQL Server, or any RDBMs with an ODBC or ADO interface. Were those its only functions, it would still be an admirable product. Although building database applications -- desktop and Web-based -- are Alpha Five's forte, it is nevertheless flexible enough for developing general Web applications. However, there's likely no advantage to using Alpha Five for the latter as opposed to, say, ASP.Net.
Alpha Five includes its own Web application server, referred to as WAS (Web Application Server). Neither an IIS nor Apache variant, WAS recognizes A5W pages -- files that include HTML with embedded Xbasic, the company's proprietary language that is in no way related to the open source language of the same name. Other than the ability to run A5W pages, WAS behaves much like other Web servers. It has its own root directory (C:\A5Webroot on a development system) from which applications are deployed.
Xbasic powers the behavior of most controls in desktop applications and executes an Alpha Five Web application's server-side code. Alpha Five's Xbasic has everything you'd find in any complete BASIC-language implementation, with additional system objects and functions for manipulating databases.
Iron Speed Designer 6.2.1
Iron Speed Designer, like Alpha Five, can build both desktop and Web applications, and it excels at creating database-centric applications. Unlike Alpha Five, however, Iron Speed does not use a proprietary runtime. Peek under the hood, and you'll see that Iron Speed Designer is really a development front end for .Net and ASP.Net applications. The Designer emits either C# or VB.Net (your choice).
Iron Speed Designer's principal function is to create database access and management applications, but an application's complete source code is available. Thus, a skilled developer could extend that code to produce most any conceivable Web application. More precisely, Iron Speed builds CRUD (create, read, update, and delete) interfaces for databases. It won't create your application's "business logic" -- that is, code beyond the fundamental CRUD operations. Iron Speed's documentation claims that about 80 percent of a database-centric application's development is spent building the CRUD code.
Building an application in Iron Speed follows a series of defined steps. It's like cooking from a recipe. Of course, the first step is to create (or connect to) whatever database your application will use. Next, you select your application's display theme. This sets a standard look and feel for all the generated code. The number of available styles depends on the edition of the package you choose. Although there are plenty in the free edition, the Enterprise Edition lets you create custom styles.
Once you've chosen your application's theme, select which sorts of pages you want the designer to create. Most of the generated pages are grid-style layouts of one form or another. You can choose pages that provide view-only data access or pages that provide editing functions. Plus, there are master-detail layout styles. Overall, Iron Speed offers close to 30 different page layouts.
LANSA for the Web 11.5
LANSA was originally built for IBM System/36 AS/400 systems, but its applications can be compiled to run on Windows or Linux systems, as well as System/38, AS/400, iSeries, and IBM i Systems. Nevertheless, it retains the ability to produce code that uses IBM 5250 terminals as the UI device. LANSA reckons this is a feature and claims that code built to run in its earliest versions can still execute in the current version. Given that the company has been around since the late 1980s, that's impressive. (There are numerous products in LANSA's portfolio. I only examined those used for developing applications.)
LANSA can be used to build applications for the desktop, the Web, and mobile devices. You use LANSA for the Web to create Web applications; it also employs the Visual LANSA development environment and component builder to build WAMs (Web Application Modules).
WAMs are files that correspond roughly to a set of related pages in a Web application. Each is composed of both RDMLX code (LANSA's server-side language) and associated XML/XSL code (that determines client-side appearance and behavior). RDMLX is a descendant of IBM CL (Command Language), the scripting language of the OS/400 operating system. Its scripting roots show: Most commands appear to have the form of an action followed by parameters. It isn't particularly complex, but anyone unused to the language will need time to pick it up.
LANSA keeps the RDMLX and XML/XSL sides separate in the IDE, which helps divide business logic from UI logic. Inside a WAM, code is grouped into Webroutines, each of which defines the behavior of a Web page in an application. It's important to point out that LANSA for the Web can also be used to build Web services -- in which case each Webroutine would correspond to a SOAP function.
When you create an application with LANSA, you're laboring inside the meta-data repository, a database that holds everything the development environment needs to know about all of the objects used to build an application. These objects include source code and back-end database meta-information about tables (referred to as files in LANSA) and attributes (fields). The meta-data repository is roughly analogous to a project file in other IDEs, though it is something more than just a project container. Because it carries information about database fields, it also holds validation information, database triggers, referential integrity information, and even help text.
OutSystem Agile Platform 5.0
With a name like OutSystem Agile Platform, the intent is obvious: agile development. Agi attempts this goal via a truly visual development environment. OutSystem's claim is that you can create full-featured Web applications without writing any code (though, you can do that, too, if you prefer).
The output of Agile Platform -- the code that actually executes your application -- is (depending on the edition) either .Net or Java. Therefore, applications built by the Agile Platform can execute on Windows and Linux. To choose the flavor of the generated application, you simply select the back-end server on which the application will execute, and Platform generates the proper code.
The Agile Platform consists of four components: the Platform Server, Service Studio, Integration Studio, and the Service Center Management Tool.
The Platform Server is a collection of services that execute alongside .Net or Java application servers. Platform Server creates and maintains a meta-data repository that stores all versions of applications and application components. The repository also acts as a source control system and retains the source code of previous versions. The meta-data and application repository exists within an RDBMS system, which can be either SQL Server or Oracle. However, deployed applications can use any database for which an ODBC driver exists. You can also create "integration extensions" (described later) to talk to specialized databases.
The Service Studio is a visual modeling tool used to build applications; it is the Agile Platform's IDE. It is here that you define an application's user interface, business logic, database structure, security and authentication logic -- all by dragging, dropping, and wiring together visual components. Also within the Service Studio, you define attributes of your database table, and the Platform creates the database (tables and attributes) when the application is deployed. Of course, if the database already exists, you supply that info to Agile Platform, and the application will simply connect when executed.
MLState OPA 2.0 Beta
One thing is true: With OPA, you don't have to deal with a separate Web application server. When you compile an OPA application, it creates a single executable that contains the Web server, the business logic of the application itself, and a database runtime.
As a language, OPA is a statically and strongly typed language. In fact, the current version is so strongly typed, there are different mathematical operators for integer and floating point numbers. Documentation promises that future releases will allow overloaded operators in this case.
OPA recognizes simple data types -- integers, floats, and strings -- as well as more complex structured types such as Lists, Maps, Sets, and Iterators. OPA supports a "record" datatype, which is analogous to the C-language
struct. It also has the notion of "sum," which is a way of handling variants by informing the compiler that a given variable might hold one of several data types and to execute code based on its current type.
Faster, but less flexible
If you choose one of these tools to accelerate your Web development, keep in mind that your gain in development speed will be paid for by a loss in flexibility. Alpha Five and Iron Speed Designer, for example, are geared to very specific kinds of applications. Along with Agile Platform and LANSA, they also pre-impose a structure on your code. Your application will have to live with that structure throughout its lifetime -- and you may have to as well. In addition, many of the products here require proprietary components.
It's important to remember that Iron Speed doesn't do it all, nor does it try to. Iron Speed builds fundamental database access code -- which, if you're building a database management application, gets you a long way there. As with Alpha Five, Iron Speed's runtime is Windows based. But if you're building database-centric Web applications running atop ASP.Net, it doesn't get much better than this.
LANSA is also a well-established company, and its tools span more platforms than any other products in this roundup. But the total number of tools available can be daunting; just figuring out which tool you need for a particular development project could take some time. Also, learning RDMLX will require effort, but if you need to build Web applications that run on a wide range of platforms, LANSA might be just the ticket.
The Agile Platform strikes a fine balance between visual development and hands-on coding. Because the platform generates standard .Net and Java code, you can take the source out of your application and continue working on it with your favorite development tools. Agile Platform's free community edition lets you build applications supporting up to five simultaneous users. However, it can only create Windows (.Net-based) applications. Only the paid editions of Agile Platform can be used to build Java-based Linux applications.
Finally, OPA is still a work in progress. Even elements of the language are in a state of flux. For example, documentation accompanying the parser function tells us that the syntax is experimental and may change in future versions of OPA. This isn't the sort of thing you want to read if you're building an application that your business is going to depend on. Anyone embracing OPA is susceptible to the problems attendant with adopting any new technology: Will it still be there next year or the year after that in the future? If not, what happens to all my applications? This is not a trivial matter.