Object Windows Library

Object Windows Library
Original author(s) Borland Software Corporation
Developer(s) Open-source community
Initial release 1991 (1991)
Stable release
OWLNext 6.42 / May 21, 2015 (2015-05-21)
Development status Active
Written in Borland C++, Borland Pascal
Operating system Windows and Linux
Type Library or framework
License Originally proprietary; now freeware
Website sourceforge.net/projects/owlnext

The Object Windows Library (OWL) is a Borland C++ object-oriented framework originally designed for Windows API. It was used in Turbo Pascal for Windows, Borland Pascal and their Borland C++ package. It was a competitor to the Microsoft Foundation Class Library (MFC).

OWL had incomplete support by the Borland C++ IDE and wasn't always upwardly compatible from release to release. It was eventually deprecated in favor of the Visual Component Library (VCL), which is written in Object Pascal and included in Delphi and C++ Builder Studios.

An open source internet community has released OWLNext,[1] a series of corrections and improvements to the original OWL, which also provide support for modern compilers.

History

In the early 1990s, Borland dominated the C++ market. In 1991 Borland introduced Borland C++ 3.0 with 'Application Frameworks' which included Turbo Vision for developing DOS applications and OWL for the Windows platform. C++ was just beginning to replace C for development of commercial software, especially with the rising of the Windows platform (and the complexity that it involves). This allowed OWL to gain some popularity.

The first version implemented a proprietary extension called Dynamic Dispatch Virtual Tables (DDVT). This allowed objects to bind 'events' (windows messages) with 'methods' (functions). This mechanism avoided saturating the OO virtual function system with one function for each window message. In the next version of OWL, DDVT was replaced with a RESPONSE_TABLE, a macro-based mechanism, which is maintained today. A conversion tool (OWLCVT) was included to migrate code from OWL 1.0 to OWL 2.0.

In 1992, Microsoft launched MFC. A DOS version of MFC was short lived. The Windows version was simply a wrapper around the Windows API and was criticized for not being truly object-oriented.

In 1993, Borland launched Borland C++ 2.0 for OS/2 which included a version of OWL 2.0. OWL 2.0 used BIDS, the newer template library for 'container' or 'class library'.

In April 1993, Borland and Novell settled an agreement to port OWL to Novell AppWare Foundation. AppWare Foundation was an API designed by Novell to be cross-platform, allowing to deploy applications on Mac, Windows and Unix clients and with several network services. The main tools for developing in AppWare were OWL and AppBuilder (a visual tool to link application loadable modules through an 'Application Bus').[2]

In January 1994, Borland launched Borland C++ 4.0 for Windows which also included OWL 2.0. It added Doc/View support, VBX controls, and OLE. Win16, Win32s and Win32 was supported (Windows 95, the Win32 successor of Windows 3.x appeared in August 1995).

Late in 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 (www.uno.com) 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 fox x86. It was called WM_MOTIF. [3]

Early in 1995, Borland C++ 4.5 with OWL 2.5 was launched. As it was launched before Windows 95, Borland promised a free upgrade for any incompatibility present in the final Windows 95 (when available). Versions 4.51 and 4.52 followed. OWL 2.5 also included the Object Component Framework (OCF) to ease OLE development.

In August 1995, Microsoft released Windows 95 and Visual Studio 4.0. Contrary to popular belief, the inclusion of the MFC40.DLL with Windows 95 did not have a huge impact on the adoption of MFC. By 1995, Visual Studio 1.5 had already eclipsed Borland C++ in shipments, due partly to the volume and quality of documentation included with Visual Studio. The nearly seamless transition of MFC projects from Visual Studio 1.5 and Visual Studio 4.0 also contributed to its popularity. The instability of the original Borland C++ 4.5 and quirky treatment of OWL also persuaded many developers to drop Borland C++ and OWL in favor of Visual C++ and MFC.

In 1996, Borland launched Borland C++ 5 for Windows, which included OWL 5, which was a major revamp of the library. In August 1997, Borland C++ 5.02 was introduced with slightly updated a version of OWL 5. A Japanese edition was also available. Additionally, the Borland C++ Builder has included OWL in the 'companion CD'. After that Borland concentrated development on the VCL framework which has been evolving alongside OWL since Delphi 1.0 launched two years before. VCL continues to be the main framework of Borland (now Codegear) for Windows and .NET platforms. Examples on how linkage OWL applications with VCL Forms (Dialogs) were included in the last version of Borland C++. Borland stopped selling Borland C++ 5.02 and OWL in late 1999.

