programas para asignaturas

desarrollo de programas para asignaturas

programas para asignaturas

Desarrollo de programas: ¿orientación a objetos o estructurada?

Al escribir programas para asignaturas a menudo debemos aconsejar al cliente si el programa debe escribirse orientado a objetos o de forma estructurada. Por supuesto, lo más importante en este caso es cómo les enseñaron a programar en las clases para las que se encarga el programa...
Por eso, en realidad, es usted quien debe decirnos cómo debe estar escrito el programa para la asignatura que vamos a escribir para usted; y como es algo muy importante, le aconsejamos asegurarse de ello, ya que una mala decisión en este punto puede acabar en un suspenso en la asignatura.
Ahora bien, si el profesor deja a los estudiantes libertad en este punto, sinceramente la respuesta puede reducirse a una sola palabra: orientado a objetos; pero empecemos por el principio, es decir, por las definiciones:
La programación estructurada es una evolución del concepto de programación procedimental; es, por tanto, una metodología de escritura de programas cuya base es la división jerárquica del código en módulos que se comunican entre sí a través de interfaces estrictamente definidos. Los datos, los procedimientos y las funciones no están directamente relacionados entre sí, y las instrucciones se ejecutan de forma secuencial. La base de la programación estructurada son las instrucciones condicionales y los bucles, mientras que cualquier tipo de salto se considera una falta de tacto, pues es un resto de la programación lineal y, con razón, se considera algo que perjudica la legibilidad del código fuente y dificulta su análisis.
En cambio, la programación orientada a objetos es una metodología de escritura de programas informáticos que define los programas mediante objetos que agrupan los datos y el comportamiento del programa (definidos en forma de procedimientos y funciones, llamados en la programación orientada a objetos métodos). El programa se expresa como la suma de tales objetos, que se comunican entre sí para cumplir las tareas que tiene encomendadas. Esto permite escribir con eficacia grandes proyectos por equipos de programadores, ensamblándolos a partir de objetos que cooperan entre sí y que se ocupan de cada elemento del software.
Esto es todo en lo que respecta a las definiciones objetivas; ahora llega el turno de la opinión (seguramente nada objetiva): en mi opinión. Aunque la programación orientada a objetos impone al programador cierto rigor y restricciones que a menudo desaniman a los jóvenes aprendices del arte de programar, dedicar un poco de tiempo a familiarizarse con sus principios aporta beneficios indiscutibles.

escritura de programas para asignaturas

¿Cuáles? Podría enumerarlas durante mucho tiempo, pero mencionaré solo las que me parecen más importantes: en primer lugar, cualquier programa bien escrito con orientación a objetos puede reutilizarse en trabajos posteriores, trasladando las clases definidas en él a otra aplicación. En segundo lugar, es más fácil localizar un error y también es más fácil entender un programa que uno mismo escribió hace algún tiempo. En tercer lugar, es mucho más fácil modificar el código del programa; a diferencia de la programación estructurada, donde, para corregir o cambiar un fragmentito del software, a menudo habría que editar muchos fragmentos del código fuente, dedicando antes mucho tiempo a entender qué se quería decir al escribirlo de una forma y no de otra. (créanme que incluso los programas escritos por uno mismo parecen completamente ajenos tras unos meses, y más aún tras años, y a menudo también incomprensibles)
Muy importantes parecen las posibilidades que se derivan del enfoque orientado a objetos hacia los datos y de la escritura orientada a objetos de programas para equipos enteros de programadores: personas que en el mundo real a menudo ni siquiera se conocen y que, sin embargo, crean juntas enormes aplicaciones comunicándose únicamente mediante las descripciones de las interfaces de los métodos de cada clase, sin necesidad de indagar qué ocurre dentro. Otra ventaja de la programación orientada a objetos es que el código es legible y claro: basta echar un vistazo al archivo de definiciones y, en un momento, sabemos de qué se ocupa cada clase o método,
La situación es muy distinta en la programación estructurada: ante todo, es sumamente difícil obtener un código legible en aplicaciones grandes; en segundo lugar, el código escrito una vez no sirve para reutilizarlo, porque adaptarlo a otros usos suele implicar muchísimas correcciones en muchos lugares distintos. Por ello, un programa escrito de forma estructurada difícilmente volverá a servir: normalmente al programador le lleva menos tiempo escribir una clase nueva desde cero que enredarse sin fin en el código antiguo.
A pesar de estos hechos evidentes, en nuestras universidades se enseña, con mucha más frecuencia, programación estructurada, y de los estudiantes se espera precisamente programas para asignaturas escritos así. Por supuesto, esto no aplica a las carreras de informática, donde la programación orientada a objetos ya es un estándar, pero en las carreras no directamente relacionadas con la informática sigue siendo una rareza.
Para terminar este artículo, quisiera expresar la esperanza de que estas pocas palabras que he escrito los convenzan de aprender programación orientada a objetos. No me engaño: no he agotado el tema, solo he tocado algunas cuestiones y descrito apenas una pequeña parte de las ventajas de la programación orientada a objetos; hay muchísimas más, y se darán cuenta de ellas al trabajar con tareas concretas (sobre todo si les toca trabajar en grupos).

Otros materiales sobre la escritura de programas informáticos