Exclusive: JackBe nimble, JackBe quick for cranking out JavaScript

IDE enables developers to code rich clients that run on the browser

If you happen to be an old Web developer and think you’ve seen all the tricks that can be coded in HTML, consider looking at JackBe NQ Suite 4.0, a toolkit for producing sophisticated, JavaScript-enabled forms and spreadsheets. The IDE runs entirely in a browser as DHTML, but you’ll swear it’s a custom client application coded in Assembler. It’s that snappy.

The JackBe development environment has arrived just as interest in JavaScript and AJAX (Asynchronous JavaScript and XML) programming is exploding.

Although JavaScript dates to the second edition of Netscape, launched in 1995, developers are just beginning to understand that the browser and DHTML offer much of the highly interactive, sophisticated interfaces custom clients offer, but without many of the hassles. Getting a user to install a JavaScript tool developed with JackBe is as simple as getting him or her to go to a Web page with a current browser such as Firefox.

Lean JavaScript Machine

The secret of the system is its tightly coded library of essential JavaScript functions designed to be loaded onto a user’s PC the first time he or she visits a site. This file, approximately 21KB, is filled with JavaScript code for building menus, input boxes, and spreadsheets in HTML. The company squeezed out all the fat by giving the functions names only two characters long. It reminds me of the days when real programmers wrote bitbanging code in hex.

The rest of any Web application generated by JackBe is stitched together with many of these functions. Any programmer who has written software to generate software will understand how this approach saves bandwidth. Developers can spin up elaborate tables from a few library calls instead of writing endless lines of HTML tags.

If you remember doing programming when memory was expensive, you’ll appreciate the lengths JackBe’s creators went to squeeze out bytes. The pages, for instance, are specified by a single call to the Z function with a single string as a parameter.

There are also more specific functions for common problems. MY, for instance, takes a number and formats it with a dollar sign and two digits of precision. PN finds the parent node of a particular part of the document tree.

The names, types, and locations of all the parts are encoded into the string. The endless sea of DIV tags can be replaced by only a few hundred characters passed to a JavaScript library.

The result is a Web page that is more of a program than marked-up text. I think that JackBe is just beginning to explore how this can save features. The JackBe developers tell me that they’re constantly revising and extending the libraries to offer new widgets, and I predict that they’ll roll out some interesting ones. You can also extend the routines yourself, often in an object-oriented way, by defining new routines for jobs like event handlers.

The server-side of the JackBe development process runs in a Java servlet container. You install it by dropping in a WAR (Web Application Archive) file and then starting up the IDE by entering the URL for the file into IE.

The IDE itself must run in IE, but the tools it creates are cross-browser compliant. You can rip out the JavaScript code and use it alone, but the current development environment works best when you’re integrating it with J2EE applications.

The IDE is impressive. I’ve never seen anything do this with JavaScript in a browser. The JackBe-produced applications have close to a real client feel. When you save a form, for instance, there’s little indication the form is being turned into a URL and posted to the server. It feels like you’re saving something directly to disk.

There are some rough spots, however, where the code hung for a few seconds. This could be the fault of the browser platform, not of JackBe, but it’s difficult to know. Unfortunately, the AJAX platform is still rough and imperfect. But when the system ran smoothly, which it did most of the time, the applications I saw were as nice as the best client code.

The IDE contains many of the standard widgets found in most development environments, including menus, scroll bars, buttons, text input sections, and most of the standard elements. These can be grouped together into panes and stitched together with tabs. If necessary, you can extend them fairly easily with your own JavaScript.

Room to Grow

JackBe’s greatest competition may come from other packages of JavaScript libraries and open source compilations, such as SAJAX (Simple AJAX). JackBe, however, offers more widgets with deeper interfaces than any other library I’ve seen. The package is also surprisingly fast, something I’m reminded of every time I visit a Web site with badly coded JavaScript.

Nonetheless, I found the package incomplete in a few small ways. The project creation wizard, for instance, requires you to fill in many paths for files instead of doing it for you. This led me to mangle part of my Tomcat servlet container when I put in a wrong path.

This was easy to fix — I just deleted a few directories — but it hints that the tool isn’t ready for the average Web designer; a programmer needs to be in the loop. The tool may be ready one day for a nonprogrammer, though.

JackBe’s roughness is due to the company’s youth. The system isn’t available as a shrink-wrapped download; you must consume the training classes and technical support the company offers. I predict JackBe will eventually reach the point where the documentation and the polish are strong enough to carry a newcomer.

Until then, the company understands it must teach its customers a few new tricks. The snappiness of the JavaScript-enabled Web pages makes that effort worthwhile.

InfoWorld Scorecard
Capability (30.0%)
Value (10.0%)
Documentation (15.0%)
Performance (15.0%)
Ease of use (30.0%)
Overall Score (100%)
JackBe NQ Suite 4.0 9.0 9.0 7.0 8.0 8.0 8.3
Mobile Security Insider: iOS vs. Android vs. BlackBerry vs. Windows Phone
Join the discussion
Be the first to comment on this article. Our Commenting Policies