• Home >>
  • Curl - Introducing Curl
Curl, Inc. Logo
Richer Internet Applications
      Introducing Curl
      The Curl RTE
         System Requirements
         Installation Notes
         Mac Beta Notes
      The Curl IDE
         System Requirements
         Installation Notes
      White Papers
      Getting a License
         Enterprise Software
         Fun and Games
      Application Scenarios
         Migration to Curl
         Portals & Dashboards
         Electronic Forms

Introducing Curl

Presenting Information to People

The Curl Rich Internet Application (RIA) platform specializes in presenting information to people and helping them work with it. Wherever information lives in an enterprise, a Curl application can present it right on the desktop of the people who need to see it, understand it, and use it. Curl lets enterprises break out of the "dumb terminal" trap that standard Web application practices lead to.

The Web has brought about an unprecedented level of connectivity, putting more data within reach than ever before and transforming how we access information and services. Enterprises everywhere want to move applications to the Web for two main reasons: the increased reach of Web applications and the reduced IT administration costs of Web deployment. Just install or update files on a Web server, and an application is ready for use across an enterprise or around the world, without any need to update software on thousands of client machines. Unfortunately, Web browsers are inherently limited as application execution platforms, causing most Web applications to be much less usable than the older applications that they replace. Thus, the Web revolution has returned us to the days of "dumb terminal" user interfaces with limited interactivity and vastly inefficient use of communication bandwidth.

As long ago as 1995, a team of MIT computer scientists foresaw this situation and began investigating how to build Rich Internet Applications -- Web-deployed applications with the same rich user interfaces as locally installed applications. The end result of this research was the Curl technology, which is now a full-featured commercial application platform. Until recently, the primary marketing focus for Curl has been in Japan, where Curl is currently used by over 200 industrial customers and is the focus of an ecosystem including more than 40 partner companies that develop applications based on the Curl platform.

What Is Curl?

Curl was conceived to provide a full-featured and robust technology beyond HTML and JavaScript, enabling the development of very rich Web client applications. The Curl platform is designed around the Curl content language, which features a unified notation for information, style, and behavior, enabling its use to implement a broad range of descriptive and active elements ranging from HTML-like text formats to high-performance 3D graphics.

By covering this whole spectrum of capabilities, the Curl content language provides "one-stop shopping" where the whole range of content and behavior requirements of Web applications can be satisfied within one framework. If not using Curl, a developer would have to integrate multiple technologies to achieve similar results, for example by embedding applets in HTML pages, but getting such multiple technologies to work with each other is inherently complicated, increasing application development costs and reducing maintainability.

Furthermore, the Curl content language is designed from the ground up for the purpose of building user interfaces and presenting information to people. Curl's unique and powerful layout and styling capabilities help you build sophisticated user interfaces quickly and express them in compact, concise code.

Curl applications do not require changes in the back-end infrastructure used today for Web-based enterprise applications, mostly built upon J2EE or Microsoft's .Net. Curl provides a new client-side technology fully complementary to these server-side alternatives, able to connect to any server product irrespective of operating system or manufacturer, and thus making efficient use of your existing data and system assets.

The full Curl platform consists of three components:

  1. An extensible programming language (the Curl content language) designed to create interactive Web content.
  2. A runtime engine (the Curl RTE) that executes Curl programs and renders the resulting content.
  3. An IDE (integrated development environment) to construct rich Internet client-side applications.

Strict adherence to standards such as XML for data transmission and HTTP for communication enables seamless integration with both Java- and .Net-based back ends.

How Curl Applications Work

An application programmed in the Curl language is placed on a Web server as source code or in a compressed "pcurl" format that is not human-readable. When requested by a client machine's Web browser, the Web server sends the application file or files to the client, where a just-in-time compiler compiles the application into native code that runs with the full performance of the client processor. From that point, the full power of the application is literally in the hands of the user because the application runs on the user's machine, not on the server. When the application needs additional data from the server, it can request just the needed data. Typically, this data is much more compact than the successive HTML page loads that characterize the typical path through the screens of a first-generation Web application.

