¿Es necesaria la OOP para la ingeniería integrada?

Algunas de las ideas detrás de OOP son útiles en incrustado. En particular, la encapsulación de datos es aún más importante en OOP integrado que en OOP tradicional, porque realmente necesita protegerse contra las condiciones de carrera y los accesos conflictivos a la memoria y los dispositivos compartidos.

Pero otros principios de OOP, como el polimorfismo y las funciones virtuales, agregan capas de indirección que tienen el potencial de explotar inesperadamente el consumo de memoria, ralentizar la ejecución y hacer que la depuración sea un infierno.

En la práctica, generalmente desaconsejo usar la mayoría de las características de C ++ OOP en sistemas embebidos. Pero puede obtener la encapsulación a través de las reglas de alcance del archivo de C y una buena comprensión de las palabras clave estáticas, externas y volátiles.

Por lo tanto, mantenga los conceptos, pierda las características del lenguaje.

La programación integrada, para la mayoría de las personas, se trata de interacción de hardware de bajo nivel, escritura de controladores de dispositivos, etc. Y eso también es principalmente cierto. Pero también hay bastante lógica de negocios involucrada que se utiliza para resolver problemas del mundo real. OOP es un paradigma de programación que es realmente efectivo para representar problemas del mundo real.

Entonces, yo diría: tal vez no es absolutamente necesario saber OOP para convertirse en un ingeniero integrado o para escribir software integrado; pero definitivamente es útil estar al tanto de los principios de OOP. Sin duda, le resultará más fácil escribir partes (sin controlador) de su aplicación. E incluso si usa un lenguaje de programación supuestamente distinto de OOP como C, le ayudará a diseñar abstracciones útiles que lo ayudarán a resolver problemas más fácilmente. Dicho esto, también debe tener en cuenta las implicaciones de rendimiento al usar un lenguaje OOP como C ++ y tener cuidado de evitar el diseño excesivo que puede hacer que su producto sea innecesariamente complicado y lento.

En resumen, ¡OOP no es necesario, pero es muy recomendable!