allegro-cl archives 2000-9-13 | home index prev H thread prev K thread next J next L |
From: Lee Swomley Subject: Re: lisp-java interface Date: 2000-9-13 18:20 Here is a brief update on the J-Linker and Jill functionality. You will be able to find more information on the Franz web-site in the next several weeks. The new functionality that our developers are currently working on for Allegro CL v6.0 includes the following: *Source Level Debugging *Franz Web Server *Mail Support *SSL Support *Lisp-Java Interface *Dynamic Java Compiler *Dynamic Parser/Generator of HTML *Dynamic XML Importer/Exporter Allegro Serve is out and can be found on the web site, www.franz.com Here is some advanced news on the Java features: JLinker (Allows Allegro CL to evaluate Java expressions-for communication with unsuspecting Java applications) Jill (A language that expresses Java semantics using Lisp syntax, and an in-memory compiler that compiles to Java class files. The Java application then loads in that class file. For example, LavaLink can generate Java class files at Runtime and send these to the browser. The browser can read in the Java code.) Java Tools Suite for Allegro CL v6.0 Our goal in developing these tools was to provide a way of communication between Java and Allegro CL, and enabling Allegro CL programmers to leverage the large number of Java class libraries. The first tool, JLinker, allows Allegro CL to call Java methods and Java to call Lisp functions. This makes Java development dynamic and avoids the edit-compile-link cycle since the control flow between calls to Java methods can be developed in the dynamic Lisp environment. Since JavaLink uses TCP/IP to communicate with Java, it allows the Java code to be run on a machine different from the development machine. This "link" is very easy to use because 1) no additional software needed 2) it simply call Java methods ... A significant benefit of JLinker is that the Java code does not need to be modified, prepared, or "wrapped" in any way. The Java source code is not necessary. In contrast, Java RMI is simply a protocol that allows distributed Java applications to be written. Corba is also a protocol that requires wrappers to interface the various components. The second tool, JiL, is a language that expresses Java semantics (meaning) using Lisp syntax (grammar), and an in-memory compiler that compiles to Java class files (bytecode). The Java application then loads in that class file (bytecode). For example, JiL (running in a web server such as AllegroServe) can generate Java class files (bytecode) at runtime, and send these to the browser. The browser can read in the Java code, and execute it, allowing Allegro CL developers to communicate with, and add functionality to, the front end while never having to leave the Allegro CL environment. The key benefits of JiL is that developers can write Java code using Lisp syntax, and leverage the power Lisp's interactive environment and functionality, such as macros, that are not available in Java. These tools have benefits over RMI because you do not have to build an interface, between Java and Lisp, before calling Java functions. Only the class or Bean name needs to be sent. This also enables quicker evolution of an application. The fact that in CL one can call any function at any layer in the application, gives developers the benefit of testing an application at any point in the code - there is no need to compile the entire application. At 11:14 AM 9/13/00 -1000, Ralph Freese wrote: |