[ANN] JudoScript, Scripting for Java

James Huang judoscript@hotmail.com
22 Mar 2002 11:36:19 -0800


Introduced is JudoScript, a powerful scripting language for the Java


JudoScript is a general-purpose scripting language, built on top of
Java. It allows to _use_ the riches in Java, that is, standard J2xE
packages as well as open source Java software. It is designed
ground-up, so there is no drag of history nor stretch for a new

Scripting languages are, as we all know, for doing things easily and
efficiently. JudoScript brings easy-of-use to a new level. Because it
is a 3GL-and-4GL (GL stands for Generation-Language). Many of the
familiar languages, Python included, are 3GLs. These languages provide
a relatively small set of core language constructs and syntax, plus an
extension mechanism (libraries or modules or Java packages, ...), so
that standard functionalities and user-defined ones are treated alike.
3GL scripting languages also embody "syntactic sugar" and that makes
them much easier to do things quickly than system languages such as
C/C++ and Java. 4GLs, on the other hand, are special-purpose
programming languages. They contain domain-rich constructs, so you can
"speak your language" while programming. Another way to put it, they
allow to specify intentions, not solutions, and the language engines
know how to do. The best 4GL example is SQL.

JudoScript has embedded many application features right at the
language level, making it a 4GL for these common application areas
that are useful to many people. Its most notable features include:
JDBC scripting, XML scripting and XSLT, HTML scraping, seamless Java
scripting, HTTP client and server, archiving, send mail, scheduler
with monitor, run executables, SSH and SCP, Windows registry, ....
JudoScript is an open language (and open source, btw), that any good
open source Java software and new JDK features can be easily
integrated. The cool thing for Java-savvy programmers is, JudoScript
tries to follow Java's models as much as possible (unless there is no
Java counterpart), so that knowledge about a specific field (e.g.
JDBC, ZIP, XML, ...) can be easily reused and requires minimal
mind-set switch. JudoScript is an easier way to use Java features, not
re-inventing everything in its own terms.

Language design. JudoScript very much shares the philosophy with
Python, which is good. It is not purist O.O., but rather a procedural
and object-oriented hybrid language. It supports thread programming,
similar but easier than Java's model. Exception handling, resume
statement, function variables, ... It also has many powerful data
structures. For instance, it has TableData, a two-dimensional data
structure with column captions. It also has an ordered map, and
supports sort by value in addition to by key. It is a programmers'

Cross-platform-ness of Java is a double-edged sword. JudoScript's
drawbacks largely stem from its other edge. Because Java is kind of
common denominator of all OS's, some of the O.S.-specific features are
not available in a JVM, such as some file-system features.
Chmod/chown/chgrp are supported by JudoScript, but they are
implemented as external executable runs. Fortunately, Java does cover
most OS features, so 99% of the time you won't have problems using.

Last but not least, JudoScript is open source under LGPL, so you are
free and encouraged to use, bundle and embed in your Java software.
Yes, it supports BSF and its own, lighter-weight interface.

Hope you will have a lot of fun with JudoScript from this point on.
Keep writing Python scripts; when it comes to Java, use JudoScript ;-)


-James Huang, author of JudoScript