Você está fazendo uma ótima pergunta que aborda a história das linguagens de programação e a evolução da programação orientada a objetos (OOP). Aqui está um colapso:
Gerações de linguagens de programação: *
1ª geração (linguagem da máquina): Estes são os idiomas mais primitivos, interagindo diretamente com o hardware do computador. Eles não são orientados a objetos.
*
2ª geração (linguagem de montagem): Esses idiomas usam mnemônicos para representar as instruções da máquina, tornando-as um pouco mais legíveis por humanos. Eles também não são orientados a objetos.
*
3ª geração (idiomas de alto nível): É aqui que começamos a ver as fundações do OOP. Idiomas como Fortran, Cobol e Algol eram processuais, com foco em instruções e fluxo de dados. No entanto, alguns conceitos como estruturas de dados (por exemplo, matrizes, registros) lançaram as bases para objetos.
*
4ª geração (idiomas de alto nível): Esta geração introduziu conceitos mais abstratos, geralmente focando domínios específicos, como gerenciamento de banco de dados (SQL) ou geração de relatórios. Embora possam oferecer alguns recursos semelhantes a objetos, eles normalmente não são considerados totalmente orientados a objetos.
Programação orientada a objetos (OOP): OOP emergiu como um paradigma nas décadas de 1970 e 80. Ele se concentra em:
*
Objetos: Dados e métodos (funções) que operam nesses dados são agrupados.
*
Classes: Blueprints para criar objetos.
*
Encapsulamento: Escondendo detalhes internos e expondo apenas interfaces necessárias.
*
herança: Criando novas classes com base nas existentes, promovendo a reutilização do código.
*
polimorfismo: A capacidade dos objetos de assumir formas diferentes, permitindo flexibilidade.
A resposta: Tecnicamente, não, as gerações 1-4 não são consideradas idiomas orientados a objetos . Eles antecedem o desenvolvimento do OOP como um importante paradigma de programação. No entanto, alguns dos recursos nas linguagens de 3ª geração (como a programação estruturada) lançaram as bases para os conceitos de OOP.
Nota importante: Embora os idiomas tradicionais de terceira e 4ª geração não sejam inerentemente OOP, alguns deles foram estendidos para suportar recursos orientados a objetos. Por exemplo, C ++ (construído sobre C) e Java (inspirado em C ++) são poderosos idiomas orientados a objetos.
Em resumo, embora as primeiras gerações de linguagens de programação não tivessem o conjunto completo de recursos que associamos à OOP, eles contribuíram para a evolução dos conceitos de programação que acabaram levando ao surgimento de programação orientada a objetos.