Template:Short description {{#invoke:Infobox|infobox}}Template:Template other{{#invoke:Check for unknown parameters | check | showblankpositional=1 | unknown = Template:Main other | preview = Page using Template:Infobox software with unknown parameter "_VALUE_"|ignoreblank=y | AsOf | author | background | bodystyle | caption | collapsetext | collapsible | developer | discontinued | engine | engines | genre | included with | language | language count | language footnote | latest preview date | latest preview version | latest release date | latest release version | latest_preview_date | latest_preview_version | latest_release_date | latest_release_version | licence | license | logo | logo alt | logo caption | logo upright | logo size | logo title | logo_alt | logo_caption | logo_upright | logo_size | logo_title | middleware | module | name | operating system | operating_system | other_names | platform | programming language | programming_language | released | replaced_by | replaces | repo | screenshot | screenshot alt | screenshot upright | screenshot size | screenshot title | screenshot_alt | screenshot_upright | screenshot_size | screenshot_title | service_name | size | standard | title | ver layout | website | qid }}Template:Main other

The Object Windows Library (OWL) is a C++ object-oriented application framework designed to simplify desktop application development for Windows and (some releases) OS/2.

OWL was introduced by Borland in 1991 and eventually deprecated in 1997 in favor of their Visual Component Library (VCL). Its primary competitor was the Microsoft Foundation Class Library (MFC). OWLNext,<ref name="OWLNext">OWLNext http://sourceforge.net/p/owlnext</ref> an open-source project driven by the OWL user community, has continued the maintenance of OWL, ensuring that the library and applications that use it work with the latest version of Windows and modern C++ compilers.

HistoryEdit

In the early 1990s, Borland dominated the C++ market. In 1991, Borland introduced Borland C++ 3.0 which included OWL 1.0. At that time, C++ was just beginning to replace C for development of commercial software, driven by the rising of the Windows platform and the rapid adoption of object-oriented design. During this period, OWL was a popular choice for Windows application development.

In 1992, Microsoft introduced MFC as part of Microsoft C++ 7.0. As a similar C++ application framework for Windows, MFC immediately became OWL's primary competitor in the C++ application development market.

OWL 1.0 depended on Dynamic Dispatch Virtual Tables (DDVT), a proprietary extension to C++ that allowed the programmer to bind Windows messages (events) to functions (event handlers) in a simple manner and with little run-time overhead. MFC, on the other hand, used a solution that did not require a language extension.

In 1993, Borland launched Borland C++ 4.0 which included OWL 2.0. In this version of OWL, the proprietary DDVT extension was replaced by response tables, a macro-based solution compatible with standard C++ and similar to MFC in use. A conversion tool (OWLCVT) was included to migrate code from OWL 1.0 to OWL 2.0.

In April 1993, Borland and Novell signed an agreement to port OWL to Novell AppWare Foundation. AppWare Foundation was an API designed by Novell to be cross-platform, allowing the deployment of applications on Mac, Windows and Unix clients and with several network services. The main tools for developing in AppWare were OWL and AppBuilder.<ref>Morgan B. Adair (1994) "The AppWare Foundation: An Overview"</ref> However, in late 1994, Novell CEO Raymond Noorda resigned. Novell expansion plans were reconsidered, AppWare development was stopped and so was OWL for AppWare. In 1995 a group of original team members bought AppBuilder. In the same year, Software UNO offered a commercial port for OWL 2.0 to several platforms: AIX 3.2.5, DEC OSF/1 AXP, HP-UX 9.03, Linux 1.2, Solaris 2.x, Sun OS 4.1.x, and SVR4 for x86. It was called WM_MOTIF.<ref>Software UNO Ltd (1997) "Software UNO Products and Services"</ref>

In 1995, Borland C++ 4.5 with OWL 2.5 was released. As it was released before Windows 95, Borland promised a free upgrade for any incompatibility present in the final Windows version. In August 1995, Microsoft launched Windows 95 and Visual Studio 4.0. By then, Visual Studio had already eclipsed Borland C++ in shipments, and it was clear that OWL was losing ground to MFC.

In 1996, Borland released Borland C++ 5 for Windows. This version included OWL 5, a major revamp of the library. While OWL 5 received a minor update with the release of Borland C++ 5.02 a little later, version 5 would end up as the final version of OWL by Borland.

In 1997, Borland released C++Builder and deprecated Borland C++. OWL was included on the Companion CD that shipped with C++Builder, but Borland ended maintenance and further development of the library.

In late 1999, Borland stopped selling Borland C++ and OWL.

OWLNextEdit

Shortly after Borland ended the development of OWL, maintenance was taken over by a group of users led by Yura Bidus. This effort evolved into the OWLNext<ref name="OWLNext" /> open-source project currently hosted at the SourceForge site. OWLNext is a modern update and extension of OWL with support for the latest Windows versions and modern C++ compilers from Microsoft and Embarcadero Technologies.

Shipped releasesEdit

Product version OWL version
Borland C/C++ 3.0 OWL 1.0
Borland C/C++ 2.0 for OS/2 OWL 2.0
Borland C++ 4.0x OWL 2.0
Borland C++ 4.5x OWL 2.5
Borland C++ 5.0x OWL 5.0
Borland C++Builder 4.0 OWL 5.0
Borland C++Builder 5.0 OWL 5.0
CodeGear C++Builder 2007 OWLNext 6.20
Embarcadero C++Builder XE OWLNext 6.30
Embarcadero C++Builder XE2 OWLNext 6.32

Later versions of OWLNext have been released through SourceForge.

ReferencesEdit

Template:Reflist

Further readingEdit

Template:Refbegin

  1. Template:Cite book
  2. Template:Cite book
  3. Template:Cite book
  4. Template:Cite book
  5. Template:Cite book
  6. Template:Cite book
  7. Template:Cite book
  8. Template:Cite book
  9. Template:Cite book
  10. Template:Cite book
  11. Template:Cite book
  12. Template:Cite book

Template:Refend

External linksEdit

Template:Pascal programming language family Template:Widget toolkits