There has been much discussion in the computing industry press concerning application development products and tools that support the creation of object-oriented applications. While the use of such products is a valuable aid in designing and developing an object-oriented application, it should not be construed that their use is essential to the successful implementation of an object-oriented approach.
It is quite possible to implement module-based object-oriented principles to a practical and beneficial degree in the Presentation Manager environment, using a "conventional" programming language such as "C". However, the degree of discipline and amount of work required of the application developer is greater when a standard programming language is used. Object-oriented tools or language extensions make the task of the application developer much easier, since many of the object-oriented concepts are handled by the tools themselves, without the need for the developer to concern him/herself with the details of their implementation.
Object-oriented programming tools fall into two general categories:
The tools that are marketed as "object-oriented" and which are currently available in the marketplace tend to implement the class-based approach to object-oriented programming. Their primary benefit is thus that they provide an inheritance hierarchy, and so make the task of object creation much easier for the application developer, albeit at the risk of reduced code efficiency and possible dependence upon a conceptual run-time environment.
The choice of an object-oriented programming tool is very much an individual one, and depends on the requirements and priorities of the development organization, the skills and prior experience of the application developers concerned, and the degree to which object-oriented practices are to be enforced within the organization.