Datasheet

4
Part I Curl Content Language Fundamentals
Curl was specifically designed to have a gentle slope learning curve. This means
that no matter what your current knowledge of Curl, learning the next level of func-
tionality is only slightly harder.
At one end of the learning curve, Curl is a simple markup language that you can use
in place of HTML. Authors can learn this aspect of Curl in a few minutes. Sliding up
the curve a notch, you can create simple interface elements such as buttons and
drop-down menus, with variables and local data validation. At the higher end of the
learning curve, you can have object-oriented client/server applications with 3D
graphics and other advanced tools.
Borrowing from Dylan, an object-oriented language, Curl combines the flexibility of
dynamic languages (Smalltalk, Scheme) with the speed of static-typed languages
(C++, Eiffel). This combination also provides a gentle slope for development styles.
When prototyping, Curls support of typeless variables and class variables provides
flexibility and speed of development. For commercial code, you can add more static
typing to improve correctness and execution speed.
Surge Lab IDE
The Surge Lab provides all the tools an author or developer needs to create Curl
content. In theory, Curl content could be written in any text editor, but the Surge
Lab provides much more functionality and its free.
The Surge Lab includes its own syntax-aware Source Editor, API Viewer, Debugger,
Object Inspector, and Release Tool for packaging Curl code. The Lab also allows
you to run applets locally without needing a Web server. See Chapter 3 for a tutorial
on the Surge Lab.
Surge plug-in
The Surge plug-in provides a sophisticated runtime environment for running Curl
code securely. The plug-in includes a just-in-time (JIT) compiler and a unique
security model that protects the users computer from the issues that have
plagued mobile code in the past. Developers can affect the executable code by
sending directives to the JIT compiler. These directives can control the trade-offs
between the freedom of typeless programming versus code-safety and speed.
The Surge plug-in also permits a single user to compile and run multiple versions
of Curl. If the applet needs a newer version of Curl, the plug-in gives the user the
option of downloading the newer module. This solves the thorny problem of
backward compatibility that haunts many other plug-ins.
Finally, the plug-in acts as the traffic cop that enforces many of Curls security
features. These include
Verifying an applets right to
include or import Curl files from the host and
comparing package versions to ensure compatibility
c4942-1 ch01.F 4/29/02 9:01 AM Page 4