March 16, 2001, 9:41 AM —
"BeanShell is a small, free, embeddable, Java source interpreter with object scripting language features, written in Java...You can use BeanShell interactively for Java experimentation and debugging or as a simple scripting engine for your applications. In short: BeanShell is a dynamically interpreted Java, plus some useful stuff."
That's the introduction on the BeanShell Website; it's an accurate one. Pat Niemeyer, author of Exploring Java, wrote BeanShell, an interactive loosening of Java whose use continues to grow. The Java Development Environment (JDE) for Emacs and XEmacs already includes it, and a couple of other high-profile products will likely name it their embedded scripting language this winter.
Niemeyer recognizes that at this point, "JPython is certainly the best-known scripting language for Java." JPython is the Python variant often mentioned in Regular Expressions. BeanShell fans find Niemeyer's interpreter far more natural, though, simply because it's so close to standard Java. Moreover, Niemeyer claims, "BeanShell is tiny in comparison (about 200 KB) and rapidly becoming just as complete."
After an early phase in which Niemeyer did all the work to establish BeanShell's character, he moved its maintenance to SourceForge. "We can now start taking advantage of some of the hundreds of developers who are on the mailing list in a more direct way," he said. Version 1.1 should be in early beta as you read this.
NQL grows rapidly
Network Query Language (NQL) has emerged from "five years of stealth development" and is growing rapidly, according to chief technologist David Pallmann. NQL Inc., a publicly traded development house, formally released the best of its core technology as the NQL programming language this April. NQL looks like many other Algol-derived languages. It approaches the conciseness of Perl -- not with Perl's rather undisciplined abbreviations and context dependences, but through creative application of a syntactic stack alongside a conventional syntax of keywords and variables. Thus a bare while implicitly tests the current value on top of the stack. This makes for quite a few handy idioms for common programming constructs.
NQL's advertised virtue is its four large built-in capabilities, available to competing scripting languages only through the use of external modules:
- Communications
- Conversion
- Automation
- Intelligent behavior
NQL needs those domains to give its customers the custom development that it has packaged into a standalone language. They combine to make NQL's specialty "intelligent agents" that tackle notoriously thorny development challenges, such as bank-account consolidation. While Pallmann set much of the groundwork in his book Programming Bots, Spiders and Intelligent Agents in Microsoft Visual C++, he said NQL now far surpasses those teachings.
Pallmann won our interest when he said, "We never ask customers to throw out their infrastructure." At the language level, that means NQL is sufficiently lightweight and flexible to fit in with other languages and communications standards. NQL fully supports ActiveX, for example, and can link to foreign functions coded in most other languages.
NQL was originally available only for Windows variants, but the company released a Java version on Oct. 11, 2000. REBOL, which we profiled last month, has emphasized its portability in marketing itself to many of the same customers. NQL Inc. concentrated on platforms where it calculated it could go beyond the "least common denominator."
Enhancements planned for the next release of NQL include:
- Expansion of pattern-matching to include regular extensions
- Internet protocols beyond FTP, HTTP, MAPI, ODBC, and others already built in
- Net compatibility
NQL's browser recorder showcases the language's achievement particularly well. This feature transcribes Web sessions into native NQL scripts, to the point of automating client-side JavaScript evaluation; that alone justifies the $2,500 entry price for a workstation edition of NQL.
Simkin minimizes scripting weight for object orientation
Simkin is a lightweight embeddable scripting language specially designed for Java and C++ applications running under either Win32 or Mac OS. Simkin's most visible marketplace successes are a few computer games and the Sibelius musical notation application.













