Class browser

Last updated
Screenshot of Gedit with Python, LaTeX and Class Browser extensions, displaying Inkscape's lorem ipsum extension. Gedit extensions screenshot-lorem ipsum.png
Screenshot of Gedit with Python, LaTeX and Class Browser extensions, displaying Inkscape's lorem ipsum extension.

A class browser is a feature of an integrated development environment (IDE) that allows the programmer to browse, navigate, or visualize the structure of object-oriented programming code.

Contents

History

Most modern class browsers owe their origins to Smalltalk, one of the earliest object-oriented languages and development environments. The typical Smalltalk "five-pane" browser is a series of horizontally-abutting selection panes positioned above an editing pane, the selection panes allow the user to specify first a category and then a class, and further to refine the selection to indicate a specific class- or instance-method the implementation of which is presented in the editing pane for inspection or modification.

Most succeeding object-oriented languages differed from Smalltalk in that they were compiled and executed in a discrete runtime environment, rather than being dynamically integrated into a monolithic system like the early Smalltalk environments. Nevertheless, the concept of a table-like or graphic browser to navigate a class hierarchy caught on.

With the popularity of C++ starting in the late-1980s, modern IDEs added class browsers, at first to simply navigate class hierarchies, and later to aid in the creation of new classes. With the introduction of Java in the mid-1990s class browsers became an expected part of any graphic development environment.

In modern IDEs

All major development environments supply some manner of class browser, including

Modern class browsers fall into three general categories: the columnar browsers, the outline browsers, and the diagram browsers.

Columnar browsers

Continuing the Smalltalk tradition, columnar browsers display the class hierarchy from left to right in a series of columns. Often the rightmost column is reserved for the instance methods or variables of the leaf class.

Outline browsers

Systems with roots in Microsoft Windows tend to use an outline-form browser, often with colorful (if cryptic) icons to denote classes and their attributes.

Diagram browsers

In the early years of the 21st century class browsers began to morph into modeling tools, where programmers could not only visualize their class hierarchy as a diagram, but also add classes to their code by adding them to the diagram. Most of these visualization systems have been based on some form of the Unified Modeling Language (UML).

Refactoring class browsers

As development environments add refactoring features, many of these features have been implemented in the class browser as well as in text editors. A refactoring browser can allow a programmer to move an instance variable from one class to another simply by dragging it in the graphic user interface, or to combine or separate classes using mouse gestures rather than a large number of text editor commands.

Logic browsers

An early add-on for Digitalk Smalltalk was a logic browser for Prolog rules encapsulated as clauses within classes. More recent logic browsers have appeared as BackTalk and SOUL (Smalltalk Open Unification Language with LiCor, or library for code reasoning) for Squeak and VisualWorks Smalltalk. A logic browser provides an interface to Prolog implemented in Smalltalk (Lisp engines have often been implemented in Smalltalk). A comparable browser can be found in ILog rules and some OPS production systems. Visual Prolog and XPCE provide comparable rule browsing. In the case of SOUL, VisualWorks is provided with both a query browser and a clause browser; Backtalk provides a constraints browser. The comments of Alan Kay on the parallel of Smalltalk and Prolog emerged in the same timeframe but with very little cross-fertilization. The interest in XSB prolog for XUL and the migration of AMZI! prolog to the Eclipse IDE are current paths in logic browser evolution. Rules encapsulated in classes can be found in Logtalk and several OOP Prolog variants such as LPA Prolog, Visual Prolog and AMZI! as well as mainstream SICStus.

Web-based versions

One variant of the Seaside web framework in Smalltalk permits a class browser to be opened at runtime in the running web browser: an edit to a method then takes immediate effect in the running web application. In the case of Vistascript (Vista Smalltalk) for Microsoft IE7, a right-click on the background opens a ClassHierarchyBrowser. This is somewhat like editing JavaScript prototypes in a web browser or Ruby, Groovy or Jython classes in an IDE running in a JVM.

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.

<span class="mw-page-title-main">Smalltalk</span> Object-oriented programming language released first in 1972

