Kaffe is a great choice as a base for virtual machine education and/or research, or if you need a virtual machine as an integral component of an open source or free software Java distribution. Kaffe is constantly under development, and lacks compatibility in many ways with the current releases of Java. It lacks many key features of a full Java virtual machine implementation - including security related features such as a complete bytecode verifier essential for running untrusted code.
Kaffe is not the best Java virtual machine for developing Java applications, as it lacks much in the way of documentation, compatibility, debugging/profiling support, etc. If you are learning Java, or are looking for a complete Java development environment, you will probably be best served by using a "real" Java development environment (such as the JDK) licensed from Sun. Check out our links page for more information.