Codificación aprenderaprogramar.com: CU00505F
PROGRAMACIÓN ESTRUCTURADA FRENTE A POO
La programación más usada a nivel profesional hoy en día puede decirse que es la programación orientada a objetos, soportada por lenguajes muy populares como C++, Visual Basic o Java. La programación orientada a objetos (POO) se popularizó en la década de los 90“desplazando” a la programación estructurada tradicional, pero no para eliminarla o dejarla obsoleta, sino para construir sobre ella.
Su éxito ha radicado en facilitar y simplificar la construcción de programas y su mantenimiento. Esta concepción de la programación se ha impuesto a casi todos los niveles, lo cual no quiere decir que no se puedan usar lenguajes que no la contemplen, y lograr con ellos resultados útiles y eficaces.
Todo lo que hemos estudiado y vamos a estudiar será de utilidad para una persona que quiera profundizar en programación orientada a objetos, aunque obviamente tendrá que añadir nuevos conocimientos.
La característica principal de la programación orientada a objetos es el uso de clases y objetos. Un objeto es la combinación de código y datos. En este momento no vamos a interesarnos por estudiar ni entender en qué consiste la programación orientada a objetos. Nosotros vamos a centrarnos en lo que podríamos decir que son los fundamentos de la programación orientada a objetos, y ésta es la programación estructurada que hemos estudiado ya y vamos a seguir estudiando ahora.
Es frecuente oir hablar de diferentes modelos o paradigmas de programación (estructurada, funcional, lógica, orientada a objetos, etc.). Antes que detenernos a discutir en qué consiste un tipo de programación u otra vamos a preferir ir al lado práctico y empezar a hablar de Code::Blocks y C.
¿QUÉ ES Y PARA QUÉ SIRVE C?
C es un lenguaje de programación de larga historia si lo comparamos con otros surgidos más recientemente. C ha tenido distintos usos a lo largo de la historia, con aplicaciones en sistemas operativos, compiladores y desarrollo de software. No queremos entrar a profundizar en estos conceptos ya que exceden el objetivo que tenemos que es aprender fundamentos de programación. Simplemente diremos que un programa podemos verlo como “un servicio”. Podríamos hacer una analogía con una peluquería: el servicio de peluquería no puede ofrecerse “en el aire”, tiene que hacerse en un local que le proporcione las cosas más básicas necesarias (electricidad, agua, etc.). Este local o base sería para nosotros un sistema operativo (tipo MS-DOS, Windows, MacOS, Linux, Unix, etc.): una base que provee los servicios básicos para que los programas puedan funcionar. Por otro lado para que las ideas se transformen en un peinado del cliente el peluquero necesita algo que se encargue de la transformación: pongamos por caso “máquinas o herramientas” como tijeras o secadoras de pelo que traducen las ideas (programas) en hechos. Esto sería en nuestro caso el compilador: a partir de la idea expresada por el programador (programa) el compilador se encarga de generar el código binario o transformado y útil para ser ejecutado en el ordenador (el producto). Por último tendríamos el software o producto. En el caso de la peluquería podría haber distintos productos como “servicio de corte, lavado y secado”, “servicio de tinte”, “servicio de peinado”, etc. y todos estos servicios son posibles gracias a que existen los servicios básicos y herramientas de transformación. En nuestro caso podremos generar programas, tantos como queramos, gracias a que disponemos de un sistema operativo (que nos facilita nuestros servicios básicos) y un compilador (nuestra herramienta para transformar las ideas en hechos).
En el mundo de los computadores, tanto los sistemas operativos como compiladores y programas tienen que ser definidos por humanos de alguna manera. Usar un lenguaje como C es una de esas maneras, y C se ha usado tanto para definir cómo deben funcionar sistemas operativos como para definir cómo deben funcionar compiladores como para crear programas.
Hemos tratado de hablar muy simplificadamente sobre algunos términos (sistemas operativos, compiladores) que suelen nombrarse cuando se habla de C. No debes preocuparte ahora por todos estos conceptos, ya que se sale de nuestros objetivos.
El lenguaje C tiene otros lenguajes que se consideran sus antecesores (BCPL, B) y comenzó a utilizarse en los años 70. Su fecha de “nacimiento” como lenguaje de uso extendido suele decirse que es 1978 cuando Brian Kernighan y Dennis Ritchie publicaron el libro The C Programming Language, popularmente denominado “La Biblia de C”. En este libro se definía de forma clara y precisa este lenguaje de programación.
En sus orígenes C fue un lenguaje vinculado a un sistema operativo que ha tenido gran importancia histórica: UNIX. C se usó tanto para definir el sistema operativo como para definir el compilador como para crear los programas que funcionaban en UNIX.
C se popularizó como lenguaje útil y potente, utilizable bajo cualquier sistema operativo o hardware. Su amplio uso llevó a que se crearan multitud de compiladores C cada uno con pequeñas diferencias a la hora de aceptar el lenguaje o generar resultados, lo que daba lugar a muchos quebraderos de cabeza a los programadores, que tenían que tener en cuenta esas diferencias según trabajaran con un compilador u otro. Para eliminar estos problemas se creó un comité internacional que terminó proponiendo a finales de los años 80 un estándar o lenguaje C unificado al que se denominó ANSI C. De este modo, si bien siguen surgiendo normas de estandarización que introducen pequeñas modificaciones o ampliaciones en el lenguaje cada cierto tiempo, C es un lenguaje con una definición muy estable y con millones de usuarios en todo el mundo. A pesar del tiempo transcurrido desde su creación, es un lenguaje que sigue siendo estudiado en centros de formación y universidades, y ampliamente utilizado a nivel profesional (además, se ha constituido en antecedente de otros lenguajes que se han hecho populares por lo que su aprendizaje es doblemente útil).
Puede decirse que C tiene ventajas e inconvenientes. Ningún lenguaje es perfecto o ideal. De lo que no cabe duda es de que C es un buen lenguaje, con potencia y eficiencia para crear buenos programas. Si no fuera así, habría pasado a la historia y dejado de usarse como ha ocurrido con otros lenguajes.
C es un lenguaje que no deja de tener cierta complejidad. Nosotros no vamos a profundizar en todos los aspectos o posibilidades de C, al contrario, nos vamos a aproximar al lenguaje de la forma que consideramos más cómoda y didáctica: “aprender jugando”. Te proponemos que al mismo tiempo que lees y estudias el curso, ejecutes los programas propuestos y crees tus pequeños programas para realizar pruebas. En algunos casos comprobarás que el programa no funciona o que tienes errores: trata de aprender de estas pruebas, así han comenzado la mayoría de los programadores. Así pues, sin prisa pero sin pausa: ¡a programar!.
EJERCICIO
Hay un conjunto de lenguajes que se dice que pertenecen a la familia de lenguajes C (C-family programming languages). Busca información en libros o en internet y responde a las siguientes preguntas:
a) ¿Qué lenguajes pertenecen a la familia de lenguajes C?
b) ¿Por qué se dice que estos lenguajes pertenecen a la familia de lenguajes C?
c) ¿Es posible que un lenguaje de programación que se cree en el futuro se incluya dentro de la familia de lenguajes C, o por el contrario, ya no es posible que se incorporen más lenguajes a la familia? ¿Por qué?
Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.