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?
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.