After Borland deprecated OWL, development was taken over by group and is called OWLNext which consists of patches to the original OWL source code.[1] It was included in the partner discs of Borland C++ Builder 2007 and Borland C++ Builder XE.[4]

Features

OWL applications supports (non-exhaustive list) single-/multiple- document interface (SDI/MDI), Doc & View Document Model, Drag&Drop, print and print-preview, GDI encapsulation, Windows Help (Winhelp), mail and messaging (MAPI), Internet (OwlSock/WinSock), OLE 1.0 and OLE 2.0 and other features. The "Borland Windows Custom Controls", an alternative to the standard widget set in Windows 3.1, were available in some versions of OWL, and this support propagated their unique look throughout many applications of the era.

In OWL, all classes start with letter "T" (e.g. TApplication); there are several root classes, the most common is TWindow from which window classes (e.g. TFrameWindow, TDecoratedFrameWindow, TDialog, TInputDialog, TFileOpenDialog, etc.) and controls classes (TEdit, TStatic, TButton, TGlyphButton, TComboBox, etc.) are derived. VCL classes also has the same prefix, but in VCL, all classes are derived from TComponent. Applications made with OWLNext are compatible with DEP/NX feature which defend system against virus/internet attacks. OWLNext supports Unicode, even on the Unicode non-compliant Windows 9x.

Advantages

Disadvantages

OWLNext

When Borland deprecated OWL in favor of VCL, a group of developers led by Yura Bidus started the project of maintaining the library in 1998. The original websites were http://owlnext.starbase21.com, http://www.webcitation.org/query?url=http://www.geocities.com/SiliconValley/Campus/5642/owlnext.html&date=2009-10-25+09:47:48 and http://members.xoom.com/yuri_b. Currently, the project is hosted by SourceForge: http://owlnext.sourceforge.net or http://www.owlnext.com. The extension is open source, free and the license allows the development of commercial applications.

The original name was OWL NExt, where the meaning of NExt was New Extensions. Later, it was joined to OWLNExt and currently, it is called OWLNext. The current version as of 2007 is OWLNext 6.20; the last version to officially support the Win16 platform.

OWLNext supports Unicode, even allowing developers to deploy Unicode-based applications in Win95. Added support for HTMLHelp.

OWL is still the property of Borland and is covered by several patents, however the version included in the 'Companion CD' for C++Builder can be downloaded from the current CodeGear site. The CodeGear site also allows developers to download the version 6.04 of OWLNext, but the official site for OWLNext is SourceForge.

Originally, OWL used BIDS (Borland International Data Structure) library as 'class library' (library for managing data structures like vectors, lists, etc.), OWLNext moved to STL (Standard Template Library), and also provides an emulation layer to minimize porting work for existing applications.

Linux support was added to OWLNext in version 6.16 using WINELIB, and there are also private ports to Solaris.

Shipped releases

Product version OWL version
Borland C/C++ 3.1 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.

See also

References

  1. 1 2 OWLNext
  2. Morgan B. Adair (1994) "The AppWare Foundation: An Overview"
  3. Software UNO Ltd (1997) "Software UNO Products and Services"
  4. Embarcadero Technologies "C++Builder XE Partner DVD"

Further reading

  1. Neward, Ted. Advanced OWL 5.0: Power Tools for OWL Programmers. ISBN 1-884777-46-5. 
  2. Walnum, Clayton. Borland C++ 4.x Tips, Tricks and Traps. ISBN 1-56529-895-0. 
  3. Faison, Ted. Borland C++ 4.5 Object-Oriented Programming. ISBN 0-672-30605-0. 
  4. Borland C++ 5.0 Programming Starter Kit Deluxe. Pearson Software. June 2002. ISBN 1-57595-430-3. 
  5. Faison, Ted. Borland C++ Object Oriented Programs. ISBN 978-0-672-30775-1. 
  6. Neward, Ted. Core OWL 5.0: OWL Internals for Advanced. ISBN 1-884777-50-3. 
  7. Faison, Ted. Inside Object Windows Library. ISBN 978-0-672-30219-0. 
  8. Swan, Tom. Mastering Borland C++ 4.5. ISBN 0-672-30546-1. 
  9. Broquard, Victor E. Object Windows 2.0 Programming. ISBN 978-0-553-37120-8. 
  10. Broquard, Victor E. Programming for OWL for Windows 95. ISBN 978-0-13-492273-7. 
  11. Spencer, Ian. Teach yourself OWL Programming in 21 days. ISBN 0-672-30600-X. 
  12. Heiny, Loren. Windows Graphic Programming with Borland C++. ISBN 0-471-30930-3. 
This article is issued from Wikipedia - version of the 10/10/2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.