BlackBox Component Builder

Last updated

BlackBox Component Builder
Developer(s) Oberon microsystems AG [1]
BlackBox Framework Center [2]
Initial releaseOberon/F: 1993;30 years ago (1993)
BlackBox: 1999;24 years ago (1999)
Stable release
1.7.2 / 3 November 2019;3 years ago (2019-11-03) [3]
Written in Component Pascal
Operating system Windows, Wine
Type Integrated development environment (IDE)
License BSD 2-clause [4]
Website blackboxframework.org

BlackBox Component Builder is an integrated development environment (IDE) optimized for component-based software development [5] developed by a small spin-off company, Oberon microsystems AG, [1] of ETH Zurich in Switzerland. The IDE consists of development tools, a library of reusable components, a framework that simplifies developing robust custom components and applications, and a run-time environment for components.

In BlackBox, developing applications and their components is done in the language Component Pascal, a descendant of Pascal, Modula-2, and Oberon. Component Pascal is a strongly typed, compiled language that supports modular and object-oriented programming and Eiffel-like pre- and post-condition testing using ASSERT statements. It provides full type safety, components (in the form of modules), dynamic linking of components, and automatic garbage collection to preserve memory integrity. The whole BlackBox system is written in Component Pascal and is available as source code: all library components, all development tools, including the Component Pascal compiler, and the low-level runtime system with its garbage collector.

As its name implies, BlackBox Component Builder supports blackbox abstractions and reuse, in contrast to whitebox, as defined in the book Component Software by Szyperski. [6] [7] In 1993, it was released as Oberon/F [8] [9] [10] (for Oberon Framework) and was renamed to BlackBox Component Builder with release 1.3 end of the 1990s. In December 2004, BlackBox went open source with the release of beta version 1.5. According to a posting [11] of Clemens Szyperski on Usenet news Oberon/F and in turn BlackBox Component Builder is a re-implementation of ETHOS, which was completely object-oriented version of the Oberon System, which he had implemented for his PhD thesis. [12]

As an IDE it is a quite puristic environment without syntax highlighting and code completion. Some of these tools can be integrated from the community platforms (see external links below, e.g. syntax highlighting can be found in subsystem Master). Similar to most BASIC dialects and Oberon implementations source code files are binary documents. They may contain embedded active elements (see below) and formatting.

BlackBox uses a document centered approach (as all versions of the Oberon System), which is very similar to OpenDoc. It features active elements like buttons, embedded documents, folds, drop down lists, and many more in documents and a fascinating way to create user interfaces (UIs): define the basic UI by exporting interacting variables and procedures from a module, and let the IDE create a draft document representing the UI in a so-called Form, which can be edited in the WYSIWYG editor. This approach is based on a model–view–controller (MVC) abstraction. At its start, BlackBox supported two platforms (Apple Mac, Microsoft Windows) with others planned. After Steve Jobs returned to Apple and abandoned OpenDoc, Oberon microsystems ended support for Apple Mac with release 1.3.3 around 2001. The Linux version was never released publicly by Oberon microsystems, although OpenBUGS a software package for the Bayesian analysis of complex statistical models using Markov chain Monte Carlo (MCMC) methods based its Linux version on it. The group around the OberonCore website in Russia has published the Linux version, and it is available on their Russian language website [13] and on Github.

In 2002, Pepperdine University professor Stanley Warford [14] published a book that teaches computing fundamentals via BlackBox. In 2014, he placed the full text under a Creative Commons license. [15]

There are at least four principal versions for MS Windows and at least one for Linux:

Center version at BlackBox Framework Center. [2]

Center version at Component Pascal Collection. [16]

Core version at Component Pascal Collection. [16]

BlackBox Oberon for MS Windows, and for Linux by A. Shiryaev, I. Denisov, I. Dehtyarenko, A. Dmitriev. [17]

Other versions are on the OberonCore Russian website. [13]

Related Research Articles

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

Oberon is a general-purpose programming language first published in 1987 by Niklaus Wirth and the latest member of the Wirthian family of ALGOL-like languages. Oberon was the result of a concentrated effort to increase the power of Modula-2, the direct successor of Pascal, and simultaneously to reduce its complexity. Its principal new feature is the concept of type extension of record types. It permits constructing new data types on the basis of existing ones and to relate them, deviating from the dogma of strictly static typing of data. Type extension is Wirth's way of inheritance reflecting the viewpoint of the parent site. Oberon was developed as part of the implementation of an operating system, also named Oberon at ETH Zurich in Switzerland. The name is from the moon of the planet Uranus, named Oberon.

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

