It was deliberate.  ECJ was designed to be hacked.  This came out of  
my experience heavily modifying lil-gp to the point where you  
wouldn't recognize it any more, before building ECJ.  It's the same  
reason ECJ doesn't come as a jar file.  We want people to modify it  
as they see fit.

We've moved to more private methods in certain areas where the  
complexity was too high to allow people to fool around with our code  
(such as the distributed evaluator).

Also, getters and setters, even when inlined, *are* slower than  
direct access, but that's not a big deal.


On May 21, 2008, at 2:51 PM, Peter Drake wrote:

> The developers of ECJ are clearly very experienced OO programmers,  
> making extensive use of interfaces, inheritance, sophisticated  
> design patterns, etc. I'm therefore curious: why are fields  
> generally public, rather than accessed via getters and setters as  
> OO orthodoxy would suggest? Was this a deliberate decision made in  
> the name of convenience or efficiency?
> Peter Drake