(Redirected from Refactoring Browser)A 'class browser' is a feature of an
integrated development environment that allows the programmer to browse, navigate, or visualize the structure of
object-oriented programming code.
History of Class Browsers
Most modern class browsers owe their origins to
Smalltalk, one of the earliest object-oriented languages. The Smalltalk browser was a series of horizontally-abutting panes at the top of a
text editor window that listed the class hierarchy of the Smalltalk system. A
class selected in one pane would list the
subclasses of that class in the next pane to the right. For leaf classes, the farthest left pane would list the class instance variables and allow them to be edited.
Most succeeding object-oriented languages differed from Smalltalk in that they were
compiled and executed in a discrete
runtime environment, rather that 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.
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.
Class Browsing in Modern IDEs
All major development environments supply some manner of class browser, including
★
CodeWarrior for
Microsoft Windows,
Mac OS, and embedded systems
★
Microsoft Visual Studio
★
Eclipse
★
Borland JBuilder
★
Borland Delphi
★
IntelliJ IDEA
★
IBM WebSphere
★
Sun Microsystems Java Studio Creator
★
Apple Xcode for
Mac OS X
★ Step Ahead Software's Javelin
★
NetBeans
★
Zeus IDE
★
KDevelop
★ Cincom
Smalltalk
★
.NET Reflector
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.
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. It is interesting to note the comments of Alan Kay on the parallel of Smalltalk and Prolog emerging in the same time-frame 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
Visual Prolog and
AMZI! as well as mainstream SICSTUS.
Class Browsers running in Web Browsers
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 (programming language),
Groovy or
Jython classes in an
Integrated development environment running in a
JVM.
See also
★
List of integrated development environments
★ The
Source Navigator source code browser.