From Seo Wiki - Search Engine Optimization and Programming Languages

Jump to: navigation, search

BlueJ is an Integrated Development Environment for the Java programming language, developed mainly for educational purposes, but also suitable for small-scale software development.

BlueJ was developed to support the learning and teaching of object-oriented programming, and its design differs from other development environments as a result.[1] The main screen graphically shows the class structure of an application under development (in a UML-like diagram), and objects can be interactively created and tested. This interaction facility, combined with a clean, simple user interface, allows easy experimentation with objects under development. Object-oriented concepts (classes, objects, communication through method calls) are represented visually and in its interaction design in the interface.[2]



The development of BlueJ was started in 1999 by Michael Kölling and Professor John Rosenberg at Monash University in Melbourne, Australia, as a successor to the Blue system. Blue was an integrated system with its own programming language and environment. BlueJ implements the Blue environment design for the Java Programming Language.

BlueJ is currently being maintained by a joint team at the University of Kent, Canterbury, England - where Kölling now lectures, and Deakin University in Melbourne, Australia.

In March 2009, the BlueJ project became Free and Open Source Software , and licensed under GNU GPL with Classpath exception .


File:BlueJ 2.5.2.png
Screenshot of BlueJ

The features of BlueJ are designed as an aid to learning object-oriented programming concepts, as well as an aid to program development itself. As a result, some commonly available tools differ from other environments, some tools are absent, and other tools are provided not commonly found in development environments. The features include:

  • Representation of Object orientation - the concepts of classes and objects are presented in a visual manner. Both have distinct visual representations, and it is easy to demonstrate that code is associated directly with a class, that an object has a class type, and that the class type of an object directly determines its available methods and fields as well as its behavior.
  • Simplicity of the interface - The user interface is simpler than in full-scale professional environments, and thus easier to learn. The goal is for the development environment to "disappear". Students should be able to concentrate on the programming task without the need to struggle with the environment.
  • Object interaction - Programmers are able to experiment with objects by creating objects on the "Object Bench" and calling individual methods interactively (including passing of parameters and inspection of results). This is intended to encourage early and frequent testing, and experimentation to help understand the programming model.
  • The "Code Pad" - The code pad is a tool that instantly evaluates arbitrary Java expressions and statements.
  • Regression testing - BlueJ supports regression testing via an integration of JUnit. In addition to manual writing of JUnit classes, interactive tests can be recorded and JUnit test cases can be automatically created from these recordings.
  • Group work support - BlueJ provides simple support for group work via a subset of CVS and Subversion functionality.
  • Java ME support - Java ME (Micro Edition) projects can be developed and deployed from BlueJ.
  • Flexible extension system - Extensions (a.k.a. Plug-Ins) can be developed using a public extensions API to extend the functionality of the core environment.
  • Jar files and applets - Creation of executable jar files and applets is built into the system.
  • Translations - The BlueJ system interface has been translated into at least 14 different natural languages.

The visual interaction features of BlueJ were designed to allow one to delay the introduction of certain programming concepts considered difficult or problematic by educators. These include:

  • Syntax such as public static void main(String[] args) - which requires unnecessarily introducing the keywords public and static, as well as method arguments and arrays. BlueJ allows arbitrary classes to be instantiated and arbitrary methods to be invoked interactively.
  • Program input/output. In BlueJ both the parameter values for and the return values from method calls can be entered/inspected directly, so there is no need for students to deal with terminal I/O or write graphical user interfaces when they are still struggling with the basic concepts of programming.

The program is a fully functional development tool, commonly used by schools, colleges, and universities.


Although BlueJ is a useful tool for learning the basic concepts of Object-oriented programming, its features are too limited to be used as a mature development tool for a trained programmer. It misses some of the highly appreciated features of popular IDEs (e.g. Eclipse and Netbeans) such as live code checking and error detection (by means of continuous compilation), suggested corrections for warnings/errors, code folding, and auto-completion.

Current Release

As of 31 December 2009, the latest release is BlueJ version 2.5.3[3].

A book, Objects First with Java - a Practical Introduction Using BlueJ written by David J. Barnes and Michael Kölling, is also available.

See also



External links

Personal tools

Served in 0.570 secs.