There're some other
design by contract
tools, as
JASS
,
JML
,
or
iContract
.
However, the motivation to launch this project was to avoid
the need of some defensive habits I was used to. However, no
matter how good a tool or an extension is, you have to
convince people to use it. I wanted to have something 100%
transparent, that everybody understands what it does, and
how it does it (but maybe the AspectJ part). It doesn't
pretend to be an extension language to support design by
contract in
Java, as mentioned tools could be, but just a
seamless integrated wizard to enforce contract protection
and save lines of code.
In summary, it doesn't try to overcome any Java limitations,
but instead allow a safe simplification of the code by
omitting method parameter checks. Some developers just omit
them from the begining, but I feel we need more robust
code.