Product review: Curl 6.0 enrichens the rich Internet toolkit 

Latest release of the RIA development framework is highlighted by easier customization, more sophisticated effects, AJAX interoperability, and a native-looking Mac port

One of a number of “middleweight” solutions in the RIA (rich Internet application) spectrum, Curl is a language, an IDE, and a runtime engine that goes beyond the capabilities of lighter-weight AJAX without incurring the heavier overhead of the Java or .Net runtime. A number of Curl characteristics make it especially suitable for enterprise use: excellent performance, the ability to handle intermittent connectivity, support for large data sets, and graceful presentation of complex interfaces.

Since my review of Curl 5.0 last August, Curl won InfoWorld’s Technology of the Year award in the RIA category, Curl 6.0 was released, and Curl released three open source projects: WSDK (Web Services Development Kit), CDK (Curl Data Kit), and CDU (Curl Development Utilities). Curl can do some impressive things with graphics for a RIA, as shown by this figure.

I applaud Curl’s open source initiatives, but I’ll concentrate here on reviewing the new features of Curl 6.0, which amount to a Macintosh port of the runtime, AJAX interoperability features, controls additions and improvements including easier customization, and graphics rendering improvements such as better antialiasing and smoother curves. The Curl language itself boasts some new features, as does the IDE. The latter include conditional breakpoints and the ability to show variable values as tooltips in the editor.

[ Read Martin Heller’s Curl 5.0 review from last August, and see a video demo of Curl 5.0. Read his overview of the RIA space. Read his review of Microsoft Silverlight 1.0 and 1.1. Read Peter Wayner’s inside look at open source AJAX toolkits Dojo, Ext, Google Web Toolkit, jQuery, MooTools, Prototype and Scriptaculous, and Yahoo User Interface, along with short video tours of each. ]

The Macintosh port of the Curl runtime engine is still in beta as I write this, but should be released in April. The key feature of the port is that it displays a native Mac look and feel. That took some work, which was facilitated by the improved rendering and the skinnable controls. The Curl IDE has not been ported to the Mac, however, and Mac fonts are different enough from Windows and Linux fonts that you may encounter some layout issues in Curl applets that you intend to be portable.

Curl does two kinds of AJAX (Asynchronous JavaScript and XML) interoperation: A Curl applet can be embedded in an HTML page, which is supported on all platforms; and an HTML browser window can be embedded in a Curl applet, which is supported only on Windows. The JSON (JavaScript Option Notation) format, commonly used by AJAX applications, is now supported by the Curl API. These features can help create mashups and add Curl to an existing AJAX page.

Curl competes in the RIA category with Adobe Flash and Flex, Microsoft Silverlight, OpenLaszlo, and various AJAX technologies. Like some of these, it can be used for desktop applications as well as Web applications. It can also coexist with most if not all of these, thanks to its new interoperability features.

Version 6 boasts several improvements to the Curl controls; the biggest is a new library of skinnable controls and a style designer for them. Between the style designer, the controls themselves, and the Curl Visual Layout Editor, you can create sophisticated user interfaces with customizable looks quite easily.

The graphics improvements in Curl 6 provide easier access to high-quality rendering, including antialiasing, better handling of curves, the ability to render rotated images, and partial transparency (Alpha blending). On the Windows platform, this was accomplished by the use of GDI+ (Graphics Device Interface). High-quality rendering mode also works on the Mac, but not on Linux.

The new language and IDE features of Curl 6 are welcome, but I classify most of them as expected features that previously were missing: bookmarks in the documentation, conditional breakpoints, debug value display with a mouse hover, the addition of rounded rectangles to the 2-D drawing API, and so on.

All in all, Curl 6.0 continues to be an excellent RIA technology, but is only incrementally improved over the previous release. As I said last August, “Curl may well be the most interesting computer language that you don't already know. Given that you can use the personal tools free forever and deploy the results on the Internet for free, the only barrier to evaluating it would be finding the time.”

InfoWorld Scorecard
Capability (30.0%)
Value (10.0%)
Performance (15.0%)
Ease of development (30.0%)
Documentation (15.0%)
Overall Score (100%)
Curl 6.0 and Curl Pro 6.0 9.0 9.0 9.0 8.0 8.0 8.6

Copyright © 2008 IDG Communications, Inc.

How to choose a low-code development platform