The server is freed from much of the processing it typically does because all of the presentation work, as well as appropriate business logic tasks, are offloaded to the client. The network is freed from constant back-and-forth requests and downloading of fresh web pages. Huge savings in server load and network bandwidth result, making Curl-based applications highly scalable.

Since Curl applications can run autonomously on the client side, they can even keep running when there is no network connectivity. Thus, Curl can be used to build "occasionally connected" applications that cache data on the client machine while connected to the network, and can then use the cached data to continue working even when out of range of a network connection.

How Enterprises Can Use Curl

The combination of client-side processing, the content language concept, and Curl's rich set of user-interface APIs makes Curl uniquely suited for enterprise applications such as the following:

  • Dashboards for viewing and understanding enterprise data.
    Curl already supports the communication protocols needed to send data sets from the server to the client machine, and the Curl API includes a rich set of charting features as well as 2D and 3D graphics for building lucid, interactive data displays. Since these data displays are created autonomously on the client machine, they can easily include highly responsive "drill down" capabilities to examine data in more detail. Moreover, Curl's "elastic" graphical layout feature means that dashboard displays can adapt naturally to any window size a user prefers. As the user interactively reconfigures the dashboard display, the current configuration (and even a cache of data received from the server) can be saved on the client machine using Curl's client-side persistent data feature, so the user's next session can begin exactly where the last session left off. Finally, Curl's ability to keep working even when disconnected from the network means that a Curl dashboard can continue to be used for exploring data cached on the client machine even while traveling or otherwise out of reach of a network connection.

  • Portals and "mash-ups" that integrate data from multiple sources.
    Acting as the user's agent, a Curl-based portal application can reach out to multiple information sources, directly using multiple data streams to synthesize an overall view of the data. In addition to this "mash-up" capability, a Curl application can embed non-Curl content such as subsidiary browser frames. The many features that make Curl-based dashboards more interactive and visually engaging are useful for portal applications also.

  • Interactive forms with intelligent data validation.
    Forms-based transactions and data entry are a key part of most enterprise workflows. The smooth integration of high-grade text formatting and active content within the Curl content language framework means Curl-based forms can be visually attractive and effective from a human factors standpoint while at the same time able to apply sophisticated processing to validate and guide user input. It is even easy to build forms that dynamically open out new panels where required by a specific user's situation. Curl-based forms also benefit from occasionally connected computing: a traveling salesman could use a Curl application to enter notes from a customer visit, or prepare his expense report, while flying back home.

  • Live documentation and interactive education.
    The Curl content language is ideally suited for creating dynamic, interactive maintenance manuals, training courses, and other educational or informational materials. The content language framework is at its best when combining interactive calculators, diagrams, visualizations, animations, or simulations with richly formatted text that can also link to or integrate with resources on other Web sites as appropriate. And again, Curl's capability to support occasionally connected computing means that a Curl-based manual can still be used even when a network connection would be inconvenient or unavailable.

Reduced Infrastructure Costs

Contemporary Web applications heavily emphasize server-side processing, so every new application feature, as well as every new application user, increases the load on the server farm. Moreover, the typical result of server-side processing is new HTML pages, including large amounts of repetitive "boilerplate" code, to be distributed to clients. This not only taxes server capacity; it taxes network bandwidth as well, driving up costs for the enterprise's computing and communications infrastructure.

Curl applications do the presentation work and, where appropriate, run business logic on the client side, offloading a major computational burden from server machines and greatly reducing the amount of data transmitted from servers to clients. With this application architecture, enterprises can save money on infrastructure while at the same time increasing the value of Web applications to their users.


Reduces Loads on the Server and Communication Lines

Faster, Cheaper Application Development and Maintenance

