História da Programação Orientada a Objetos

"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." - Alan Kay

"The purpose of the Smalltalk project is to provide computer support for the creative spirit of everyone." - Daniel Ingals, 1981.

Raízes do Conceito de Objetos

  • Platão, 375 a.C., teoria das formas: uma forma ideal de uma cama é a base para todas as camas do mundo (A República).

  • Aristóteles, 330 a.C., precursor da herança: "Se falamos dos animais, é claro que vamos falar as mesmas coisas sobre muitos deles". Então, se duas classes tem características em comum, Aristóteles sugere que coloquemos estas características em uma entidade que hoje chamamos de superclasse.

  • Carolus Linnaeus (ou Carl von Linné) em 1753 elaborou provavelmente a primeira grande hierarquia de classes (taxonomia de plantas) que se tornou um padrão internacional.

SIMULA

  • Linguagem SIMULA criada na Noruega por Ole-Johan Dahl and Kristen Nygaard.

  • Derivada do Algol.

  • SIMULA I (1962-65) e Simula 67 (1967) foram as primeiras linguagens OO.

  • Eram usadas para simulações do comportamento de partículas de gases.

  • Os conceitos de objetos, classes e herança apareceram lá embora não necessariamente com esses nomes.

  • Herança apareceu apenas em Simula 67 e se falava apenas em subclassing.

  • Simula passou a ser usada com frequência da década de 70, sendo inclusive a linguagem utilizada para desenvolver as primeiras versões de Smalltalk.

  • Veja uma interessante descrição do papel de Simula na origem de orietação a objetos nas palavras dos próprios criadores da linguagem.

Smalltalk

  • XEROX PARC, 1970 a 1980: um lugar único na história da Ciência da Computação.

  • Projeto Dynabook: um ambiente novo de computação para adultos e crianças com características altamente revolucionárias.

  • Deste projeto saíram

    • Interface Gráfica (com bitmaps)

    • Sistemas de Janelas

    • Mouse

    • Redes via Modem e via Ethernet

    • Placas de Som

    • etc., etc.

  • Alan Kay, pesquisador de Utah, então propõe a criação de vários aplicativos novos para tal computador: editor de textos, programas para desenho, para modelagem de objetos tridimensionais, etc.

  • Ele foi então convidado a entrar no projeto e criar uma nova linguagem de programação que fosse fácil de programar e que tivesse a sintaxe muito simples.

  • Programar nesta linguagem deveria ser tão fácil quanto bater um papo furado (small talk) em inglês.

  • Kay se inspirou em

    • LOGO: baseada em interface gráfica e destinada a crianças.

    • LISP: alto poder para manipulação de símbolos (as linguagens até então manipulavam apenas números), sintaxe super simples. Até hoje todo método Smalltalk devolve um valor, assim como uma função LISP.

    • No final de 1972 a primeira versão de Smalltalk estava pronta. Ainda não possuía herança.

    • Em 1974, Smalltalk passou a incorporar interfaces gráficas e bitmaps. A partir daí foi criado o primeiro sistema para gerenciamento de janelas.

    • 1976: introduziu-se o conceito de herança, máquina virtual e bytecodes. A máquina virtual desvinculava o programa Smalltalk do hardware.

    • Paradoxo: O Dynabook nunca chegou a se tornar um produto comercial mas revolucionou o mundo da computação, ditando grande parte do que usamos hoje.

    • O projeto foi concluído mas a XEROX continuou investindo no Smalltalk. Neste ponto, ela passou a divulgar a linguagem ao público e 3 livros foram escritos (ver bibliografia).

    • Os livros são hoje conhecidos pelas suas capas: Orange Book, referência básica da linguagem, Blue Book, manual de programação, e Green Book, documentação da implementação da linguagem e da máquina virtual.

    • O sistema foi amplamente divulgado, em fitas magnéticas, e era chamado de Smalltalk-80.

  • Mais tarde a IBM criou a sua versão, Smalltalk V, que foi a primeira a rodar em DOS. Se tornou popular no final da década de 80. Hoje em dia se chama VisualAge for Smalltalk.

  • Em 1987, a XEROX criou a empresa Parc Place para cuidar do Smalltalk. No final dos anos 90, a Parc Place foi comprada pela Cincom que hoje comercializa o Smalltalk que usamos nesta disciplina durante muitos anos.

  • Em 1996, surgiu o projeto Squeak cujo objetivo é desenvolver uma versão de software livre para Smalltalk no ambiente Linux.

  • O Squeak foi desenvolvido por um pequeno grupo de desenvolvedores, incluindo o Alan Kay, o pai da linguagem.

  • Posteriormente, o Squeak foi portado para outros SOs e foi o sistema usado nesta disciplina durante muitos anos.

Evolução das linguagens

Linguagens
  • No final dos anos 80, Bjarne Stroustrup estendeu a linguagem C com alguns conceitos de objetos e criou C++.

    Em termos de orientação a objetos, pode-se dizer que C++ está no extremo oposto de Smalltalk.

  • Objective-C, por outro lado, é uma linguagem bem mais dinâmica realmente OO, influenciada por Smalltalk. Sua aceitação é pequena durante sua 1a década de existência, mas no início da década de 2000, ela é adotada pela Apple para o seu ambiente gráfico Aqua e depois para o desenvolvimento de aplicativos para iPhone e passa a contar com grande popularidade.

  • Self é uma linguagem criada em meados dos anos 80 por David Ungar e Randall B. Smith na Sun. Sua maior virtude é a simplicidade (e tudo o que vem com ela: flexibilidade, agilidade, etc.). Veja página de leituras recomendadas.

  • Em 1995, a Sun lança o ambiente Java, que inclui a linguagem Java, altamente influenciada por Smalltalk mas com sintaxe parecida com C++.

  • Java apresenta um crescimento enorme tanto no meio acadêmico quanto industrial.

  • A Microsoft se sente ameaçada e tenta criar a sua própria versão de Java com algumas incompatibilidades em relação à versão padrão controlada pela Sun. A Sun reclama na justiça e Bill Gates declara Java linguagem non grata na Microsoft.

  • Microsoft lança sua versão de Java: C#

  • C# é mais complexa do que Java, voltando a incorporar alguns aspectos de C++ que Java tinha optado por não incluir. Com esses aspectos adicionais, perde em elegância e clareza mas ganha em desempenho.

  • Ruby foi lancada em 12/2005 e foi influenciada por Perl, Smalltalk, Eiffel e Lisp.

  • A motivação de seu criador, Yukihiro Matsumoto, era produzir uma linguagem que fosse mais poderosa que Perl e mais orientada a objetos do que Python.

  • Ruby passou a se tornar popular a partir de 2005, com o Ruby on Rails.

  • De 2015 a 2021:

    • Ruby perde força.
    • JavaScript supera a má fã e começa a se popularizar, primeiro em clientes Web, depois no servidor.
    • Python ganha carona na ascenção da Ciência de Dados e Aprendizado de Máquina e dispara em popularidade.
    • Uma série de novas linguagens de programação são criadas ou se tornam mais conhecidas, dentre elas, Go, Rust, Julia, Haskell, Swift, Groovy, Kotlin, TypeScript, Scala.

Bibliografia

  • Conhecendo o Smalltalk. Abdala e Wangenheim.

  • Smalltalk, Objects, and Design. Chamond Liu.

  • Página "How Object-Oriented Programming Started" de Ole-Johan Dahl e Kristen Nygaard.


Última atualização: terça-feira, 17 ago. 2021, 13:45