BlackBox Component Builder

Last updated

BlackBox Component Builder
Developer(s) Oberon microsystems AG [1]
BlackBox Framework Center [2]
Initial releaseOberon/F: 1993;31 years ago (1993)
BlackBox: 1999;25 years ago (1999)
Stable release
1.7.2 / 3 November 2019;4 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> General-purpose programming language

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 was inspired both by the Voyager space probe's pictures of the moon of the planet Uranus, named Oberon, and because Oberon is famous as the king of the elfs.

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 after 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> Operating system

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> Programming language

Oberon-2 is an extension of the original Oberon programming language that adds limited reflective programming (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.

Virtual Pascal is a freeware 32-bit Pascal programming language compiler, integrated development environment (IDE), and debugger for OS/2 and Microsoft Windows, with some limited Linux support. Virtual Pascal was developed by Vitaly Miryanov and later maintained by Allan Mertner.

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

Lazarus is a 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 developing with the Object Pascal language, which is as close as possible to Delphi. It is free and open-source software with different parts released under different software licenses.

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.

<span class="mw-page-title-main">Adobe Flash Builder</span> Integrated development environment

Adobe Flash Builder is an integrated development environment (IDE) built on the Eclipse platform that speeds development of rich Internet applications (RIAs) and cross-platform desktop applications, particularly for the Adobe AIR platform. Adobe Flash Builder 4 is available in two editions: Standard and Premium.

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.{{cite book}}: CS1 maint: multiple names: authors list (link)
  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 20 November 2013. 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.