Hello Professor Sean Luke!
Thanks for letting me know of your situation as professor and students
developing code. Until now, I had no idea.
Now that I understand the situation, I can better plan for the future.
Contrary to some the impression that I have given, I am not planning on
making fundamental changes to ECJ. I donít want to delete the performance
optimization that is already there. I want to follow the path of least
resistance to bring ECJ to my taste.
I want to put features that are important to me. I am a freelance
programmer. I make money from my expertise and not from software. Being
efficient is very important for me. Any future versions of ECJ from me,
will take full advantage of future technologies that will benefit genetic
- Java 1.6 (coming early next year)
- Increasing power of micro-processors which are multi-core and
multi-thread (hardware virtual processors) oriented.
- Machine virtualization technology (coming soon)
- Grid computing which already gives huge amounts of computing power
on-demand for a relatively small price (sometimes free).
I feel that these technologies should change the emphasis of future versions
of ECJ (my future versions) from execution optimization to ease-of-use and
reliability for the GP researcher. Using ECJ, most people will create
experiments, test it on their personal computer and run the evolution on a
grid server. I will put more testing into ECJ1.6 (Junit style and other
testing frameworks). I will use the annotation feature favorably.
I want to create a break-off from ECJ. Its name will have ECJ in it. Letís
call it EVOCODE 1.0 for now. EVOCODE will have all changes that I mentioned
and more. I will go gradually and carefully. I will use CVS. It is
understood that EVOCODE will be a totally different break-off of ECJ. I
will manage and be custodian of EVOCODE respecting the licensing scheme of
I want to ask you to help me out a little during the project. I have
already attempted to port ECJ to Java 1.5. I stopped because it was
getting too deep and I did not know enough about ECJ. I would like to tap
onto your knowledge when needed for EVOCODE. I donít think I will use much
of your time because you already gave me some background information. I
will contact you occasionally to ask some questions.
To start with, I would need your latest stable version of ECJ. I will
start from that. You might want to write it in the notes of your CVS. If
you have any comments for me on this version, let me know. I can wait a
little bit if you want to make some changes before you hand it over to me.
I would like to get started within one week or so.
I can assure you that you will be proud of EVOCODE.