Page 1 of 2
Misunderstood and misused
It can be used in a procedural fashion, object oriented, functional, declarative or any discipline you care to apply to it, admittedly with variable amounts of success.
Philosophy, style and heritage
Object-oriented and dynamic
In traditional object-oriented languages objects are created by first defining a class - a blueprint for an object. Then you create an instance of the class, i.e. an object. This is not a bad way to work with static objects and it fits in well with strong static typing, which is an approach many programmers think is good.