Hi,

First, thanks to all who provided tips on how to get more dynamism with
Jess.

If you don't want to hear a further defense of dynamic languages (esp.
Lisp), or read some further dings against COOL w.r.t. Jess, skip this
post...

friedman_hill ernest j wrote:
<...snip>

> On the other hand, strongly typed, strongly structured languages like
> Java have some advantages, notably in their scalability and their
> performance. Large systems written in Java remain comprehensible;
> understanding large LISP programs can become an impossible task quite
> quickly. 

I would disagree and invert that sentiment, at least for
comprehensibility.  I find Lisp/CLOS much more readable.  Especially so
if the programs have the same scope of work and are (equally) well
written.  Lisp programs that are large are usually attempting to
accomplish very complex tasks.  I would argue that Lisp is more
expressive/concise.  I generally find static typing more of an irritant
than a help when developing, given a good interactive environment (maybe
with type inferencing this would be less onerous).

BTW, both Lisp and CLOS provide perfectly fine typing facilities (and
they are optional!).

> And Java's many restrictions mean that a just-in-time
> compiler knows enough to produce code which closely approaches the
> quality of equivalent compiled C code in performance, without
> dedicated hardware.

Modern Lisps have some amazing optimizations (that can take advantage of
typing) and excellent garbage collectors. I have seen benchmarks w.r.t.
to Java performance, and Java has sped up, but I till find that Java
applications are space and time hogs, esp. w.r.t. to C.

<...snip>

> You hit on this in your last paragraph
> below; Jess doesn't exist because Java is a great language to write an
> inference engine in; Jess exists because there are a lot of Java
> applications that need an inference engine, and a lot of Java
> programmers who want that capability. And Jess reasons over Java Beans
> instead of COOL objects because, in an important sense, Java Beans are
> "real" -- they exist outside of the Jess rulebase -- while COOL
> objects are not real -- they exist only inside of CLIPS; there is no
> Rogue Wave COOL object library. Reasoning about Java Beans lets a Jess
> program directly reason about the "real world".

COOL *is* autistic and has trouble communicating with others.  I'm not
sure I like the implied criteria for a "real" object though ;)

I like COOL as a language, but to warn potential COOL enthusiasts, there
are three noteworthy weaknesses that undermine its relative value, if
anyone's trying to balance COOL vs. Java.  1) COOL has no class library
(you roll your own).  2) COOL has no collection classes, providing only
the CLIPS MULTIFIELD type.  3) No metaclasses/"classes as instances"
facility is provided, classes are not objects themselves.
 
> One more thing, just as a curiosity:
> 
> > Interpretive, interative reflection on objects is
> > a *big* deal (YMMV).
> 
> Note that Jess (like other Java-hosted scripting languages) can
> provide some of this capability for Java. I very often use Jess from
> the command like in this mode -- i.e., as an interactive shell in
> which I can inspect and change the contents of Java objects.

Thanks for the correction.  This is not just a curiosity, it makes a big
difference.

- Mike

---------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the
list (use your own address!) List problems? Notify [EMAIL PROTECTED]
---------------------------------------------------------------------

Reply via email to