Object-orientation is a method of structuring the data and logic in a computer program in a way that makes it easier for a programmer to accurately model real business entities and processes. For example in an accounts receivable program we might define a "Customer" object that has an "UpdateAccounts" method that automatically updates all the accounts linked to the customer. Then in the program's source code wherever we wish to ensure a customer's accounts are updated we can simply write a line of code that looks like this:
There are two reasons why this is advantageous. Firstly it allows a programmer to automate things with less lines of code than would otherwise be needed. Secondly it allows the logic to be easily understood if it ever needs altering. In other words it simplifies the process of writing and maintaining source code and lowers the cost of software development and maintenance.
However it is a sad and amazing fact that the advantages of object-orientation proved to be so seductive to programmers that they developed some very complicated technologies (COM, DCOM, SOM, CORBA, XML, SOAP, WSDL to name a few) to allow objects to be available to their programs even if they belonged in other programs, were written in other languages or resided on other computer systems. In reality this endeavour has had the opposite effect from what was intended and made software development more complex than it was before the change to object-orientation.
What used to be an enjoyable and productive occupation for a business programmer has become a nightmarish exercise to the point where many potential programmers now decide it's no longer worth the effort and they'd rather do something else. It has also had the effect of making software development so expensive it has become uneconomic for anyone except governments and large corporations (i.e. those with an unlimited supply of money.)
The good news is that it is actually not necessary for a business' information systems to be split into multiple programs on mutiple platforms in multiple languages. It is quite possible for an entire business system to be developed using a single object-oriented programming environment on a single platform in a single language allowing us to enjoy the true advantages of object-orientation.