In a nutshell, MiniJLisp:
MiniJLisp does not sacrifice source code space for speed of interpretation. The philosophy is: If speed is important, use the native language.
Java already makes it relatively easy to add new functionality to a running system. Undeniably native Java runs at least as fast as any embedded language that runs on the Java virtual machine. On the other hand, there are other Java based Lisp and Scheme implementations, which can also be used as embedded languages, and place more emphasis on speed. However, those implementations are at least an order of magnitude bigger than MiniJLisp.
Having a minimal implementation of a concept can be a boon to new ideas. I hope that Java programmers who are not familiar with either Lisp or the design and implementation of programming languages find MiniJLisp interesting. Actually, one of my main motivations for working on MiniJLisp is learning more about Lisp and the design and implementation of programming languages.
MiniJLisp does not sacrifice Java source code for implementing Lisp features. With the exception of a minimal set of built-in primitives, the Lisp language itself is used as an implementation language. MiniJLisp directly manipulates Java Objects. For example, integers are objects of the Integer class and strings are objects of the String class.