Programação Orientada A Objetos
Programação Orientada A Objetos - Object Oriented Programming (OOP), se você está familiarizado com o mundo do desenvolvimento de software já deve ter ouvido falar. A programação orientada a objetos é um paradigma que visa o design de sistema em estruturas de entidades, objetos e relacionamentos entre essas entidades. De maneira concisa, programar no paradigma orientado a objetos é desenvolver um sistema com estrutura baseada em objetos da realidade, em que cada objeto contém seus atributos (dados) e comportamentos (métodos), objetos que se relacionam uns com os outros, modificando o estado do programa até produzirem o resultado esperado. Mas isso não é tudo! A Programação orientada a objetos traz muito mais conceitos e fundamentos para o desenvolvimento baseado neste paradigma, como: fundamentos de abstração, reúso, encapsulamento, conceitos estruturais como classe, atributos, métodos, objetos, os conceitos relacionais como herança, polimorfismo, associação, interface e conceitos de visibilidade como pacotes.
A Necessidade
Sabemos que se tratando de tecnologia nada vem ao acaso, e a orientação a objetos não veio a esmo. Antes da OOP, as linguagens de programação eram criadas a partir do paradigma estruturado, este era fundamentado em 3 estruturas: sequência, condição e repetição. Destacando-se e popularizando-se por propor uma forma de raciocínio intuitiva, legível e de boa compreensão de cada bloco de código, a programação estrutural sempre foi bem recebida por pessoas que estão iniciando na programação. Contudo, com a evolução da tecnologia e a demanda de sistemas de grande porte, seguros e robustos, programas escritos no paradigma estrutural começaram a ficar complexos e de difícil manutenção. Com essa nova demanda surgiu o carecimento de um novo paradigma, um que pudesse expressar melhor as necessidades do nosso dia a dia e aproveitar mais efetivamente o poder computacional que estava aparecendo, e que trazia com sigo, as possibilidades de sistemas mais complexos. Devido a isso, o paradigma orientado a objetos surgiu.
O Surgimento
Noruega 1962, no Centro Norueguês de Computação – NCC da Universidade de Oslo, dois pesquisadores Kristen Nygaard e Ole-Johan iniciaram um projeto que visava criar uma linguagem de simulação de eventos discretos – discrete event simulation, a linguagem foi batizada de SIMULA que mais tarde veio se chamar SIMULA I devido a uma modificação e, mais uma vez e finalmente SIMULA 67.
SIMULA 67
SIMULA 67 é considerada a primeira linguagem a realmente empregar o paradigma orientado a objetos de forma fundamentada. Veja no trecho a seguir de uma publicação em A history of discrete events simulation programming languages (NANCE, 1993), uma boa explicação dessa consideração:
"As contribuições técnicas de SIMULA são impressionantes, quase incríveis. Dahl e Nygaard, em sua tentativa de criar uma linguagem onde os objetos do mundo real seriam de forma precisa e naturalmente descritos, apresentou avanços conceituais que se tornariam realidade somente quase duas décadas mais tarde: tipo abstrato de dados, o conceito de classe, herança, o conceito de corotina (método), [...] a criação, exclusão e operações de manipulação em objetos são apenas um exemplo".
Entretanto, o problema da SIMULA 67 é que a computação ainda era fechada, assim como algumas outras linguagens coparticipantes que vieram logo após como, GPSS e SIMSCRIPT. Essas linguagens não podiam ser utilizadas em qualquer computador, como, por exemplo, SIMULA 67 só rodava em um UNIVAC 1107. Então o dilema era que ainda existia o problema da portabilidade. Mas por volta de 1970, com o objetivo de criar uma linguagem que pudesse ser usada nos então emergentes PCs – Personal Computers, um pesquisador da Xerox Parc chamado Alan Kay criou a Smalltalk-71, que evoluiu para Smalltalk-80. Essa, sim, é marcada por levar a orientação a objetos a um nível que até então não se projetava para esse paradigma, pelo fato de que além de trazer os conceitos básicos, Smalltalk-80 trazia o conceito de que tudo que ela manipulava eram objetos, tornando o processo de desenvolvimento mais amistoso e produtivo.
Comentários
Postar um comentário