Motivações para se estudar a História da Computação

 

[<] [>] [sumário]









Introdução

[topo]

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.


Necessidade de discernir fundamentos

[topo]

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 panorama: a impossibilidade de ter uma visão global sobre todo o conhecimento que a precedeu e, mais acentuadamente ainda, a história do desenvolvimento das várias especialidades. Não se têm 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, 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 armazenada as regras de um sistema formal? Que as pesquisas de Turing estão relacionadas com o trabalho de Gödel - considerado dentro da matemática um dos mais famosos resultados do século, o Teorema de Gödel? E 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.

 


Incentivo à educação para a qualidade do software

[topo]

A investigação histórica sob esse 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 a esse tema da qualidade. A expressão "crise do software" 58 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 muitas instituições. 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 nossa sociedade em relação ao computador. Torna-se fundamental portanto que se diminuam cada vez mais as incertezas presentes no processo de elaboração dos sistemas de computação.

A resposta a esses desafios já há alguns anos caminha para o estabelecimento de 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 destas propostas vão em direção ao uso de métodos formais §1 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 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"8. Busca-se por esta vertente a criação de uma metalinguagem lógico-matemá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 17, serve como ilustração dessa idéia.

 

Figura: 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 §2. 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 estas técnicas e seus fundamentos matemáticos 5.

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 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 na 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, dos fundamentos destas 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 pressupõe um determinado conceito.


Tornar claros e ligar os fatos

[topo]

Entre os objetivos da ciência histórica pode-se aceitar como axiomático o 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 que pode proporcionar a base para o desenvolvimento de padrões através dos quais julguemos a viabilidade e potencial para uma atividade proposta ou corrente44. Isto é, 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 tornam-se 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 - e a participação do elemento humano nisso - mas também porque nos ajuda a apreciar a qualidade de progresso que houve.


Acompanhar novas tendências

[topo]

É sintomático notar que pela primeira vez incluiu-se no curriculum para Ciência da Computação, desenvolvido pela ACM (Association for Computing Machinery) e IEEE (Institute of Electrical and Electronics Engineers, Inc.) Computer Society Joint Task Force, em 1991, módulos relativos à história em 4 áreas: Inteligência Artificial, Sistemas Operacionais, Linguagens de Programação e Temas Sociais, Éticos e Profissionais. Mais recentemente ainda, na 6a IFIP (International Federation for Information Processing), evento realizado dentro da Conferência Mundial dos Computadores na Educação, transcorrida em Birmingham, Inglaterra, de 20 a 24 de julho de 1995, estimulou-se não só "a preservação das peças de computadores, o registro de memórias dos pioneiros e a análise do impacto exterior das inovações nos computadores, mas também o desenvolvimento de módulos educacionais na História da Computação" 43.

Significativo também é a introdução nos cursos de Ciência da Computação da disciplina História da Computação, principalmente a partir da década de 1990, em algumas universidades. Também aumentaram o números de museus e instituições governamentais ou particulares que prestam esse serviço de preservação da história da tecnologia informática. Pode-se citar a Universidade de Stanford (curso CS104 do Centro de Educação e Ciência da Computação), EUA, o arquivo Nacional para a História da Computação da Universidade de Manchester, Inglaterra, o Instituto Charles Babbage, da Universidade de Minnesota dedicado a promover o estudo da História da Computação, o curso CS134 da Universidade de Waterloo (Canadá) e similar em Bordeaux, França, Universidade de Wales Swansea, Austrália, etc.

Além disso, muitos museus surgiram, como o de Boston, os de instituições militares americanas e organizações do porte do IEEE (Institute of Electrical Engineers and Electronics). Esta última promoveu em 1996 o lançamento de pelo menos quatro livros sobre o assunto História da Computação, tendo construído um "site" na Internet, narrando os eventos dessa história desde o século XVII. Na Internet proliferaram os museus de imagens e cronologias sobre assuntos específicos como Microcomputadores, Computação Paralela, Linguagens de Programação, etc.

 


Revalorizar o fator humano

[topo]

Finalmente há o grande tributo que se deve fazer a esses homens que, ao longo da história da ciência Matemática, Lógica, Física, e mais recentemente da Computação, não se deixaram levar pelo brilho atraente daquilo que chama a atenção e das demandas mais imediatas. Motivados pela pura busca do saber formaram o arcabouço, a infraestrutura que possibilitou a revolução da informática. Os bits e todas as partes de um computador (incluindo o software) são na verdade o resultado de um processo, de uma evolução tecnológica de vários séculos, partilhada por inúmeros personagens, cada um acrescentando sua pequena ou grande contribuição.

"Qualquer que seja, porém, o destino da informática, ela já tem o seu lugar na História, constituindo-se num dos fatores preponderantes que moldam o conturbado mundo no fim do século XX. Sem a compreensão do seu papel social, será impossível entender o processo histórico em marcha, nem a direção do futuro. Desse modo, a pesquisa da História da Computação tem um significado fundamental no presente"56.

 


Notas 

§1. 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 reusabilidade das definições abstratas.

§2. 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 programas49.

[topo]