Representación de un objeto en la programación. - página 2

 
Реter Konow:
No hay manera de evitarlo sin un concepto filosófico. ¿Simplemente combinar funciones y variables sin seguir un "plano" bien pensado del objeto? Se nos dan ciertas herramientas: clases, estructuras, modificadores de acceso... pero podría haber otras herramientas... por ejemplo, el estado, el muestreo, la cartografía... ¿Por qué no? Lo que quiero decir es que el formato OOP y el conjunto de herramientas pueden tener versiones...

Existe la "suficiencia óptima".

¿Por qué una persona tiene dos piernas y dos brazos? ¿Por qué un perro no tiene cinco patas? Por eso te surgen preguntas: ¿por qué te inventas Frankensteins? De forma regular. ¿Pica? Si no te los estuvieras inventando para intentar dejar tu huella, lo habrías hecho hace tiempo. Es decir, estás poniendo tus esfuerzos en la dirección equivocada.

 
transcendreamer:
En general, cuando se define el Objeto, hay que definir también el Sujeto, de lo contrario se trata de una descripción incompleta del mundo, además en los conceptos filosóficos más modernos existe el Trayecto con un estatus relacional independiente como vínculo intermedio/de unión entre el Objeto y el Sujeto.
Sí, la ontología se ocupa de la definición del objeto como tal. Obviamente, los creadores de la OLP se apoyaron en el modelo filosófico ontológico ampliamente aceptado. Pero ese modelo es subjetivo. Y sí, de un objeto, la programación pasa a un subobjeto (IA).
 
Реter Konow:
Aquí es donde no se puede evitar un concepto filosófico. ¿Simplemente combinar funciones y variables sin seguir un "plano" bien pensado del objeto? Se nos dan ciertas herramientas: clases, estructuras, modificadores de acceso... pero podría haber otras herramientas... por ejemplo, el estado, el muestreo, la cartografía... ¿Por qué no? Lo que quiero decir es que el formato OOP y el conjunto de herramientas pueden tener versiones...
Y en ciertos casos, una versión diferente del formato de descripción del objeto puede ser más eficaz.

Los diferentes lenguajes tienen diferentes características de POO.

 
Artyom Trishkin:

Existe la "suficiencia óptima".

¿Por qué un hombre tiene dos piernas y dos brazos? ¿Por qué un perro no tiene cinco patas? Por eso te surgen las preguntas: ¿por qué te inventas Frankensteins? De forma regular. ¿Pica? Si no te los estuvieras inventando para intentar dejar tu huella, lo habrías hecho hace tiempo. Es decir, estás poniendo tus esfuerzos en la dirección equivocada.

¿Hablas en tu nombre o en el de la administración?
 

Me gustó la siguiente definición de la Wikipedia:

Laprogramación orientada al género (POG) es unametodología de programación basada en la representación de un programa como un conjuntode objetos, cada uno de los cuales es una instancia de una determinadaclase, y las clases forman una jerarquía de herencia[1].

Esto es pura filosofía. Por lo tanto, los que piensan que no hay filosofía en la programación se equivocan. La programación de objetos está construida sobre una base filosófica y, en consecuencia, los programadores deben ser capaces de pensar de forma abstracta y filosófica. Yo, por ejemplo, soy capaz de hacerlo y tengo dudas filosóficas al respecto. Esto es lógico y legítimo. No hay "Frankenstein". Me guía la pregunta "¿y si la Tierra no es plana?".


Aquí está el artículo completo:

https://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование

Todo es filosofía.

 

De la wiki:

Historia[editar|editar código]


La POO surgió como resultado del desarrollo de la ideología de laprogramación procedimental, en la que los datos y los subprogramas (procedimientos, funciones) de su procesamiento no están formalmente vinculados. Para el desarrollo posterior de la programación orientada a objetos, las nociones de evento (la llamadaprogramación orientada a eventos) y de componente(programación de componentes, COP) suelen tener gran importancia.

La interacción de los objetos tiene lugar mediantemensajes. El resultado de un mayor desarrollo de la POO parece ser laprogramación basada en agentes, dondelos agentes son partes independientes del código a nivel de tiempo de ejecución. Los agentes interactúan cambiandoel entorno en el que residen.

Las construcciones del lenguaje que no están relacionadas estructuralmente de forma directa con los objetos, pero que los acompañan para su funcionamiento seguro(situaciones excepcionales, comprobaciones) y eficiente, se encapsulan a partir de ellos en aspectos(en laprogramación orientada a aspectos). Laprogramación orientada al sujeto amplía la noción de objeto al proporcionar una interacción más unificada e independiente de los objetos. Puede ser una etapa de transición entre la POO y la programación basada en agentes en la parte de su interacción independiente.

El primer lenguaje de programación que propuso los conceptos básicos que posteriormente formaron el paradigma fueSimula, pero el término "orientado a objetos" no se utilizó en el contexto del uso de este lenguaje. En el momento de su introducción, en1967, propuso ideas revolucionarias: objetos, clases, métodosvirtuales, etc., pero todo ello no fue percibido como algo grandioso por sus contemporáneos. De hecho, Simula era un "Algol con clases", que simplificaba la expresión enprogramación procedimental de muchos conceptos complejos. La noción de clase en Simula puede definirse completamente a través de una composición de construcciones Algol (es decir, una clase en Simula es algo complejo descrito por medio de primitivas).

