Object Windows Language. It is development software maker Borland's object-oriented wrapper around the Microsoft Windows API.

OWL uses C++ to encapsulate much of the Windows API into object-oriented classes. Common user interface (UI) elements in a Windows programs (buttons, menus, toolbars) are represented by classes that can serve as bases for derived objects. This way, programmer's can act on UI elements as if they were objects, as opposed to continuously messing with all nuances that the raw API demands--such as handles, device contexts, and window registering.

OWL does a lot with Windows. It represents a Windows application as an object. It encapsulates windows as objects. It overrides the << and >> operators to simplify serialization. It provides abstraction for OLE operations. It even has full support for document/view applications.

Simply put, it's almost the exact description people use to also describe MFC, the Microsoft Foundation Classes.

The similarities between OWL and MFC are stunning. If you take most of the common MFC control classes (CEdit, CButton, CStatic) and replaced the C's with T's, you would have an application written in OWL. It should be noted that OWL 1.0 did come out before MFC 1.0 in 1992.

Many programmer's still consider the OWL framework more elegant and simple to code for. From a design point of view, OWL is a clear winner: it doesn't depend on macros nearly as much as MFC, it's more consistent across the classes, and it represented true object-orientation. Borland successfully ported OWL to OS/2 at one point. Microsoft's attempt at a Macintosh MFC port proved hopeless.

However, MFC became the clear winner in the marketplace. It happened because:

  • Any new features Microsoft introduced into Windows were encapsulated with MFC well before any other class libraries could catch up.
  • Programmers already familiar with the raw Windows API could more easily transition to MFC than with other libraries.
  • Microsoft provides the full source code of MFC with the product.
  • Many more third-party developers built add-ons to MFC than OWL.

Borland continually had to play catch up with Microsoft. Microsoft, having exclusive access to the code that would eventually find its way into released Windows versions, always had the leg up on Borland.

Borland doesn't support OWL anymore, and hasn't since 1996. At one point, Borland had to agree with Microsoft not to develop OWL anymore in exchange for some API support. Borland's C++ Builder now uses MFC by default.