RIAs (rich Internet applications) are all the rage now, and for good reason: Given the wide availability of high-speed Internet service, they have the potential to combine the ease-of-access of Web applications with the ease-of-use of desktop applications. Curl, which is a programming language, an IDE, and a runtime engine, was actually ahead of its time back in 2003, when I wrote about Curl 2.0 for Byte.com. However, broadband access wasn't quite so widespread at the time, and the idea of RIAs didn't seem quite so compelling.
[ See also: InfoWorld Technology of the Year Awards Application Development winners | Screencast: Curl 5.0 ]
That's all changed. Curl 5.0, available in both a Personal and Pro edition, is now positioned as an industrial-strength RIA platform: It has all the good attributes of RIAs -- Web-enabled, lightweight, and a rich interface -- plus additional characteristics that make it suitable for enterprise use. Curl applications can handle intermittent connectivity, support large data sets, run securely, and present complex user interfaces gracefully.
The commercial Curl I'm writing about here needs to be distinguished from curl or cURL, the command line tool for transferring files with URL syntax, and the bindings for libcurl available for many languages. Curl was originally developed as an MIT research project; this is a spin-off from that project.
So why haven't you heard about Curl? Curl of Cambridge, Mass., was acquired by Sumisho Computer Systems of Japan in 2004, and Curl was primarily marketed in Japan until this spring.
With an 8MB runtime engine, Curl 5.0 falls near the middle of the range of rich Internet clients as far as "heaviness." It falls near the high end of the range when it comes to runtime performance. It has an impressive JIT (just-in-time) compiler with code caching and good support for graphics hardware. This is quite clear from some of the standard Curl demos and samples, especially the ones that demonstrate ray tracing.
Easy does it
Curl's original design goals were to unify documents and applications; to provide markup, scripting, and object-oriented programming in one environment with high performance; to create interactive UIs with a minimum of code; to support rapid development; and to be a "gentle slope" language. By "gentle slope," Curl's designers mean that all APIs can be extended, simple tasks require only simple code, and the language needs only the minimum of boilerplate code.
In my experience, Curl meets most of these goals at the language level, and the visual layout editor picks up the slack in the area of rapid UI development.
Curl has an impressive set of features. Starting with portability, Curl applications run on Windows, Linux, and Mac OS X, although the Curl IDE currently runs only on Windows and Linux. There are different client RTEs for each platform, but the Curl source doesn't change from platform to platform, and is compiled just-in-time on the client. I'm not aware of any compatibility issues among platforms, but I haven't tested this firsthand.
For data management and display, Curl 5.0 has RecordSet, RecordFilter, RecordSort, RecordView, RecordGrid, and RecordForm objects. It can manipulate structured data internally, fetch and store data in a database, and work with data stored in files on the client. The typical way of connecting a Curl RecordSet to a database server is to use the provided Java database connection servlet and a JDBC driver. JDBC drivers are available for a wide assortment of databases, and a JDBC-ODBC bridge is available for Windows.
Curl ships with XML, SAX (Simple API for XML), and SOAP classes. Further, it has a free add-on, the Curl Web Services SDK, that provides WSDL, XML Document Object Model, and XPath functionality. This add-on can import WSDL and generate a Curl package that lets you call a Web service through Curl classes and methods without having to explicitly deal with SOAP requests and responses.
A less capable version of this, the Curl XML Document Model Library, was all that was publicly available for download at the time of this review. The prerelease WSDK 1.0.4 that I reviewed was provided by Curl support, and an updated build of this will be available for download in the fall.
The Curl IDE features dockable panes and a layout reminiscent of Visual Studio or Eclipse. Besides a code editor and debugger, the IDE has a VLE (Visual Layout Editor). All of the above are free.
The Pro IDE adds source-code control integration, performance profiling and coverage analysis tools, and the ability to create VLE extensions, that is, add custom controls to the VLE. Professional Server features include HTTPS support (SSL/TLS [Transport Layer Security] encryption), complex concurrency (for high performance), applets with privilege (to allow operations beyond the sandbox), pCurl encryption (which hides your source code and improves performance), single sign-on (which lets a Curl applet get credentials from a Web site), and integration with the Mercury Interactive QuickTest Professional tools.
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, and you may be pleasantly surprised at how quickly you pick it up. If you get serious about Curl and need to evaluate the professional tools and runtime, you can download a free 60-day trial. Curl should certainly be an option to consider for your next RIA project.
Ease of development (30.0%)
Overall Score (100%)
Having trouble installing and setting up Win10? You aren’t alone. Here are many of the most common...
It's all about knowing how to build an open source community -- plus experience running applications in...
Win7 Update scans got you fuming? Here’s how to make the most of Microsoft’s 'magic' speed-up patch
Look to these clever open source tools to keep secrets out of source code, identify malicious files,...
From a simple platform for beginners to an expert-level development workbench, there's an IDE for most...
Technology may appear to be smart, but in most cases it merely has great logic. That’s not the same as...
Stop obsessing about the latest overhyped security threats. Delve into your own data about successful...