The "content language" concept makes Curl the one technology that serves the whole spectrum of requirements for Web applications. Without using Curl, meeting users' needs for active content often requires mixing multiple client-side technologies. Getting these technologies to work smoothly with each other adds complexity to the development process and often prevents delivering the full desired application functionality. Assembling a development team with the needed expertise in all these different technologies is also challenging and expensive. Finally, many of the technologies occur in multiple, not completely compatible versions (e.g., various versions of Internet Explorer and Firefox; different versions of the Java runtime). Building a Web application so that it works across the whole matrix of possible combinations of technology versions that may be installed on a client machine adds further costs to application development and maintenance.

Multiple Languages → Curl
Languages  Curl

Curl Provides "One-Stop Shopping" for Client-Side User Interface Implementation

  • Text description and layout design (like HTML)
  • Scripting language (like JavaScript)
  • Object-oriented programming language (like Java)
  • 2D/3D graphics and multimedia support (like Flash/Shockwave)

Curl simplifies development projects by letting the client side of a Web application be built entirely using a single, quick-to-learn, fully object-oriented language, with a broad range of applicability. Curl provides the features of a markup language for document formatting and image layout, of a procedural language for the description of active content representing motion and processing, and of an object-oriented language for enhanced modularity and code reuse.

Curl also spans the range between "software engineering" and "scripting" languages. Industrial-strength software engineering is supported in the Curl content language by strong typing, compile-time error detection, a packaging architecture for namespace control, and a state-of-the-art object-oriented computing framework. Scripting is supported by the just-in-time compiler, which enables a very rapid edit-run-debug cycle, as well as by features such as the any type, the evaluate function, and the on syntax for event handlers, all of which promote the concise expression of very dynamic code. These and other features enable Curl programs to be clear, concise, and compact. This clarity and compactness is good in "scripting" situations, and in fact it boosts development effectiveness in all situations!

Interfacing to Other Technologies

While the "one-stop shopping" aspect of Curl benefits developers, of course in these times no technology can exist as an island. Accordingly, the Curl technology provides a rich set of bridges to other technologies, including XML, HTTP/HTTPS, TCP/IP, ActiveX, external DLL libraries, etc.

Fighting "Bit Rot"

Computer software is often vulnerable to changes in the underlying software platform. A new operating system or browser version may contain an "improvement" that changes the behavior of some applications in an undesirable way.

The Curl platform is organized so it can evolve without subjecting Curl applications to this kind of "bit rot." Each successive version of the Curl runtime environment is designated by a version number, and a Curl application includes a herald that specifies which versions of the Curl runtime are compatible with it. Multiple versions of the Curl runtime can be installed side by side on the same computer, and when an application is executed, an installed runtime version that is compatible with the application is used. If no compatible version is installed, the user is informed about the situation and is given instructions for finding a compatible runtime.

This architecture guarantees that an application, once operational, will continue to function properly no matter what changes occur in future Curl technology releases. Users thus can freely install new Curl platform releases without fear that old applications will break.

Lower Costs, Higher Value

In today's fast-moving world, Web application developers must respond flexibly to frequent change requests and new requirements. Development managers need to keep development costs low while ensuring an adequate level of technical expertise and application support capability. IT managers are asked to support ever more demanding application features within a budget for server and networking infrastructure.

Meanwhile, users are not fully satisfied with the current levels of Web application capability and quality. Users accustomed to the user interface of client-server applications tend to be frustrated with the usability and functionality of current Web applications. In addition, along with Web access to applications, highly creative users demand sophisticated visualizations and application features, not to mention attractive document presentation and standardized data entry.

Curl is the one solution that can reduce development, maintenance, and infrastructure costs while simultaneously meeting expanded user requirements. In summary, the unique features of the Curl platform combine to provide these benefits for Web-deployed enterprise applications:

  • Improved application usability through richer, more interactive user interfaces.
  • IT cost savings from Web deployment.
  • Reduced server load and network bandwidth requirements.
  • Simpler, faster application development.
  • Reduced application maintenance costs.