BlueJ

Last updated
BlueJ
Original author(s) Michael Kölling and John Rosenberg
Developer(s) BlueJ Team
Stable release
5.3.0 / March 20, 2024;32 days ago (2024-03-20)
Written in Java
Operating system Cross-platform
Platform Java
Available in Multilingual
Type Integrated development environment
License GPL-2.0-or-later with the Classpath exception
Website 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. It runs with the help of Java Development Kit (JDK).

Contents

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.

History

The development of BlueJ was started in 1999 by Michael Kölling and John Rosenberg at Monash University, as a successor to the Blue [2] system. BlueJ is an IDE (Integrated Development Environment). Blue was an integrated system with its own programming language and environment, and was a relative of the Eiffel language. BlueJ implements the Blue environment design for the Java programming language.

In March 2009, the BlueJ project became free and open source software, and licensed under GPL-2.0-or-later with the Classpath exception.

BlueJ is currently being maintained by a team at King's College London, England, where Kölling works.

Supported language

BlueJ supports programming in Java and in Stride. [3] Java support has been provided in BlueJ since its inception, while Stride support was added in 2017.

See also

Related Research Articles

An integrated development environment (IDE) is a software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, and a debugger. Some IDEs, such as IntelliJ IDEA, Eclipse and Lazarus contain the necessary compiler, interpreter or both; others, such as SharpDevelop and NetBeans, do not.

In computer programming and software design, code refactoring is the process of restructuring existing computer code—changing the factoring—without changing its external behavior. Refactoring is intended to improve the design, structure, and/or implementation of the software, while preserving its functionality. Potential advantages of refactoring may include improved code readability and reduced complexity; these can improve the source code's maintainability and create a simpler, cleaner, or more expressive internal architecture or object model to improve extensibility. Another potential goal for refactoring is improved performance; software engineers face an ongoing challenge to write programs that perform faster or use less memory.

AspectJ is an aspect-oriented programming (AOP) extension for the Java programming language, created at PARC. It is available in Eclipse Foundation open-source projects, both stand-alone and integrated into Eclipse. AspectJ has become a widely used de facto standard for AOP by emphasizing simplicity and usability for end users. It uses Java-like syntax, and included IDE integrations for displaying crosscutting structure since its initial public release in 2001.

A programming tool or software development tool is a computer program that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs, that can be combined to accomplish a task, much as one might use multiple hands to fix a physical object. The most basic tools are a source code editor and a compiler or interpreter, which are used ubiquitously and continuously. Other tools are used more or less depending on the language, development methodology, and individual engineer, often used for a discrete task, like a debugger or profiler. Tools may be discrete programs, executed separately – often from the command line – or may be parts of a single large program, called an integrated development environment (IDE). In many cases, particularly for simpler use, simple ad hoc techniques are used instead of a tool, such as print debugging instead of using a debugger, manual timing instead of a profiler, or tracking bugs in a text file or spreadsheet instead of a bug tracking system.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language, also known as diagrammatic programming, graphical programming or block coding, is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations. VPLs are generally the basis of Low-code development platforms.

<span class="mw-page-title-main">Processing</span> Free graphics library

Processing is a free graphics library and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching non-programmers the fundamentals of computer programming in a visual context.

Object Pascal is an extension to the programming language Pascal that provides object-oriented programming (OOP) features such as classes and methods.

In computing, late binding or dynamic linkage—though not an identical process to dynamically linking imported code libraries—is a computer programming mechanism in which the method being called upon an object, or the function being called with arguments, is looked up by name at runtime. In other words, a name is associated with a particular operation or object at runtime, rather than during compilation. The name dynamic binding is sometimes used, but is more commonly used to refer to dynamic scope.

In computer programming, Intentional Programming is a programming paradigm developed by Charles Simonyi that encodes in software source code the precise intention which programmers have in mind when conceiving their work. By using the appropriate level of abstraction at which the programmer is thinking, creating and maintaining computer programs become easier. By separating the concerns for intentions and how they are being operated upon, the software becomes more modular and allows for more reusable software code.

<span class="mw-page-title-main">Racket (programming language)</span> Lisp dialect

Racket is a general-purpose, multi-paradigm programming language and a multi-platform distribution that includes the Racket language, compiler, large standard library, integrated development environment (IDE), development tools, and a set of additional languages including Typed Racket, Swindle, FrTime, Lazy Racket, R5RS & R6RS Scheme, Scribble, Datalog, Racklog, ALGOL 60 and several teaching languages.

<span class="mw-page-title-main">Alice (software)</span>

Alice is an object-based educational programming language with an integrated development environment (IDE). Alice uses a drag and drop environment to create computer animations using 3D models. The software was developed first at University of Virginia in 1994, then Carnegie Mellon, by a research group led by Randy Pausch.

The following outline is provided as an overview of and topical guide to computer programming:

<span class="mw-page-title-main">Greenfoot</span>

Greenfoot is an integrated development environment using Java or Stride designed primarily for educational purposes at the high school and undergraduate level. It allows easy development of two-dimensional graphical applications, such as simulations and interactive games.

jGRASP

jGRASP is a development environment that includes the automatic creation of software visualizations. It produces static visualizations of source code structure and visualizations of data structures at runtime.

<span class="mw-page-title-main">Michael Kölling</span> German computer scientist

Michael Kölling is a German computer scientist, currently working at King's College London, best known for the development of the BlueJ and Greenfoot educational development environments and as author of introductory programming textbooks. In 2013 he received the SIGCSE Award for Outstanding Contribution to Computer Science Education for the development of the BlueJ.

JACK Intelligent Agents is a framework in Java for multi-agent system development. JACK Intelligent Agents was built by Agent Oriented Software Pty. Ltd. (AOS) and is a third generation agent platform building on the experiences of the Procedural Reasoning System (PRS) and Distributed Multi-Agent Reasoning System (dMARS). JACK is one of the few multi-agent systems that uses the BDI software model and provides its own Java-based plan language and graphical planning tools.

<span class="mw-page-title-main">Mama (software)</span> Programming language

Mama is an object-oriented educational programming language designed to help young students start programming by providing all language elements in the student mother tongue. Mama programming language is available in several languages, with both left-to-right (LTR) and right-to-left (RTL) language direction support.

<span class="mw-page-title-main">Object-oriented programming</span> Programming paradigm based on the concept of objects

Object-oriented programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code: data in the form of fields, and code in the form of procedures. In OOP, computer programs are designed by making them out of objects that interact with one another.

John Rosenberg is an Australian higher education consultant, professional Board Director, Australian academic, information technology (IT) professional and the former Senior Deputy Vice-Chancellor and Vice-President at La Trobe University in Victoria, Australia.

References

  1. Kölling, M. (2008). "Using BlueJ to Introduce Programming" (PDF). In Bennedsen, J.; Caspersen, M.E; Kölling, M. (eds.). Reflections on the Teaching of Programming. Lecture Notes in Computer Science. Vol. 4821. Springer. pp. 182–196. ISBN   978-3-540-77933-9.
  2. Kölling, M.; Rosenberg, J. (1996). "An Object-Oriented Program Development Environment for the First Programming Course" (PDF). Proceedings of the 27th SIGCSE Technical Symposiumon Computer Science Education. ACM. pp. 83–87. doi:10.1145/236462.236514. ISBN   0-89791-757-X.
  3. Stride

Bibliography