Houston (October 25, 1997) -- Sun Microsystems Inc. has released alpha code of a new Java scripting language that it hopes will become the high-level scripting environment of choice for Java developers. The language, called Jacl (JAva Command Language) is a 100 percent Java implementation of Sun's Tcl scripting language. It has been released along with a Tcl extension called Tcl Blend, which will allow developers to write new Tcl extensions in Java rather than C or C++, according to Sun.
If you haven't heard of Jacl or Tcl Blend, don't be surprised. It was announced in a rather low-key e-mail to interested developers last Wednesday. In that e-mail, SunScript team leader Raymond Johnson called the technology, "early fruits of a new project at Sun Laboratories to integrate the Tcl and Java programming languages in a way that brings more power to each language."
A plethora of technologies -- CORBA, JavaBeans, DCOM, XML, PowerBuilder, visual programming, object orientation, and others -- already promise to assemble Java pieces easily. Why introduce more? The goal of SunScript (articulated by the team as "script once, run everywhere") is to realize John Ousterhout's vision of scripting as "programming for the 21st Century." Ousterhout, the original author of Tcl in 1988, is currently the project leader of SunScript.
Taking Java development to a higher level
Java has certainly revolutionized marketing and litigation. Development models for Java programmers, however, have settled into familiar patterns. Leading vendors often "re-purpose" existing utilities first targeted for Pascal, Smalltalk, or C. Application teams most often aspire to a kind of incrementalism that yields conventional-looking applications. Java makes the process a bit safer and more portable.
Ousterhout's flavor of scripting touches a higher paradigm. "The second wave of Webmasters -- they're not the hard-core developers -- already use Perl, Frontier, and Hypercard," explained Johnson, in an interview. More and more developers are ready for a "high-level," easily understood language which lends itself to prototyping and rapid development. Just as Visual Basic exploded because of its success reusing OCX components, SunScript is on a mission to permit programmers to assemble Java-coded components. Jacl and Tcl Blend deliver that ease in scripting with higher-level functionality no other language possesses.
The higher-level functionality of Jacl can be seen in comparing it to other Java development offerings. VBScript, for example, offers both client and server aspects of scripting; Jacl, though, is transparently mobile across all boundaries between client, server, and middleware hosts. JavaBeans present another example of a Tcl advantage. While JavaBeans package Java functionality for reuse, TclBlend uses reflexivity to reach directly into existing Java objects *at runtime* -- there's no packaging required. With Wednesday's announcement, SunScript reinforces its claim that nothing links Java better than Jacl and Tcl Blend.
Scripting allows programmatic control of the user interface. That's important because it allows the interface to be intelligent.
For instance, let's look at dragging-and-dropping visual components on a palette. As effective as it has been in the marketplace, this approach fundamentally limits developers to a static, "unresponsive" user interface. Or so believes Brian Kernighan, noted technical author of Bell Laboratories. The best user interfaces are those which adapt to the knowledge and actions of their users. Scripted interfaces can be "very dynamic, very user-oriented," said Kernighan at his July 1997 Tcl Workshop keynote in Boston.
Suppose you agree scripting Java objects is a uniquely effective way to work through important steps of a development process. The question remains: Why choose Tcl as your scripting language?
Answering that is SunScript's real purpose in this week's announcement. It's first argument for Tcl is that it's reliable. The several thousand commercial applications which depend on Tcl daily attest to its maturity. Second, it exploits the full potential of the scripting approach because of the ease with which it's possible to move pieces of functionality into Tcl -- and back out again.
The bet SunScript is making is on a kind of race. Can Jacl and Tcl Blend hold their technological lead long enough to elevate their profile to mainstream status? Or will they only be remembered as a clever tangent that lost in a race as the dominant existing scripting languages rushed to catch up? As 1997 closes, Jacl and Tcl Blend offer more complete "scriptability" for Java than any other competitor. The question is, do enough developers really want that power today? It's clear where Johnson's group is putting its money.
You can make a different, more careful bet -- one that works for you. Visit the SunScript site and decide which demonstration of Java scripting corresponds to a problem you currently face. Download the alpha software and launch a pilot project. In the worst case you like the results, but the market at large swings to a scripting language other than what you've chosen. That's a small risk. It just means you might need to rewrap your application some day. At best, you're one of the first to become an expert at "programming for the 21st Century." :END_BODY
Learn more about this topic
- "Jacl and Tcl Blend," October 1997 announcement by SunScript unit of Sun Microsystems http://sunscript.sun.com/
- ScriptingHigher Level Programming for the 21st Century, May 1997 white paper by John Ousterhout, project lead of SunScript http://www.sunlabs.com/people/john.ousterhout/scripting.html
- The Relationship Between Tcl/Tk and Java, July 1997 explanation by SunScript unit of Sun Microsystems http://sunscript.sun.com/techcorner/java.html
- "Sun reverses course on Tcl products", August 1997 SunWorld coverage of 1997 Tcl Workshop http://www.sun.com/sunworldonline/swol-08-1997/swol-08-sunscript.html
- "Choosing a scripting language," October 1997 SunWorld cover story http://www.sun.com/sunworldonline/swol-10-1997/swol-10-scripting.html
- "Commercial releases reliant on Tcl:" Cameron Laird's index to the suitability of Tcl for serious applications http://starbase.neosoft.com/~claird/comp.lang.tcl/commercial-tcl.html
- "Personal notes on Jacl:" Cameron's page of updates and commentary on this article http://starbase.neosoft.com/~claird/comp.lang.java/jacl.html