Representação de um objeto na programação. - página 2

 
Реter Konow:
Não há como contornar isso sem um conceito filosófico. Simplesmente para combinar funções e variáveis sem seguir um "plano" bem pensado do objeto? Nos são dadas certas ferramentas: classes, estruturas, modificadores de acesso... mas poderia haver outras ferramentas... por exemplo, estado, amostragem, mapeamento... por que não? Meu ponto é que o formato OOP e o kit de ferramentas podem ter versões...

Existe uma coisa como "suficiência ótima".

Por que uma pessoa tem duas pernas e dois braços? Por que um cão não tem cinco patas? É por isso que surgem perguntas para você - por que você está inventando Frankensteins? Regularmente. Faz comichão? Se você não os estivesse inventando numa tentativa de deixar sua marca, você já teria feito isso há muito tempo. Você está colocando seus esforços na direção errada.

 
transcendreamer:
De modo geral, ao definir o Objeto, deve-se definir também o Sujeito, caso contrário esta é uma descrição incompleta do mundo, além de que nos conceitos filosóficos mais modernos existe a Trajetória com um status relacional independente como um elo intermediário/ligação entre o Objeto e o Sujeito.
Sim, a ontologia se preocupa com a definição do Objeto como tal. Obviamente, os criadores da OLP se apoiaram no modelo filosófico ontológico amplamente aceito. Mas esse modelo é subjetivo. E sim, a partir de um objeto, a programação vai para um subobjeto (AI).
 
Реter Konow:
É aqui que um conceito filosófico não pode ser evitado. Simplesmente para combinar funções e variáveis sem seguir um "plano" bem pensado do objeto? Nos são dadas certas ferramentas: classes, estruturas, modificadores de acesso... mas poderia haver outras ferramentas... por exemplo, estado, amostragem, mapeamento... por que não? Meu ponto é que o formato OOP e o kit de ferramentas podem ter versões...
E em certos casos, uma versão diferente do formato de descrição do objeto pode ser mais eficaz.

Idiomas diferentes têm características OOP diferentes.

 
Artyom Trishkin:

Existe uma coisa como "suficiência ótima".

Por que um homem tem duas pernas e dois braços? Por que um cão não tem cinco patas? É por isso que as perguntas surgem para você - por que você está inventando Frankensteins? Regularmente. Faz comichão? Se você não os estivesse inventando numa tentativa de deixar sua marca, você já teria feito isso há muito tempo. Você está colocando seus esforços na direção errada.

Você está falando por si mesmo ou pela administração?
 

Eu gostei da seguinte definição da Wikipedia:

Aprogramação genérica (OOP) é umametodologia de programação baseada na representação de um programa como um conjuntode objetos, cada um dos quais é uma instância de uma determinadaclasse, e as classes formam uma hierarquia de herança[1].

Isto é pura filosofia. Portanto, aqueles que pensam que não há filosofia na programação estão errados. A programação de objetos é construída sobre a base filosófica e, conseqüentemente, os programadores devem ser capazes de pensar de forma abstrata e filosófica. Eu, por exemplo, sou capaz de fazer isso e tenho perguntas filosóficas a respeito do conceito. Isto é lógico e legítimo. Sem "Frankenstein". Eu sou guiado pela pergunta "e se a Terra não for plana"?


Aqui está o artigo completo:

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

É tudo filosofia.

 

Do wiki:

História[editar|editar código]


O OOP surgiu como resultado do desenvolvimento da ideologia daprogramação processual, onde os dados e subprogramas (procedimentos, funções) de seu processamento não estão formalmente ligados. Para um maior desenvolvimento da programação orientada a objetos, as noções de evento (a chamadaprogramação orientada a eventos) e componente(programação de componentes, COP) são freqüentemente de grande importância.

A interação dos objetos se dá por meio demensagens. O resultado de um maior desenvolvimento do OOP parece ser umaprogramação baseada em agentes, ondeos agentes são partes independentes do código a nível de tempo de execução. Os agentes interagem mudandoo ambiente em que residem.

Construções de linguagem que não estão estruturalmente relacionadas diretamente aos objetos, mas os acompanham para sua segurança(situações excepcionais, verificações) e operação eficiente são encapsuladas a partir deles em aspectos(emuma programação orientada a aspectos). Aprogramação orientada ao tema amplia a noção de objeto ao proporcionar uma interação mais unificada e independente dos objetos. Pode ser uma fase de transição entre o OOP e a programação baseada em agentes, na parte de sua interação independente.

A primeira linguagem de programação a propor os conceitos básicos que mais tarde formaram o paradigma foiSimula, mas o termo "orientado ao objeto" não foi usado no contexto do uso desta linguagem. Na época de sua introdução, em1967, propôs idéias revolucionárias: objetos, classes, métodosvirtuais, etc., mas tudo isso não foi percebido como algo grandioso por seus contemporâneos. Na verdade, Simula era um "Algol com aulas", simplificando a expressão naprogramação processual de muitos conceitos complexos. O conceito de classe em Simula pode ser totalmente definido através de uma composição de construções Algol (ou seja, uma classe em Simula é algo complexo descrito por meio de primitivas).

