Screenshot of BlueJ |
|
Original author(s) | David Barnes & Michael Kölling |
Developer(s) | BlueJ Team |
Stable release | 3.0.6 / November 11, 2011[1] |
Development status | Active |
Written in | Java |
Operating system | Cross-platform |
Platform | Java |
Available in | Multilingual |
Type | Integrated development environment |
License | GNU General Public License |
Website | http://bluej.org/ |
BlueJ is an integrated development environment (IDE) 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.[2] The main screen graphically shows the class structure of an application under development (in an 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.[3]
Contents |
The development of BlueJ was started in 1999 by Michael Kölling and John Rosenberg at Monash University, 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 La Trobe University in Melbourne, Australia.
In March 2009, the BlueJ project became free and open source software , and licensed under GNU GPL with Classpath exception .
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:
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:
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.The program is a fully functional development tool, commonly used by schools, colleges, and universities.
Some of the features BlueJ pioneered in modern development environments, such as interactive instantiation, direct object interaction, unit test recording, the editor "navigation view", and scope highlighting, are generally useful for software development, however, are not usually found in other development environments. Some attempts were made to replicate some of these features: For example, Microsoft's Visual Studio replicated BlueJ's object bench feature,[4][5] however, it remained somewhat obscure because it is not included in all versions of that environment.
The pedagogical approach represented in BlueJ is based on constructivism and visualisation. Working with the BlueJ environment provides concrete experiences for abstract concepts, such as the class/object relationship, object instantiation, method calling, and parameter passing. These abstract concepts are traditionally hard to understand for novices, and providing concrete representations of them is intended to help the learning process. Visualisations of the processes and structures (such as objects on the object bench, and object inspectors) support this process.[2]
The goal of this approach is for beginners to more easily develop a consistent mental model of object-oriented systems, their properties, and their execution.
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).
As of 11 November 2011, the latest stable release is BlueJ version 3.0.6[6], which marks blocks for the user using specific colors for specific blocks. For the professional programmer, this is not of much importance, but to an aspiring learner, it is a boon.
A book, Objects First with Java – a Practical Introduction Using BlueJ written by David J. Barnes and Michael Kölling, is also available.[7]