Content area
Summary - Java's creator, Sun Microsystems, has failed to seize the initiative to create APIs to support evolutionary programming in Java. Someday, perhaps, Java programmers will have a set of interfaces for attaching machine learning and evolutionary objects from service providers in the evolutionary computation field. But, hey, don't wait for Sun. Plenty of resources are available today that can help you breed better Java applications. This article covers some of those resources and examines the basic AI (artificial intelligence) concepts to show you how to create a smarter application. (2,700 words)
Volutionary computation is crucial for the next generation of applications. Evolutionary computation is software that adds and removes methods, parameters, and iterators, as well as generally modifies the elements of an algorithm in response to a fitness test: Did algorithm i yield a better fitness result than algorithm j, where fitness is time, distance, or some other value measure? The field of evolutionary computation, while shrouded in academia, provides the gateway for writing smart, adaptive, and self-evolving Java applications. Sadly, Sun Microsystems has invested thousands of man- hours in APIs related to dashboard technology and has yet to show a serious initiative for bringing artificial intelligence (AI) into the Java mainstream. Support for such an effort would make for a tremendous step in the advancement of Java computing.
Genetic programming is the application of a genetic algorithm to programming. This is the area of greatest promise, in my view, for Java. First, Java has a rich and standard introspection API that allows a method to discover and then invoke other methods. This feature cannot be underestimated. Evolution is all about invoking small, simple methods with changing parameters. The ability to invoke a method dynamically is a strong chromosome in the language architecture. Another compelling feature is the notion of runtime compilation. With Java, you can compose and compile class files on the fly -- another important tool to the GA developer.