- Object Windows Library
-
Object Windows Library Developer(s) Originally Borland (now Codegear) Initial release 1991 Stable release OWLNext 6.30.9 / September 2, 2010 Preview release OWLNext 6.31.5 / June 3, 2010 Development status Active Written in C++ Operating system Win16, Win32, Win64 and Linux Type library or framework License Originally proprietary, now free for personal and commercial usage. Website [1] The Object Windows Library (OWL) is a Borland C++ object-oriented framework originally designed for WinAPI. 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 a series of improvements and patches to the original OWL which also allowed newer compilers (BC++ Builder 5, BCC55, BC++ Builder 6, GCC, MSVC++ 6, MSVC 2003, MSVC 2005, MSVC 2008, MSVC 2010, BDS C++ 2006, CodeGear C++ 2007, CodeGear C++ 2009, CodeGear C++ 2010). The project name: OWLNext.
Contents
History
In the early 90s 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 specially with the rising of Windows platform (and the complexity that involves) this allowed to 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 OWL1.0 to OWL2.0.
In 1992 Microsoft launched MFC. A DOS version of MFC was short lived. The Windows version was simply a wrapper around WinAPI, 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 deploy apps in Mac, Windows and Unix clients and with several Networks services. The main tools for developing in AppWare were OWL and AppBuilder (a visual tool to link Application Loadable Modules through an 'Application Bus').[1]
In January 1994 Borland launched Borland C++ 4.0 for Windows which also included OWL 2.0. It added Doc/View support, VBX controls, 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. [2]
Early in 1995 Borland C++ 4.5 with OWL 2.5 was launched. As it was launched before Win95, 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 in 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 apps 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.
In 2007 Borland/Codegear launched Borland C++ Builder 2007 which included OWLNext in the partner CD. The CD included VCL/OWL integration examples and some support for Windows Vista development.
In 2010 Embarcadero Technologies (which bought CodeGear from Borland) launched Borland C++ Builder XE which included OWLNext in the partner CD. [3]
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.
All classes have prefix T (TApplication, TWindow, TFrameWindow, TDialog, TBitmap, etc.). VCL has the same prefix, but in VCL all classes derived from a single mother class: TObject; in OWL there are several root classes, the most common is TWindow from which derived all kind of Windows (TFrameWindow, TDecoratedFrameWindow, TDialog, TInputDialog, TFileOpenDialog, etc.) and even windows controls (TEdit, TStatic, TButton, TGlyphButton, TComboBox, etc.).
Applications made with OWLNext are compatible with DEP/NX feature which defend system against virus/internet attacks. Supports UNICODE even on non-UNICODE Windows systems (95/98/Me).
Advantages
- Well designed Object oriented framework, provides real encapsulation of Windows APIs, allows inheritance and polymorphism.
- C++ class for many common Windows resource-related data types that provide automatic closure of handles when the objects creating them go out of scope.
- Provides a Document/View framework for creating Model-View-Controller-based architectures.
- OWL comes with BIDS (Borland International Data Structure) a template class library.
- OWLNext uses the Standard Template Library (STL), which simplifies ports to other platforms.
- String class included in OWL.
- Faster executables than Visual Basic P-Code Executables or java.
- Faster executables than those produced by the .NET Framework.
- OWLNext developers can use the IDE of their choice: Borland C++ 5.0, Visual Studio 6.0, VS2003, VS2005, BDS2006, BDS2007
- Windows API can be accessed directly from OWL based programs.
- Small GUI executables :
- executables do not require the end-user to have the .NET Framework, which is a 22.4 MB download.
- executables do not require VB runtime.
- Executables can use 'static' libraries
- Several wizards are available for a variety of tasks, including third party tools, which reduced the work to generate the minimal working applications.
- Fast compilation speed.
- Ported to Linux, free and open-source solution.
- Source code included. Developers can build an optimized version for a particular CPU.
- Namespaces supported.
- Windows 95 to Windows 7 compatible. Win 3.x supported until OWLNext 6.20.x
Disadvantages
- Not ported to Mac OS X, WinCE, or .NET.
- As most libraries based in C++ (MFC, wxWidgets, Qt), C++ language requires a learning curve.
- Alternatives such as VCL provide rapid application development (RAD).
- Windows API is not completely covered, requiring deeper knowledge of it.
- .NET offers a more object oriented, complete, and organized API.
- Significantly fewer users than MFC.
- Poor third party support in the form of books, web sites, articles and third party libraries (such as Codejock Software)
- No native support for reading/writing JPG or PNG files
- No native XML support
OWLNext: the future of OWL
When Borland deprecated OWL in favor of VCL, a group of developers led by Yura Bidus started the project of maintain 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 in 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 NExt meaning 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, it's the last version to officially support the Win16 platform.
OWLNext support UNICODE, even allow to deploy UNICODE based applications in Win95. Added support for HTMLHelp.
OWL still is property of Borland and covered by several patents[citation needed], however the version included in the 'Companion CD' for C++Builder can be downloaded from current CodeGear site. It also allows to download the version 6.04 of OWLNext, but the official site for OWLNext is SourceForge.
Original 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, there are also private ports to Solaris. These ports are now being integrated into the upcoming OWLNext 6.40. The support for Win64 is on the plan. Currently there is no plan to support .NET platform since native Vista will allow better performance.
Books about OWL & Borland C++
There are several books about the C++ / OWL, among these are:
- Advanced OWL 5.0: Power Tools for OWL Programmers, Ted Neward, ISBN 1884777465.
- Borland C++ 4.x Tips, Tricks and Traps, Clayton Walnum, ISBN 1565298950
- Borland C++ 4.5 Object-Oriented Programming, Ted Faison, ISBN 0672306050
- Borland C++ 5.0 Programming Starter Kit Deluxe, , ISBN 1575954303
- Borland C++ Object Oriented Programs, Ted Faison, ISBN 0672307758, ISBN-13 978-0672307758
- Core OWL 5.0: OWL Internals for Advanced, Ted Neward, ISBN 1884777503
- Inside Object Windows Library, Ted Faison, ISBN 0672302195, ISBN-13 978-0672302190
- Mastering Borland C++ 4.5, Tom Swan, ISBN 0672305461
- Object Windows 2.0 Programming, Victor E. Broquard, ASIN 0553371207
- Programming for OWL for Windows 95, Victor E. Broquard, ASIN 0134922735
- Teach yourself OWL Programming in 21 days, Ian Spencer, ISBN 067230600X
- Windows Graphic Programming with Borland C++, Loren Heiny, ISBN 0471309303
Versions (non-exhaustive list)
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++ 5.0x Japanese OWL 5.0 Borland C++ Builder 4.0 OWL 5.0 Borland C++ Builder 5.0 OWL 5.0 Borland / Codegear C++ Builder 2007 OWLNext 6.20 Embarcadero C++ Builder XE OWLNext 6.30 Turbo Pascal for Windows 1.0 Turbo Pascal for Windows 1.5 See also
References
- ^ Morgan B. Adair (1994) "The AppWare Foundation: An Overview"
- ^ Software UNO Ltd (1997) "Software UNO Products and Services"
- ^ Embarcadero Technologies "C++Builder XE Partner DVD"
External links
- Downloadable OWL source from CodeGear
- Download OWLNext 6.20 full install from Codegear
- Download OWLNext 6.30 full install from Embarcadero's C++ Builder XE Partner DVD
- OWLNext current site
List of widget toolkits Low-level High-level On Amiga OSOn WindowsMicrosoft Foundation Class Library · Windows Template Library · SmartWin++ · Object Windows Library · Visual Component Library · Windows Forms · Windows Presentation Foundation · SilverlightOn Unix,
under X11Cross-platform,
by languageAdobe Flex · AsWingXMLAmple SDK · CougarXML · GladeXML · Lively Kernel · Pyjamas · Rialto Toolkit · XAML · XML User Interface · XUL · WtdesktopwebGoogle Web Toolkit · ExtJS GWTC or C++CEGUI · Component Library for Cross Platform · FLTK · FOX toolkit · OpenGL User Interface Library · GTK+ · Juce · JX Application Framework · Qt · Wt · Tk · TnFOX · Visual Component Framework · wxWidgets · YAAF · XForms · XVT · Ultimate++Common LispObject PascalQtRubyCategories:- Borland
- C++ libraries
- Software derived from or incorporating Wine
Wikimedia Foundation. 2010.