Jess has been upgraded with a number of bells and whistles in the past five or six years: fuzzy logic capability for really
nasty logic problems, backward-chaining for configuration and resource management problems, an Eclipse IDE that provides a
pretty decent GUI development and debugging facility, and the ability to interface more directly with Java Beans, using either
a static or a dynamic method. In the static method, the Java Beans are referenced as objects to be used in the rules and updated
in response to internal changes (inside the Jess engine) as the rules are running. The dynamic method updates the external
Java Beans in response to external changes, so it supports real-time applications.
From the beginning Jess has remained a free system for personal use ($100 with source code) and easily affordable for most
businesses, costing as much as $15,000 for a full-blown, commercial license including source code and no runtime fees.
The new Eclipse interface is quite good. The GUI even includes something that most high-end BRMS tools don’t provide: a graphical
representation of the Rete network, something only a real geek could love. For debugging, it allows break points within the
rules but only on right-hand-side method calls. This means that you cannot break just anywhere in a rule. For example, you
cannot stop the running of the rules at certain points on the left-hand side and examine the Agenda Table, or the value of
any of the object attributes, and so on -- information that would greatly help in debugging. And, for the novice, the output
is cryptic; he or she must go back to the documentation to understand the results.
Further, the debugger gives you just the bare bones -- basically, an explanation of the exceptions that Jess throws. It could
be dramatically improved with reporting on which rule was called the most number of times, which rule took the most time to
execute, potential rule conflicts, potential rule subsumption, and so on. But then, Jess is not the $50,000 package that includes
the kitchen sink. To implement Jess, you must depend on someone who knows how to debug Java and someone who knows how to debug
declarative rules.
The code syntax is difficult for most C/C++ or Java or C# programmers to understand. For one thing, the rule syntax must follow
that of the current CLIPS incarnation, which is archaic at best. Although Eclipse helps with everything else, it does not
put a pretty face on CLIPS syntax. On the plus side, Jess code is much more concise than the equivalent code in JBoss Rules
(see a comparison here) or some other BRMS engines. Some users (including E-Loan) have written an interface that brings a more industry-specific
look to the underlying Jess code.