O "novo ângulo" (além do processual) de programação foi sugerido porAlan Kay eDan Ingalls emSmalltalk. Aqui, a noção de classe tornou-se a idéia subjacente para todas as outras construções lingüísticas (ou seja, classe em Smalltalk é uma primitiva através da qual construções mais complexas são descritas). Foi a primeiralinguagem de programação orientada a objetos difundida.

Atualmente, o número de linguagens de programação aplicadas(lista de linguagens) que implementam o paradigma orientado ao objeto é o maior em relação a outros paradigmas. As linguagens mais utilizadas na indústria (C++, Delphi, C#, Java, etc.) incorporam o modelo de objeto Simula. Exemplos de linguagens que dependem do modelo Smalltalk são Objective-C, Python, Ruby.

 

O trecho acima do artigo da Wikipedia descreve como as idéias do OOP evoluíram. No início, eu pensava que o conceito era apenas algo que alguém sentou e inventou. Eu estava errado. Foi um processo de evolução.

Talvez o conceito continue a evoluir. Por que não?

 

Outro trecho do Wiki, que confirma a subjetividade do conceito:

OOP tem uma história de mais de quarenta anos, mas apesar disso, ainda não há uma definição clara e aceita da tecnologia[14]. Os princípios básicos das primeiras linguagens e sistemas de objetos foram substancialmente modificados (ou distorcidos) e acrescentados em numerosas implementações desde então. Além disso, desdemeados dos anos 80, o termo "orientado a objetos" tornou-semoda e, como resultado, aconteceu com ele a mesma coisa que com o termo "estruturado" (que se tornou moda após a difusão da tecnologia deprogramação estruturada) um pouco mais cedo- ele se tornou artificialmente "apegado" a quaisquer novos desenvolvimentos para garantir sua atratividade.Björn Straustrup escreveu em 1988 que a justificativa para "orientação a objetos" de qualquer coisa, na maioria dos casos, se resume aosilogismo defeituoso: "X é bom".Por isso, X é orientado ao objeto".

Assim, um programa é um conjunto de objetos com estado e comportamento. Os objetos interagem através de mensagens. Uma hierarquia de objetos é construída naturalmente: o programa como um todo é um objeto, ele chama seus objetos constituintes para executar suas funções que, por sua vez, executam a função solicitada chamando outros objetos do programa. Naturalmente, para evitar arepetição interminável de chamadas, em algum momento o objeto transforma a mensagem a ele endereçada em mensagens para objetos padrão do sistema fornecidos pela linguagem e pelo ambiente de programação.

A estabilidade e controlabilidade do sistema é fornecida devido à clara divisão da responsabilidade do objeto (um determinado objeto é responsável por cada ação), definição inequívoca das interfaces de interação entre objetos e completo isolamento da estrutura interna do objeto do ambiente externo (encapsulamento).

O OOP pode ser definido de muitas outras maneiras.

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

Fim da citação.

 
Реter Konow:

Eu gostei da seguinte definição da Wikipedia:

Aprogramação orientada a genéricos (OOP) é umametodologia de programação baseada na representação de um programa como um conjuntode objetos, cada um dos quais é uma instância de uma determinadaclasse, e as classes formam uma hierarquia de herança [1].

Isto é pura filosofia. Portanto, aqueles que pensam que não há filosofia na programação estão errados. A programação de objetos é construída sobre a base filosófica e, conseqüentemente, os programadores devem ser capazes de pensar de forma abstrata e filosófica. Eu, por exemplo, sou capaz de fazer isso e tenho perguntas filosóficas a respeito do conceito. Isto é lógico e legítimo. Sem "Frankenstein". Eu sou guiado pela pergunta "e se a Terra não for plana"?


Aqui está o artigo completo:

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

É tudo filosofia.

Isto não é filosofia nenhuma, são princípios de controle de um veículo (automóvel), um conjunto de engrenagens, pinos, pinhões formam estruturas mais complicadas e assim por diante até o principal nesta hierarquia - a junta entre uma roda e um assento

Assim, aqueles que pensam que dirigir um carro é diferente da programação, estão fora do caminho.


Para continuar o malabarismo dos termos, sugiro ler os termos taxonomia e/ouclassificação no mesmo Wiki e além dos links sugeridos nos artigos do Wiki

 

Posso estar errado em minhas previsões, mas se o conceito continuar a evoluir, haverá um novo modelo de Objeto, que exigirá muito menos esforço para construir, e assim os sistemas crescerão mais rapidamente. Isto levará à abolição do processo de programação e ao desaparecimento de muitas linguagens que se tornaram rudimentares. Este futuro é provável, porque faz sentido.

Aqui estão algumas teses que levam a tais conclusões:

1. do Objeto, a programação vai para o Assunto (AI).

2. Para escrever uma IA é necessário acelerar consideravelmente o processo de programação e reduzir a entrada de mão-de-obra.

Graças às novas tecnologias e uma nova representação do Objeto, a programação pode ir além do teclado e tornar-se muito mais interativa.


Se a evolução continuar, teremos inevitavelmente que experimentar uma redistribuição global, o que inclui o desaparecimento de profissões e especializações inteiras. E o surgimento de novos.