user19838: It seems like the majority of Arduino applications are written without using classes / objects. Is there a reason for this? Does is slow down the Arduino or somehow present undesirable behavior?

user4143: Your assumption is quite wrong:

The majority of libraries use OOP. 
The majority of in-built device drivers use OOP.
The core is filled with many OOP helper objects and classes.
99.99% of all sketches use those OOP objects.

The sketches themselves may not be written as a class or set of classes for a number of reasons:

There is no point
The programmer doesn't know how

When a sketch is just stitching together calls to objects defined through libraries and making a few decisions there is little point in making the sketch itself an object. It's just a waste of time.  In general if the sketch gets too complex to manage it gets broken down into smaller units - i.e., libraries - which are very often written as classes.
The moment you do Serial.begin(9600); you are using OOP.

19838: <p>It seems like the majority of Arduino applications are written without using classes / objects. Is there a reason for this? Does is slow down the Arduino or somehow present undesirable behavior?</p>
 4143: <p>Your assumption is quite wrong:</p>

<ul>
<li>The majority of libraries use OOP. </li>
<li>The majority of in-built device drivers use OOP.</li>
<li>The core is filled with many OOP helper objects and classes.</li>
<li>99.99% of all sketches use those OOP objects.</li>
</ul>

<p>The sketches themselves may not be written as a class or set of classes for a number of reasons:</p>

<ol>
<li>There is no point</li>
<li>The programmer doesn't know how</li>
</ol>

<p>When a sketch is just stitching together calls to objects defined through libraries and making a few decisions there is little point in making the sketch itself an object. It's just a waste of time.  In general if the sketch gets too complex to manage it gets broken down into smaller units - i.e., libraries - which are very often written as classes.</p>

<p>The moment you do <code>Serial.begin(9600);</code> you are using OOP.</p>
