Un lenguaje de programación es un sistema estructurado compuesto por reglas gramaticales, símbolos y sintaxis que permiten a los desarrolladores escribir instrucciones comprensibles para una computadora. En la informática moderna, los lenguajes de programación son esenciales para el desarrollo de casi cualquier tecnología, actuando como un intermediario entre el pensamiento humano y el lenguaje binario que las computadoras pueden entender.
Entendiendo las bases del desarrollo
En un lenguaje de programación, los desarrolladores crean programas al definir una serie de instrucciones que la computadora debe seguir. Un algoritmo es una secuencia ordenada de pasos que resuelve un problema específico o ejecuta una tarea determinada. Los lenguajes de programación funcionan, en resumen, a través de instrucciones y algoritmos, además de utilizar compiladores e intérpretes.
Al analizar tecnologías específicas, a menudo surge la duda sobre su construcción técnica. Por ejemplo, en el caso de COS (Cache Object Script), se trata de una tecnología con una capacidad poderosísima, como los multimétodos, desarrollado por un gurú del CERN. COS usa C puro pero genera desde el código objeto un array de C con las clases y métodos definidos.
Comparativa técnica de enfoques en C
Existen diversas extensiones o librerías de C para orientación a objetos que buscan ampliar las capacidades del lenguaje base. A continuación, se presenta una comparativa conceptual basada en el uso de C como lenguaje base:
- COS (Cache Object Script): Utiliza C puro, implementa un modelo de objetos abierto, permite una mejor separación de concerns y combina multiple dispatch con reenvío de mensajes.
- DYNACE: Es una extensión que cuenta con un preprocesador propio, diseñado para ser un punto de entrada sencillo a la programación orientada a objetos para programadores habituados a C.
¿Por qué se eligen estos lenguajes?
La elección de un lenguaje de programación debería ser provocada una vez se tenga claro el problema y, más aún, cuando se sabe conceptualmente la solución a esto. El punto a favor de estar basado en C es la simpleza del lenguaje, la popularidad y la portabilidad. Para trabajar en embebidos todos sabemos C y si formamos un grupo de desarrollo es el lenguaje en común de todos los programadores actuales y futuros que habrá en la empresa.
Lea también: ¿Qué es un Activo?
Aunque lenguajes como Python son ventajosos en distintos contextos por su syntax sugar, C está siendo subvalorado y se podría utilizar en áreas donde actualmente no lo hacemos. Las ventajas en costos corporativos, como evitar capacitaciones costosas, y personales, al estar concentrado más en los problemas y menos en aprender nuevas tecnologías asociadas a otros lenguajes, hacen valer la pena su adopción.
Consideraciones sobre el desarrollo con frameworks de C
Si bien existen retos al implementar objetos sobre C, como el abuso del preprocesador en algunos mecanismos de macros, el código es abierto y permite una personalización profunda. La clave para la adopción exitosa reside en la madurez del ecosistema: el punto esencial me parece que está en que no hay mucho desarrollado sobre eso (librerías, frameworks, etc.) ni muchos ejemplos. Eso podría cambiar si las comunidades de programadores eligen estas tecnologías para sus proyectos, aprovechando el control absoluto que brinda C sobre lo que se hace y cómo se hace.
Lea también: optimización y rendimiento con lenguaje ensamblador
Lea también: Cómo declarar elementos en el código: aplicaciones prácticas
