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