Programación orientada a objetos: ¿Por qué “Orientado”?

14

Estoy en la mayor parte del camino a través de mi grado de programación de juegos. Esta no es una licenciatura en ciencias de la computación, por lo que gran parte de la teoría se evita a favor de la creación de portafolios prácticos y lo que veo como aprendizaje JIT, que aparentemente es más importante en la industria de los juegos. El primer tema fue "Introducción a la programación orientada a objetos".

Esa frase no me molestó hasta que me enteré de los diferentes paradigmas de programación (recibo esta lista de enlace ):

  • Imperativo
  • funcional
  • de procedimiento
  • estructurado
  • impulsado por eventos
  • Orientado a objetos
  • declarativo
  • basado en autómatas

Entiendo que esta no es una lista exhaustiva y que no todos estos conceptos son iguales, y la mayoría de ellos ni siquiera son exclusivos, pero no entiendo por qué la mayoría de ellos solo tiene una palabra: imperativo; funcional; declarativo, pero cuando hablamos de programación con objetos, debemos aclarar que estamos orientados en torno a esos objetos. ¿No podemos simplemente usar objetos? ¿No podemos simplemente tener objetos? ¿Por qué deben orientarnos , como nuestra estrella guía?

Mirando aquí ( enlace ), en ninguna parte se usa el término "orientado" como su propio término . Sólo se explica "objeto".

También, puedo ver, por razones prácticas, por qué se usa el Impulsado por Evento, porque la Programación del Evento ya es algo que haces cuando estás ejecutando una conferencia, y la Programación Automática hace que parezca que estás configurando un robot línea de producción, por lo que ayuda tener palabras de aclaración adicionales allí.

¿Qué hace que la Programación de objetos, como frase, no sea suficiente para describir lo que hacemos cuando usamos objetos en nuestra programación?

Obviamente, desde mi tono no me gusta mucho la palabra "orientado". Me recuerda a mi tiempo como reportero de la corte, escuchando a un abogado tras otro el uso de la frase "en relación con" como una especie de garrapata verbal. No significaba nada; era solo un término que usaban para llenar el aire mientras intentaban pensar qué decir a continuación. Sin embargo, no estoy tratando de abogar por un cambio de lenguaje, solo pregunto por qué es así. Si alguien sabe por qué se llegó a conocer de esa manera por razones puramente históricas y vestigiales, entonces esa es la respuesta. Serán municiones si alguna vez decido perder mi tiempo abogando por un cambio de idioma.

Por otro lado, si en realidad hay una razón útil por la cual un lenguaje o pieza de código debe señalar hacia los objetos, con exclusión de todas las demás direcciones, en lugar de simplemente tenerlos en su cinturón de herramientas, como herramientas , realmente me interesaría conocerlo. Me gusta aprender cosas útiles.

    
pregunta Excrubulent 16.03.2013 - 00:41

3 respuestas

24

Creo que estás leyendo way demasiado en una construcción gramatical simple. Eche un vistazo a su lista de paradigmas, ordenados de manera diferente por una razón que veremos en breve:

  • Imperativo
  • funcional
  • de procedimiento
  • estructurado
  • declarativo
  • impulsado por eventos
  • basado en autómatas
  • Orientado a objetos

¿Qué tienen en común las palabras? Todos son adjetivos porque pretenden modificar la palabra "programación". Además, con la excepción de "imperativo", no todos son adjetivos "naturales", sino sustantivos "adjetificados": sustantivos que realmente describen el núcleo del paradigma: función, estructura, autómatas y objeto.

Y hay dos formas diferentes en que los sustantivos son adjetificados: a través de un sufijo como -al o -ed, o mediante la creación de una palabra compuesta usando un guión. Ahora, como Doc Brown ha señalado, los sufijos que podrían usarse para adjetificar "objeto" dan como resultado un significado diferente. Lo que deja la composición.

Y sostengo que es pura coincidencia o gusto que Alan Kay eligió usar "orientado" para su adjetivo compuesto "orientado a objetos". También podría haber sido "impulsado por objetos", o "basado en objetos", y usted podría leer demasiado en ellos también. ¿No suena "conducido" como una obsesión poco saludable?

    
respondido por el Michael Borgwardt 21.07.2013 - 01:35
18
  

pero cuando hablamos de programación con objetos, debemos aclarar que estamos orientados alrededor de esos objetos. ¿No podemos usar objetos? ¿No podemos tener objetos?

Francamente, es un remanente de la historia. La programación funcional es realmente una programación orientada a la función, la programación declarativa es realmente una programación orientada a la declaración ... después de todo, ¿no solo usamos funciones? ¿No podemos tener funciones?

"Orientado a objetos" sale mejor de la lengua y está históricamente arraigado.

La 'orientación' viene porque no estamos hablando de programación sino de diseño. Solo porque usamos objetos, o usamos funciones, o usamos eventos, no significa que nuestra metodología de diseño se realice modelando los tres. Al especificar la orientación de la metodología de diseño, ayuda a comunicar a los programadores cómo deben interpretar y extender ese diseño, cómo el enfoque de modelado da color a la implementación.

    
respondido por el Telastyn 16.03.2013 - 00:51
2

Llamarlo que ayuda a explicar que los objetos son una parte muy importante del paradigma.

La programación orientada a objetos tiene sus raíces en Simula , que era esencialmente ALGOL más algunas funciones nuevas de programación de objetos. Y de acuerdo con esa historia, incluso hoy en día es completamente posible en muchos idiomas (incluso los "idiomas OO puros") codificar algo que es esencialmente un programa de procedimiento con algunos objetos en él. Pero esto es considerado como un estilo malo por los desarrolladores más experimentados.

En realidad, hacer algo "a la manera orientada a objetos" es muy diferente a "la forma de procedimiento" El concepto más importante es el uso de la herencia y el polimorfismo. Cuando realmente entiendes e internalizas la forma en que funcionan las clases y los métodos virtuales, es una experiencia reveladora que cambia la forma en que escribes código en muchos casos, un verdadero cambio de paradigma. (Suponiendo, por supuesto, que comenzó a escribir primero el código de procedimiento. Muchos estudiantes en estos días van directamente a Java o C # como primer idioma, y a la OMI se les pasa por alto la comprensión de los beneficios de la OO al hacerlo). / p>

Lo llamamos programación orientada a objetos porque un programa escrito en estilo OO no solo contiene objetos; La estructura de todo el programa se basa en ellos y en la forma en que funcionan.

    
respondido por el Mason Wheeler 16.03.2013 - 00:51

Lea otras preguntas en las etiquetas