Welcome to Automation Fraternity!

Object Repository vs Descriptive Programming

1. Single location for all the objects.
2. OR has a GUI, which makes objects easy to maintain, its not true with DP.
3. OR provides Object Identification tools as below:

a. Highlight in Application.(Only in OR)
b. Ordinal Identifier.(Only in OR)
c. Visual Relational Identifier. (VRI) (Only in OR)
d. Regular Expressions (OR and DP)
e. XPATH (Only In OR)

4. It provides centralized repository for all the objects in the application there by provides maintainability and provide flexibility by DEFAULT. QTP understands QTP-OR and has lots of features and inbuilt functions to manipulate it.

5. In DP, there are two ways to implement, either write description inside the scripts which will compromise maintainability and centralization concepts. For example if some object changes, than its description has to be changed in all the scripts in which it is written.

Second way is to save these object description inside the Excel file or DB, which would act as an object repository. The idea of centralization will be fulfilled with this approach. But having said that, there are two drawbacks with this:

a. It will be similar to QTP OR in concept but it will not have OR features as mentioned above which makes lot of tasks much easier and hassle free.
b. QTP do not understands this external excel repository file on its own, so we have to make QTP understand about it there by writing more code and inviting more complexities, with no OR features and QTP inbuilt functions at our disposal.

So, In a NutShell it is always better to Use Object Repository wherever it could be used.
Also, DP should not be pushed as it has its own advantage, and could result in troubled code or FW, if not appropriately used.
Always check if problem could be solved using OR.
HP team is moving towards Object identification Improvements and introducing new features.
This however, can not eradicate the use of DP, but surely minimizes it.

Check the below sections for Code Item, for the difference between OR and DP.
They are coming shortly. :)
Meanwhile, feel free to submit your code which demonstrates the use of DP and OR over each other.