Smalltalk is a purely object oriented programming language (OOP) that was originally created in the 1970s for educational use, specifically for constructionist learning, but later found use in business. It was created at Xerox PARC by Learning Research Group (LRG) scientists, including Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Diana Merry, and Scott Wallace.

C++Builder is a rapid application development (RAD) environment for developing software in the C++ programming language. Originally developed by Borland, as of 2009 it is owned by Embarcadero Technologies, a subsidiary of Idera. C++Builder can compile apps for Windows, iOS, macOS, and Android. It includes tools that allow drag-and-drop visual development, making programming easier by incorporating a WYSIWYG graphical user interface builder.

<span class="mw-page-title-main">Delphi (software)</span> General-purpose programming language and a software product

Delphi is a general-purpose programming language and a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, mobile, web, and console software, currently developed and maintained by Embarcadero Technologies.

<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.

VisualWorks is a cross-platform implementation of the Smalltalk language. It is implemented as a development system based on images, which are dynamic collections of software objects, each contained in a system image.

CodeWright is a Windows Programmers Editing System for software developers originally marketed by Premia Corp. and developed by Premia co-founders Eric Johnson and Don Kinzer, initially released in 1991. Premia was acquired in April 2000 by Starbase Corp. which was itself acquired in January 2003 by Borland.

<span class="mw-page-title-main">Seaside (software)</span> Smalltalk web framework

Seaside, an acronym that stands for “Squeak Enterprise Aubergines Server with Integrated Development Environment,” is computer software, a web framework to develop web applications in the programming language Smalltalk. It is distributed as free and open-source software under an MIT License.

The following tables list notable software packages that are nominal IDEs; standalone tools such as source-code editors and GUI builders are not included. These IDEs are listed in alphabetic order of the supported language.

Apple Dylan is the original implementation of the programming language Dylan. It was developed by Apple Computer from 1992 to 1995.

<span class="mw-page-title-main">Visual Studio</span> Code editor and IDE

Visual Studio is an integrated development environment (IDE) developed by Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms including Windows API, Windows Forms, Windows Presentation Foundation (WPF), Windows Store and Microsoft Silverlight. It can produce both native code and managed code.

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

Dolphin Smalltalk, or "Dolphin" for short, is an implementation of the programming language Smalltalk for Microsoft Windows.

ActiveX Document is a Microsoft technology that allows users to view and edit Microsoft Word, Excel, and PDF documents inside web browsers. It defines a set of Component Object Model coding contracts between hosting programs like Internet Explorer or Microsoft Office Binder and hosted documents from programs like Microsoft Word, Microsoft Excel and Adobe Reader. This allows them to negotiate communications about commands like save and navigate, as well as merging user interface elements such as menu, to provide a unified user experience.

<span class="mw-page-title-main">Model–view–presenter</span> Software design pattern

Model–view–presenter (MVP) is a derivation of the model–view–controller (MVC) architectural pattern, and is used mostly for building user interfaces.

<span class="mw-page-title-main">Open Cobalt</span> Software for creating virtual worlds

Open Cobalt is a free and open-source software platform for constructing, accessing, and sharing virtual worlds both on local area networks or across the Internet, with no need for centralized servers.

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

Amber Smalltalk, formerly named Jtalk, is an implementation of the programming language Smalltalk-80, that runs on the JavaScript runtime of a web browser. It is designed to enable client-side development using Smalltalk. The programming environment in Amber is named Helios.

Smart Pascal is a Object Pascal programming language that is derived from Delphi Web Script, its adapted for Smart Mobile Studio, commercial development JavaScript, machine code.

The Language Server Protocol (LSP) is an open, JSON-RPC-based protocol for use between source code editors or integrated development environments (IDEs) and servers that provide "language intelligence tools": programming language-specific features like code completion, syntax highlighting and marking of warnings and errors, as well as refactoring routines. The goal of the protocol is to allow programming language support to be implemented and distributed independently of any given editor or IDE. In the early 2020s LSP quickly became a "norm" for language intelligence tools providers.