Repository navigation
WatchmakerSuite (Java)
WatchmakerSuite (Java) is a reference implementation of all four Blind Watchmaker programs within a single unified and extensible framework, in the Java programming language.
The Java implementation is presently designed to satisfy these requirements:
- Every feature of the original Blind Watchmaker programs should be available in WatchmakerSuite, including features that were left partially unimplemented in the original;
- Workflow should follow the look and feel of the original Blind Watchmaker programs for Macintosh, so that the user can move with ease from using the original programs to using WatchmakerSuite and back again;
- Translate core sections of the original Pascal code into Java in such a way that key algorithms may be read side-by-side in a meaningful way;
- Use no features of the Java language not available in the JDK 1.6 version of the language, to leverage the number of installed Java virtual machines at the time of release;
- The reference implementation will use Swing as the initial graphical user interface, but with a view towards making as much of the WatchmakerSuite API platform-neutral with respect to presentation layer (to speed the porting of WatchmakerSuite to other Java-driven platforms, such as Android);
- The reference implementation will use sound object-oriented design patterns which can be easily implemented in any modern object oriented programming language (to ease the translation of WatchmakerSuite into other implementation languages than Java.);
- The framework must be easily extensible, so that new species of biomorph may be added easily. The interface between the program and specific species of biomorph must be as general as possible, so that implementation details of the new species are free to vary on the whim of the implementor of the new species.
The Java implementation divides source code into a number of Eclipse projects.
-
docs contains documentation and original Pascal source files, together with the Pascal Second Edition of Blind Watchmaker for the Classic Macintosh
-
Watchmaker contains Java classes which are not specific either to a particular graphical user interface library, or to any specific species of biomorph.
-
WatchmakerDawkinsMorphs contains Java classes which implement the genomes and embryologies of the four original species of biomorph created by Richard Dawkins himself for the original Blind Watchmaker programs.
-
WatchmakerDawkinsMorphsSwing contains Java classes which contain drawing code for the phenotypes of Richard Dawkins' original species of biomorph, specialized for use with the Swing graphical user interface.
-
WatchmakerSwing contains Java classes which implement the various views of the Watchmaker Suite program, without respect to any specific species of biomorph.
-
WatchmakerSwingStandalone contains the "main class" used for running WatchmakerSuite as a standalone Java Swing application.