El "nuevo ángulo" (distinto al procedimental) de la programación fue sugerido porAlan Kay yDan Ingalls enSmalltalk. Aquí, la noción de clase se convirtió en la idea subyacente para todas las demás construcciones del lenguaje (es decir, la clase en Smalltalk es una primitiva a través de la cual se describen construcciones más complejas). Fue el primerlenguaje de programación orientado a objetos ampliamente difundido.

En la actualidad, el número de lenguajes de programación aplicados(lista de lenguajes) que implementan el paradigma orientado a objetos es el mayor en relación con otros paradigmas. Los lenguajes más utilizados en la industria (C++, Delphi, C#, Java, etc.) incorporan el modelo de objetos de Simula. Ejemplos de lenguajes que se basan en el modelo Smalltalk son Objective-C, Python y Ruby.

 

El extracto anterior del artículo de Wikipedia describe cómo evolucionaron las ideas de la POO. Al principio, pensé que el concepto era algo que se le había ocurrido a alguien. Me equivoqué. Fue un proceso de evolución.

Quizá el concepto siga evolucionando. ¿Por qué no?

 

Otro extracto de la Wiki, que confirma la subjetividad del concepto:

La POO tiene una historia de más de cuarenta años, pero a pesar de ello, todavía no existe una definición clara y aceptada de la tecnología[14]. Los principios básicos de los primeros lenguajes y sistemas de objetos han sido sustancialmente modificados (o distorsionados) y añadidos en numerosas implementaciones desde entonces. Además, desde aproximadamentemediados de los años 80, el término "orientado a objetos" se pusode moda, y como resultado ocurrió con él lo mismo que con el término "estructurado" (que se puso de moda tras la difusión de la tecnología deprogramación estructurada) algo antes: se "adjuntó" artificialmente a cualquier nuevo desarrollo para asegurar su atractivo.Björn Straustrup escribió en 1988 que la justificación de la "orientación al objeto" de cualquier cosa, en la mayoría de los casos, se reduceal silogismo defectuoso: "X es bueno. La orientación a objetos es buena.Por lo tanto, X está orientado a objetos".

Así, un programa es un conjunto de objetos con estado y comportamiento. Los objetos interactúan a través de mensajes. Se construye naturalmente una jerarquía de objetos: el programa en su conjunto es un objeto, llama a sus objetos constituyentes para realizar sus funciones que, a su vez, realizan la función solicitada llamando a otros objetos del programa. Naturalmente, para evitaruna recursión interminable en las llamadas, en algún momento el objeto transforma el mensaje dirigido a él en mensajes a objetos estándar del sistema proporcionados por el lenguaje y el entorno de programación.

La estabilidad y la capacidad de control del sistema se deben a la clara división de la responsabilidad de los objetos (un determinado objeto es responsable de cada acción), a la definición inequívoca de las interfaces de interacción entre objetos y al completo aislamiento de la estructura interna del objeto del entorno externo (encapsulación).

La POO puede definirse de muchas otras maneras.

//-----------------------------------------------------------------------

Fin de la cita.

 
Реter Konow:

Me gustó la siguiente definición de la Wikipedia:

Laprogramación orientada al género (POG) es unametodología de programación basada en la representación de un programa como un conjuntode objetos, cada uno de los cuales es una instancia de una determinadaclase, y las clases forman una jerarquía de herencia [1].

Esto es pura filosofía. Por lo tanto, los que piensan que no hay filosofía en la programación se equivocan. La programación de objetos está construida sobre una base filosófica y, en consecuencia, los programadores deben ser capaces de pensar de forma abstracta y filosófica. Yo, por ejemplo, soy capaz de hacerlo y tengo dudas filosóficas al respecto. Esto es lógico y legítimo. No hay "Frankenstein". Me guía la pregunta "¿y si la Tierra no es plana?".


Aquí está el artículo completo:

https://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование

Todo es filosofía.

Esto no es filosofía en absoluto, son principios de control de un vehículo (automóvil), un conjunto de engranajes, pasadores, piñones forman estructuras más complicadas y así hasta lo principal en esta jerarquía - la junta entre una rueda y un asiento

para que los que piensan que conducir un coche es diferente a programar se quiten de en medio.


Para continuar con el malabarismo de los términos, sugiero familiarizarse con los términos taxonomía y/oclasificación desde la misma Wiki y además por los enlaces propuestos en los artículos de la Wiki

 

Puede que me equivoque en mis predicciones, pero si el concepto sigue evolucionando, habrá un nuevo modelo de Objeto, cuya construcción requerirá mucho menos esfuerzo y, por tanto, los sistemas crecerán más rápido. Esto llevará a la abolición del proceso de programación y a la desaparición de muchos lenguajes que se han vuelto rudimentarios. Este futuro es probable, porque tiene sentido.

He aquí algunas tesis que llevan a tales conclusiones:

1. Del objeto, la programación pasa al sujeto (IA).

2. Para escribir una IA es necesario acelerar considerablemente el proceso de programación y reducir la mano de obra.

3. Gracias a las nuevas tecnologías y a una nueva representación del objeto, la programación puede ir más allá del teclado y ser mucho más interactiva.


Si la evolución continúa, inevitablemente tendremos que experimentar una redistribución global, que incluye la desaparición de profesiones y especializaciones enteras. Y la aparición de otras nuevas.