Uma vez apontada a importância e necessidade do estudo da história em geral e,
mais especificamente, da história da ciência e da tecnologia, fica fácil perceber que o estudo da
História da Computação é um interessante relevo dentro da vasta paisagem do conhecimento
científico. Basta lembrar que o impacto dessa tecnologia na nossa sociedade é imenso e nossa
dependência dela cada vez maior.
Seguem abaixo outros fatores motivadores para esse estudo.
3.1 Necessidade de discernir fundamentos
Comparada com outras áreas, a Ciência da Computação é muito recente. Mas,
nestes poucos anos (pode-se apontar a Segunda Guerra Mundial como um marco inicial,
quando efetivamente se construíram os primeiros computadores digitais) o avanço da
Computação foi exponencial, abrindo-se em um grande leque de tecnologias, conceitos,
idéias, transformando-se em uma figura quase irreconhecível. Atualmente falar de estado da
arte na Computação tornou-se sem sentido: sob que ótica, perspectiva, campo ou área?
Apesar da sua recente irrupção na história contemporânea, a partir dos anos 40 do século XX,
ela já se tornou complexa, ampla, geradora de novos enfoques, tornando-se um verdadeiro
desafio a quem queira entendê-la e traçar sua evolução.
Ao mesmo tempo, cada nova geração de informatas depara-se com um duplo
problema: a impossibilidade de ter uma visão global sobre todo o conhecimento precedente e,
mais acentuadamente ainda, a história do desenvolvimento das várias especialidades. Não
estão individualizados os eventos, por vezes complexos, que antecederam o saber atual e
também não se possui um quadro que os reúna, para se ter uma idéia geral, coerente e
significativa. A evolução tecnológica se nos apresenta abrupta, através de saltos descontínuos,
e todo o trabalho que antecede cada etapa aparece coberto por uma camada impenetrável de
obsolescência, algo para a paleontologia ou para os museus, como se nada pudesse ser
aprendido do passado.
O resultado é um empobrecimento do panorama atual da realidade da informática.
Não se estabelecem conexões entre os vários campos da Ciência da Computação, caindo-se
facilmente no utilitarismo. As camadas mais profundas dos conceitos não são atingidas, o
conhecimento torna-se bidimensional, curto, sem profundidade.
Junto a isso, cedendo talvez a um imediatismo ou deixando-se levar por uma
mentalidade excessivamente pragmática de busca de resultados, há uma forte tentação de se
estabelecerem ementas para o estudo da Ciência da Computação preocupando-se mais com
determinados produtos − linguagens, bancos de dados, sistemas, aplicativos, etc. − e pouco se
insiste na fundamentação teórica.
Os matemáticos aprendem aritmética e teoria dos números, pré-requisitos sem os
quais não se evolui no seu campo do saber; os engenheiros, cálculo diferencial, física; os
físicos trabalham arduamente na matemática, e assim por diante. Quais os fundamentos
correspondentes na Computação? Conhece-se a Álgebra Lógica de George Boole, um
matemático que buscando relacionar o processo humano de raciocínio e a Lógica Matemática, 24
desenvolveu uma ferramenta para os futuros projetistas de computadores? Sabe-se que a
revolução da Computação começou efetivamente quando um jovem de 24 anos, chamado
Alan Mathison Turing, teve a idéia de um dispositivo teórico para buscar a resposta a um
desafio do famoso matemático David Hilbert – um dos primeiros a falar sobre
computabilidade –, e que em um ‘journal’ de matemática comentou aos seus colegas que era
possível computar na teoria dos números, por meio de uma máquina que teria armazenadas
as regras de um sistema formal? Que as pesquisas de Turing estão relacionadas com o
trabalho de Gödel – cujo Teorema que leva o seu nome é considerado um dos mais famosos
resultados do século XX, dentro da matemática? Pode-se citar ainda a Tese de Turing-Church
que possibilitou aos cientistas passarem de uma idéia vaga e intuitiva de procedimento efetivo para
uma noção matemática bem definida e precisa do que seja um algoritmo. E antes de todos
esses, o esforço de dezenas de pensadores de diferentes culturas, para encontrar melhores
formas de usar símbolos, que viabilizou o desenvolvimento da Ciência Matemática e Lógica, e
que acabaram fundamentando toda a Computação.
3.2 Incentivo à educação para a qualidade do software
A investigação histórica sob o prisma citado − das idéias e conceitos fundamentais
que formaram a base do desenvolvimento da Computação − poderá contribuir para uma
questão que assume importância decisiva e crucial: a qualidade do software.
É preciso aqui tecer um comentário relacionado ao tema da qualidade. A expressão
“crise do software” [Nau69] apareceu no final da década de sessenta na indústria tecnológica
da informação. Referia-se aos altos custos na manutenção de sistemas computacionais, aos
custos relativos a novos projetos que falhavam ou que consumiam mais recursos que os
previstos, etc., realidades presentes no dia a dia de muitos centros de processamento de
dados. Ao lado disso, havia, e ainda há, uma disseminação anárquica da cultura informática,
impregnando cada dia mais a vida social e trazendo, como conseqüência, uma dependência
cada vez maior da sociedade em relação ao computador. Torna-se fundamental, portanto,
diminuir as incertezas presentes no processo de elaboração dos sistemas de computação.
A resposta a esses desafios já há alguns anos vem sendo formulada no sentido de se
estabelecer uma execução disciplinada das várias fases do desenvolvimento de um sistema
computacional. A Engenharia de Software surgiu tentando melhorar esta situação, propondo
abordagens padronizadas para esse desenvolvimento. Algumas dessas propostas vão em
direção ao uso de métodos formais* nos processos de elaboração do sistema, basicamente
através da produção de uma especificação formal em função das manifestações do problema
do mundo real que estiver sendo tratado e através da transformação dessa especificação
formal em um conjunto de programas executáveis.
Há também pesquisas dentro da Computação que caminham em direção ao
desenvolvimento de métodos numéricos, em direção à lógica algébrica. George Boole, em sua
obra que deu início a uma nova arrancada no desenvolvimento da Lógica Matemática e da
* Um método se diz formal quando o conjunto dos procedimentos e técnicas utilizadas são formais, isto é, têm um sentido
matemático preciso, sobre o qual se pode raciocinar logicamente, obtendo-se completeza, consistência, precisão, corretude,
concisão, legibilidade e reutilização das definições abstratas. 25
Computação, como se verá, já dizia: “A lógica simbólica ou lógica matemática nasce com a
vocação de ferramenta para inferência mecanizada através de uma linguagem
“simbólica”[Boo84]. Busca-se por essa vertente a criação de uma metalinguagem lógicomatemática
para o desenvolvimento de sistemas, de tal maneira que se possa constituir no
instrumento que transfere a precisão da matemática aos sistemas. A figura abaixo, conforme
[Coe95], serve como ilustração dessa idéia.
Figura 1: O desenvolvimento de sistemas através de
especificações formais
Técnicas provenientes da área da lógica matemática vêm sendo aplicadas a diversos
aspectos do processo de programação de computadores*. Não é sem dificuldades que
evoluem as investigações sobre o papel do raciocínio formal matemático no desenvolvimento
do software. Mas é preciso ressaltar a sua importância pois através da especificação formal e
verificação obtém-se uma excelente guia para o desenvolvimento de programas corretos e
passíveis de manutenção. Talvez não se possa pedir que todo programa seja formalmente
especificado e verificado, mas é de se desejar que todo programador que almeje
profissionalismo esteja ao menos familiarizado com essas técnicas e seus fundamentos
matemáticos [BBF82].
Concluindo-se o comentário sobre os problemas relativos à qualidade do software,
pode-se dizer que a solução para o problema do desenvolvimento de software passa por um
* Entre os aspectos estudados encontram-se: (i) verificação (prova de corretude): a prova de que um dado programa produz os
resultados esperados; (ii) terminação: a prova de que um dado programa terminará eventualmente a sua execução; (iii)
derivação (desenvolvimento): construção de um programa que satisfaz a um conjunto de especificações dadas; (iv)
transformação: modificação sistemática de um programa dado para obter um programa equivalente, como estratégia para a
derivação de novos programas por analogia a soluções conhecidas ou como método de otimização da eficiência de
programas [Luc82].
Mundo
Real Metalinguagem Sistemas
Ciência da
Computação
Matemática
Álgebra Filosofia Lógica26
treinamento formal mais intenso na formação dos futuros cientistas da computação. Desde os
primeiros anos da universidade é necessário que se estudem os princípios matemáticos, e em
alguns casos até físicos (como se poderá falar em Computação Gráfica se não se sabe quais
são as propriedades de um sistema de cores), que formam o substrato da Computação: o que
é computável (metamatemática, computabilidade), a complexidade que exige a execução de
um cálculo (análise de algoritmos, teoria da complexidade), fundamentos de algumas
abstrações (teoria dos autômatos, teoria das linguagens formais, teoria de rede, semântica
denotacional, algébrica, etc.), fundamentos dos raciocínios que se fazem em programação
(sistemas de provas, lógica de Hoare), etc. Ou seja, seria interessante notar que na Ciência da
Computação há um forte componente teórico. É um corpo de conhecimentos, sistematizado,
fundamentado em idéias e modelos básicos que formam a base das técnicas de engenharia e
eletrônica usadas na construção de computadores, tanto no referente ao hardware como ao
software. Como não falar de indução matemática quando se deseja seriamente explicar a
programação de computadores? Ou falar de uma linguagem de programação sem introduzir a
teoria dos autômatos? Com o desenvolvimento de conceitos matemáticos adequados será
possível estabelecer um conjunto de procedimentos que assegure aos sistemas a serem
desenvolvidos uma manutenção gerenciável, previsível e natural, como ocorre na engenharia.
O estudo da História da Computação, não já sob o enfoque de datas e nomes −
importantes também e necessários, para não se cair na pura especulação −, mas sob o aspecto
das idéias, de seus fundamentos e suas conseqüências, pode ser uma sólida base, um ponto de
partida, para sensibilizar e entusiasmar o aluno sobre a importância dos fundamentos teóricos,
para ajudá-lo a ver o que um determinado conceito tem como pressupostos.
3.3 Tornar claros e ligar os fatos
Entre os objetivos da ciência histórica pode-se aceitar como axiomático o de
procurar dar um significado aos acontecimentos. É a busca de se dar sentido à história. Este
trabalho, feito dentro de uma perspectiva teleológica da história, procurará estabelecer uma
conexão causal entre eventos, para se começar a entender o sentido do passado, dispondo-o
numa espécie de sistema organizado, para torná-lo acessível à compreensão.
Sob outro enfoque, pode-se ver a História da Ciência da Computação como um
“olhar para trás com o fim de descobrir paralelismos e analogias com a tecnologia moderna,
com o fim de proporcionar uma base para o desenvolvimento de padrões através dos quais
julguemos a viabilidade e potencial para uma atividade futura ou atual” [Lee96]. Quer dizer,
analisar o passado e reconhecer tendências que nos permitam prever algum dado futuro.
Dizia John Backus, criador do FORTRAN e da Programação Funcional: “Na ciência e em
todo trabalho de criação nós falhamos repetidas vezes. Normalmente para cada idéia bem
sucedida há dúzias de outras que não funcionaram” (1994, discurso ao receber o prêmio
Charles Stark Draper). A história cataloga e registra tais falhas, que então se tornam uma
fonte especial de aprendizado, ensinando tanto quanto as atividades bem sucedidas. Mais
ainda, dão-nos o caminho, por vezes tortuoso, por onde transcorreram as idéias, as
motivações, as inovações. Ou seja, é interessante e instrutivo o estudo da história de qualquer
assunto, não somente pela ajuda que nos dá para a compreensão de como as idéias nasceram 27
− e a participação do elemento humano nisso − mas também porque nos ajuda a apreciar a
qualidade de progresso que houve.
Nenhum comentário:
Postar um comentário
Os comentários são livres, desde que não usem palavrões e ofensas diretas.