Se eu pudesse dar um chute, diria que o desejo da
reutilização de código foi o
principal impulsionador para a criação da Programação Orientada a Objetos. A capacidade
de otimizar a produtividade do programador depende diretamente de como o software
disponibiliza a reutilização do código gerado.
"A POO é um conceito desenvolvido para facilitar o uso de códigos de desenvolvimento em interfaces gráficas!" (Curto e grosso né?). Sendo a Borland uma das primeiras empresas a entrarem
neste novo conceito, possui suas principais linguagens de programação (tais como Object
Pascal e C++) voltadas para esse novo tipo de programação.
A POO atraiu muitos adeptos, principalmente pelo pouco uso de códigos que o projeto
(diferente de sistema) carrega no programa fonte, ao contrário das linguagens mais
antigas como o Clipper'87, muito utilizado no final da década de 80 e início da
década de 90. O resultado desta "limpeza" no código resulta que a manutenção do
projeto torna-se muito mais simples.
E sabe o que eu acabei descobrindo? A Orientação a Objetos já tem 20 anos, apesar de ter surgido fortemente apenas nos últimos 7 anos.
Surgiu mesmo na área acadêmica.
- 1967 - Simula (Noruega);
- 1980 - Small Talk (Xerox) com objetivos comerciais e acadêmicos. Sendo a autora Adele Goldberg;
- 1980's Objective C(Cox), C++ (Stroustrup), Eifell (Meyer).
Benefícios
Certo, mas o único objetivo é deixar o código mais enxuto? Até parece... A
exatidão
também é uma das características. No desenvolvimento POO, devido ao fato deste ser
feito de maneira quase que interativa com o usuário, os riscos do programa não atender
perfeitamente as exigências às quais foi destinado é significativamente diminuído. A
pouca quantidade de código programável também reduz os problemas inerentes às
mudanças das especificações durante o desenvolvimento do projeto.
Além da
potencialidade, lembrando que definimos por potencialidade a forma
como o programa reage aos erros imprevistos (como uma falha na impressora, ou a um
disco cheio), quanto maior esta for, maior será a capacidade do programa em causar o
menor estrago possível aos dados e evitar uma saída drástica do sistema.