C++ ¿ES EL FUTURO?

por | 2 mayo, 2018

Hace unas semanas hice un comentario sobre una noticia acerca del aumento en el uso de lenguaje «C» para sistemas embebidos.

Mis lenguajes de programación para sistemas embebidos han sido ensamblador (tradicionalmente aunque en fase de abandono)  y «C». Una reciente consulta de un asistente a uno de mis cursos me hizo volver los ojos de nuevo hacia C++ como un lenguaje para embebidos.

El entusiasmo que proyectan algunos autores como Dan Saks (su columna bajo la referencia «Programming pointers« es de valor inapreciable) sobre C++ es un acicate para seguir investigando.

En la polémica C/C++ hay opiniones para todos los gustos y resulta difícil tomar partido sin una buena información. Por ello he decidido hacer las pruebas por mí mismo. De momento, sin embargo, no tengo muchas conclusiones.

He aplicado C++ a un pequeño ejemplo escrito en «C» que empleo en uno de mis cursos recientes. He desarrollado la misma aplicación en tres formatos (¿puedo decir arquitecturas?) distintos, dos de ellos en «C++» puro y una tercera en «C» mezclado con C++.

Estas son algunas de las conclusiones preliminares:

  • C++ aumenta entre un 40% y un 60% el tamaño del código.
  • Uno de los formatos aún no me funciona (no da errores) y no consigo ver el error ni depurando paso a paso.
  • La solución que por ahora más me gusta es la que mezcla C y C++. El acceso al hardware en «C» y la aplicación en C++ a través de un «wrapper»  intermedio.

Debo decir que esta última solución es la que más memoria de código y de datos ocupa. Pero esto debiera ser aceptable si considero que la versión «original» en «C» debidamente organizada ocupa 2,4 veces que la misma aplicación desarrollada sin arquitectura (en un bloque).

Espero, como dicen los expertos, que la diferencia se reduzca sensiblemente con aplicaciones más grandes y complejas.

Por ahora debo decir que he ampliado mi trabajo para trasladar algunas aplicaciones reales y de mayor tamaño a C++. Esto está requiriendo, sin duda, un cambio en mi forma de pensar. No intento programar en C usando un compilador de C++ sino ser capa de programar directamente en C++.

Programar en C++ no es aprender un nuevo lenguaje o una nueva sintaxis. Es desarrollar una forma nueva de pensar, y eso lleva tiempo (sobre todo a mi edad). Pero no por ello dejaré de intentarlo.

Espero obtener información tan interesante como para incluirla en nuevos comentarios.

 

 

Deja una respuesta