The procedural programming model differs significantly from the object-oriented (class-based) model, but objects of both types can communicate with each other and can coexist in the same application. In general, the run-time nature of procedural coding supports a dynamic coding model more easily than does class-based programming. Class-based programming, on the other hand, supports a simplified program structure that can be easier to maintain and can facilitate reuse of code among objects. Because you can mix procedures and class-based objects in the same application, you can choose the model that best serves a given programming task in your application.