LeJOS is a replacement OS designed for programming the Lego RCX, NXT and EV3 controllers in a Java environment.

This is more advanced than the standard firmware, which uses a bytecode interpreter anyway. It gives more control, and the ability to use Java code for those who are comfortable with this. C/C++ people should consider BrickOS.

Its firmware is essentially a tiny JVM that weighs in at less than 32k, including the RCX API. It is compatible with the Serial and USB IR towers.

It actually replaces the whole firmware of the system with a small (under 32k) JVM. LeJOS also has the virtue of being an Open Source system, which means that anybody can use it freely, as well as viewing the code that it is built with, and extend it.

Java firstly allows you to use the full range of IDEs you would for any Java code, as well as the help they give. It has a fairly comprehensive API which you can find detailed on their site with full JavaDOC documentation.