Class browser
Encyclopedia
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.
, 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 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 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.
Modern class browsers fall into three general categories: the columnar browsers, the outline browsers, and the diagram browsers.
(UML).
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.
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 LPA Prolog, Visual Prolog and AMZI! as well as mainstream SICSTUS.
, 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
.
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
(IDE) that allows the programmer to browse, navigate, or visualize the structure of object-oriented programming
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
code.
History
Most modern class browsers owe their origins to SmalltalkSmalltalk
Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...
, 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
Class (computer science)
In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...
, 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 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 caught on.
With the popularity of C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
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
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
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- AppleApple ComputerApple Inc. is an American multinational corporation that designs and markets consumer electronics, computer software, and personal computers. The company's best-known hardware products include the Macintosh line of computers, the iPod, the iPhone and the iPad...
XcodeXcodeXcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,...
for Mac OS XMac OS XMac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems... - Cincom SmalltalkSmalltalkSmalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...
- CodeWarriorCodeWarriorCodeWarrior is an integrated development environment for the creation of software that runs on a number of embedded systems. Prior to the acquisition of the product by Freescale Semiconductor, versions existed for Macintosh, Microsoft Windows, Linux, Solaris, PlayStation 2, Nintendo GameCube,...
for Microsoft WindowsMicrosoft WindowsMicrosoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
, Mac OSMac OSMac OS is a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems. The Macintosh user experience is credited with popularizing the graphical user interface...
, and embedded systems - Eclipse
- Embarcadero Delphi
- EmbarcaderoEmbarcadero TechnologiesEmbarcadero Technologies is an American computer software company that develops, manufactures, licenses, and supports a wide range of products and services related to software through its various dynamic product divisions...
JBuilderJBuilderJBuilder is an integrated development environment for the programming language Java, from Borland, and then CodeGear. Codegear was purchased by Embarcadero Technologies in 2008.... - IBMIBMInternational Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
WebSphereWebSphereIBM WebSphere refers to a brand of computer software products in the genre of enterprise software known as "application and integration middleware". These software products are used by end-users to create applications and integrate applications with other applications... - IntelliJ IDEAIntelliJ IDEAIntelliJ IDEA is a commercial Java IDE by JetBrains. It is often simply referred to as "IDEA" or "IntelliJ."-History:The first version of IntelliJ IDEA was released in January 2001, and at the time was the only available Java IDE with advanced code navigation and code refactoring capabilities...
- KDevelopKDevelopKDevelop is a free software integrated development environment for the KDE Platform on Unix-like computer operating systems. KDevelop includes no compiler. Instead, it uses an external compiler such as gcc to produce executable code....
- MicrosoftMicrosoftMicrosoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
Visual Studio - NetBeansNetBeansNetBeans refers to both a platform framework for Java desktop applications, and an integrated development environment for developing with Java, JavaScript, PHP, Python, Groovy, C, C++, Scala, Clojure, and others...
- Red GateRed Gate SoftwareRed Gate Software is a software company based in Cambridge, UK. It primarily provides tools for database developers and administrators. In addition, through its Simple Talk Publishing subsidiary, it maintains community websites such as SQL Server Central and Simple Talk...
.NET Reflector.NET Reflector.NET Reflector is a proprietary software utility for Microsoft .NET combining class browsing, static analysis and decompilation, originally written by Lutz Roeder. MSDN Magazine named it as one of the Ten Must-Have utilities for developers, and Scott Hanselman listed it as part of his "Big Ten... - Squeak SmalltalkSqueakThe Squeak programming language is a Smalltalk implementation. It is object-oriented, class-based and reflective.It was derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers...
- Step Ahead Javelin http://stepaheadsoftware.com/products/javelin/javelin.htm
- Visual PrologVisual PrologVisual Prolog, also formerly known as PDC Prolog and Turbo Prolog, is a strongly typed object-oriented extension of Prolog. As Turbo Prolog it was marketed by Borland, but it is now developed and marketed by the Danish firm Prolog Development Center that originally developed it...
- Zeus for Windows IDE http://zeusedit.com/
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 LanguageUnified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...
(UML).
Refactoring class browsers
As development environments add refactoringRefactoring
Code refactoring is "disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior", undertaken in order to improve some of the nonfunctional attributes of the software....
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 SmalltalkSmalltalk
Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...
was a logic browser for Prolog
Prolog
Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is declarative: the program logic is expressed in terms of...
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
Visual Prolog
Visual Prolog, also formerly known as PDC Prolog and Turbo Prolog, is a strongly typed object-oriented extension of Prolog. As Turbo Prolog it was marketed by Borland, but it is now developed and marketed by the Danish firm Prolog Development Center that originally developed it...
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
XUL
In computer programming, XUL , the XML User Interface Language, is an XML user interface markup language developed by the Mozilla project. XUL operates in Mozilla cross-platform applications such as Firefox...
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
Logtalk
Logtalk is an object-oriented logic programming language that extends the Prolog language with a feature set suitable for programming in the large. It provides support for encapsulation and data hiding, separation of concerns and enhanced code reuse...
and several OOP
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
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 IE7Internet Explorer 7
Windows Internet Explorer 7 is a web browser released by Microsoft in October 2006. Internet Explorer 7 is part of a long line of versions of Internet Explorer and was the first major update to the browser in more than 5 years...
, a right-click on the background opens a ClassHierarchyBrowser. This is somewhat like editing JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
prototypes in a web browser or Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...
, Groovy or Jython
Jython
Jython, successor of JPython, is an implementation of the Python programming language written in Java.-Overview:Jython programs can seamlessly import and use any Java class. Except for some standard modules, Jython programs use Java classes instead of Python modules...
classes in an IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
running in a JVM
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...
.
See also
- List of integrated development environments
- The Source Navigator and sourcenav NG source code browser.