DrJava is a lightweight, powerful Java development environment. Its target audience includes both beginning Computer Science students and advanced professional users. Clearly, there is a tension between these goals — "lightweight" versus "powerful"; "beginning" versus "advanced." This tension is generally resolved by ensuring the prior conditions — that DrJava be easy to use and inobtrusive for beginners — and adding "advanced" features only if they can be presented in a simple, lightweight (both in terms of system resources and user interface) manner. The interactions pane is an ideal example of a nice marriage between the goals of simplicity and power. It is easy for beginners to understand and use — in fact, it's where many beginners get their first taste of Java programming. Yet professional developers also find it quite handy, and sometimes lament the lack of something like it in heavier-weight IDEs.
Because DrJava was originally conceived as a teaching tool, and because it has been almost entirely developed by undergraduate and graduate students, it is uniquely positioned to address the needs of students, teachers, and researchers. We hope that this fount of experience will translate into a relevant, useful, and unique product. However, development on the project is at a relative disadvantage due to the lack of a full-time or long-term workforce. These challenges are addressed by maintaining a self-documenting, self-testing code base. Developers should keep in mind that the code they write will be browsed and modified subsequently by many others, and if the reasoning behind the code is not documented by comments and tests, it will probably be lost.
Finally, DrJava is open source software. [TODO: discuss; explain the DrJava license]