Pascal is an imperative and procedural programming language, designed by Niklaus Wirth as a small, efficient language intended to encourage good programming practices using structured programming and data structuring. It is named in honour of the French mathematician, philosopher and physicist Blaise Pascal.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

An object-oriented operating system is an operating system that is designed, structured, and operated using object-oriented programming principles.

The Visual Component Library (VCL) is a visual component-based object-oriented framework for developing the user interface of Microsoft Windows applications. It is written in Object Pascal.

<span class="mw-page-title-main">Oberon (operating system)</span>

The Oberon System is a modular, single-user, single-process, multitasking operating system written in the programming language Oberon. It was originally developed in the late 1980s at ETH Zurich. The Oberon System has an unconventional visual text user interface (TUI) instead of a conventional command-line interface (CLI) or graphical user interface (GUI). This TUI was very innovative in its time and influenced the design of the Acme text editor for the Plan 9 from Bell Labs operating system.

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

Component Pascal is a programming language in the tradition of Niklaus Wirth's Pascal, Modula-2, Oberon and Oberon-2. It bears the name of the language Pascal and preserves its heritage, but is incompatible with Pascal. Instead, it is a minor variant and refinement of Oberon-2 with a more expressive type system and built-in string support. Component Pascal was originally named Oberon/L, and was designed and supported by a small ETH Zürich spin-off company named Oberon microsystems. They developed an integrated development environment (IDE) named BlackBox Component Builder. Since 2014, development and support has been taken over by a small group of volunteers. The first version of the IDE was released in 1994, as Oberon/F. At the time, it presented a novel approach to graphical user interface (GUI) construction based on editable forms, where fields and command buttons are linked to exported variables and executable procedures. This approach bears some similarity to the code-behind way used in Microsoft's .NET 3.0 to access code in Extensible Application Markup Language (XAML), which was released in 2008.

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

Oberon-2 is an extension of the original Oberon programming language that adds limited reflection and object-oriented programming facilities, open arrays as pointer base types, read-only field export, and reintroduces the FOR loop from Modula-2.

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

<span class="mw-page-title-main">Free Pascal</span> Free compiler and IDE for Pascal and ObjectPascal

Free Pascal Compiler (FPC) is a compiler for the closely related programming-language dialects Pascal and Object Pascal. It is free software released under the GNU General Public License, with exception clauses that allow static linking against its runtime libraries and packages for any purpose in combination with any other software license.

Borland Kylix is a compiler and integrated development environment (IDE) formerly sold by Borland, but later discontinued. It is a Linux software development environment based on Borland Delphi and Borland C++ Builder, which runs under Microsoft Windows. Continuing Delphi's classical Greek theme, Kylix is the name for an ancient Greek drinking cup. The closest supported equivalent to Kylix is the free Lazarus IDE package, designed to be code-compatible with Delphi. As of 2010 the project has been resurrected in the form of Delphi cross compiler for Mac and Linux, as shown in the Embarcadero's Delphi and C++ Builder roadmap. As of September 2011 with Kylix discontinued the framework for cross-platform development by Embarcadero is FireMonkey.

<span class="mw-page-title-main">Graphical user interface builder</span> Software development tool

A graphical user interface builder, also known as GUI designer or sometimes RAD IDE, is a software development tool that simplifies the creation of GUIs by allowing the designer to arrange graphical control elements using a drag-and-drop WYSIWYG editor. Without a GUI builder, a GUI must be built by manually specifying each widget's parameters in source-code, with no visual feedback until the program is run. Such tools usually called the term RAD IDE.

<span class="mw-page-title-main">Lazarus (software)</span> Free cross-platform integrated development environment for Free Pascal

Lazarus is a free, cross-platform, integrated development environment (IDE) for rapid application development (RAD) using the Free Pascal compiler. Its goal is to provide an easy-to-use development environment for programmers developing with the Object Pascal language, which is as close as possible to Delphi.

<span class="mw-page-title-main">Component-based software engineering</span> Branch of software engineering

Component-based software engineering (CBSE), also called component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a given software system. It is a reuse-based approach to defining, implementing and composing loosely coupled independent components into systems. This practice aims to bring about an equally wide-ranging degree of benefits in both the short-term and the long-term for the software itself and for organizations that sponsor such software.

OpenBUGS is a software application for the Bayesian analysis of complex statistical models using Markov chain Monte Carlo (MCMC) methods. OpenBUGS is the open source variant of WinBUGS. It runs under Microsoft Windows and Linux, as well as from inside the R statistical package. Versions from v3.0.7 onwards have been designed to be at least as efficient and reliable as WinBUGS over a range of test applications.

The Ceres Workstation was a workstation computer built by Niklaus Wirth's group at ETH Zurich in 1987.The central processing unit (CPU) is a National Semiconductor NS32000, and the operating system, named Oberon System is written fully in the object-oriented programming language Oberon. It is an early example of an operating system using basic object-oriented principles and garbage collection on the system level and a document centered approach for the user interface (UI), as envisaged later with OpenDoc. Ceres was a follow-up project to the Lilith workstation, based on AMD bit slicing technology and the programming language Modula-2.

Modula-2 is a structured, procedural programming language developed between 1977 and 1985/8 by Niklaus Wirth at ETH Zurich. It was created as the language for the operating system and application software of the Lilith personal workstation. It was later used for programming outside the context of the Lilith.

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

Pascal Script is a scripting language based on the programming language Pascal that facilitates automated runtime control over scriptable applications and server software. It is implemented by a free scripting engine that includes a compiler and an interpreter for byte code.

References

  1. 1 2 "Oberon microsystems AG". Oberon microsystems AG.
  2. 1 2 "BlackBox Framework Center". BlackBox Framework Center.
  3. "Download BlackBox". BlackBox Framework Center.
  4. "The 2-Clause BSD License". Open Source Initiative.
  5. Pountain, Dick; Szyperski, Clemens (May 1994). "Extensible Software Systems". Byte . Vol. 19, no. 5. pp. 57–62.
  6. Szyperski, Clemens (1999). Component Software: Beyond Object-Oriented Programming. Addison Wesley. pp. 33f, 96ff (Chap. 7). ISBN   978-0321753021.
  7. Szyperski, Clemens; Gruntz, Dominik & Murer, Stephan (2002). Component Software: Beyond Object-Oriented Programming (2nd ed.). Addison Wesley. pp. 40f, 109ff (Chap. 7). ISBN   978-0321753021.
  8. Floyd, Paul: A Discussion of Oberon. EDM/2
  9. Pountain, Dick (May 1993). "Oberon: A Glimpse at the Future". Byte . Vol. 18, no. 5. p. 111ff via Archive.org.
  10. Pountain, Dick (January 1995). "The Oberon/F System". Byte . Vol. 20, no. 1.
  11. Szyperski, Clemens (19 April 1995). "Re: Information On Ethos". Google: comp.lang.oberon (usenet archive). Archived from the original on 29 August 2022. Retrieved 21 November 2013. These are lines 796995 - 797151 extracted from the complete archive, see also: https://github.com/btreut/NN-ETHOS.
  12. Szyperski, Clemens (1992). Insight ETHOS: On Object-Orientation in Operating Systems (PhD). Zurich, Switzerland: ETH Zürich. ISBN   3-7281-1948-2. ETHZ ecollection.
  13. 1 2 "Welcome!". OberonCore (in Russian). 2005–2021. Retrieved 22 March 2021.
  14. Warford, J. Stanley. "Stan Warford". Computer Science Laboratory. Pepperdine University . Retrieved 22 March 2021.
  15. Warford, J. Stanley (11 December 2002). Hug, Karlheinz (ed.). Computing Fundamentals: The Theory and Practice of Software Design with BlackBox Component Builder. Vieweg & Sohn. ISBN   978-3528058289 . Retrieved 22 March 2021. (chapters) and (full book).
  16. 1 2 Zinn, Helmut (22 July 2020). "Component Pascal Collection". Component Pascal Collection. Retrieved 22 March 2021.
  17. "BlackBox Component Builder". Oberon.org. 20 October 2020. Retrieved 22 March 2021.