Tributo a Grace Hopper - A mãe do COBOL    

Uma senhora nova-iorquina, Rear Admiral (Contra-Almirante) Grace Brewster Murray Hopper, sem dúvida merece ser mais conhecida entre programadores principalmente os “coboleiros”.

 Normalmente chamada simplesmente de Grace Hopper, ela foi a grande mentora intelectual na criação da linguagem COBOL.

 Parece que nos preocupamos tanto com a memória das máquinas, que nos esquecemos de cuidar da   nossa e passá-la para as novas gerações.

Vamos lembrar um pouco da mulher águia, é ! Aquela que com seus óculos fundo de garrafa enxergava em 360 graus muitos anos na frente de seu tempo aquilo que os outros só viam quando ela mostrava.

 A vovó que todos nós certamente teríamos orgulho em ter, também é considerada a mãe dos conceitos de biblioteca de rotinas e compilador, do costume de usar os termos bug e debug para a tarefa de identificar e eliminar erros de software e até mesmo do processamento de dados comercial moderno.

                                    Bom, não tenhamos ciúmes disso. Digamos que os irmãos do COBOL são todos igualmente ilustres.

Nos Estados Unidos ela é conhecida como: “Grand Lady of  Software”, “Amazing Grace” e “Grandma Cobol”.

Mas foi a idealização do projeto que culminou na linguagem COBOL que realmente a tornou famosa.

Nascida em 9/12/1906, somente em 1959, já com 52 anos, o gênio de Hopper apareceu para o mundo. Mas ela já era brilhante, curiosa e audaciosa. Aos 7 anos, desmontou todos os relógios e despertadores da casa para ver como funcionavam, não soube montá-los novamente mas soube enfrentar a bronca dos pais com diplomacia.

Compilador

Quando a Tenente Hopper criou o primeiro compilador, até então só existiam montadores e interpretadores. Como fazem a maioria dos grandes técnicos e cientistas, os nomes que dava às linguagens que ela criava eram coisas nada comerciais como: A-0, A-1 e A-2, quando chegou em A-3, o departamento de vendas rebatizou o compilador para MATH-MATIC.

Suas primeiras criações eram despretensiosas, simples material de uso interno para facilitar o seu trabalho e de colegas. Oficial da marinha norte americana a partir da segunda guerra mundial, Hopper era disputada a tapas por empresas privadas, mas volta e meia acabava sendo convocada e voltava para a Marinha. Todos sentiam muito sua falta.

Enriquecida com tais experiências, Hopper em 1944 idealizou o conceito de biblioteca de rotinas, usado até hoje. Quando desenvolveu a linguagem A-0, a cultura da época era escrever tudo que o programa tinha que fazer em um só módulo com comandos em octal. Como o tempo de máquina valia muito mais que o tempo dos programadores, ninguém se importava com isso.

Mas Hopper insistiu na idéia e em 1953 apresentou com sua equipe, uma linguagem baseada em inglês. Escreveram um tradutor de palavras em inglês para comandos octais. Para demonstrar a seus chefes o poder do tradutor  B-0, Hopper previu comandos em Inglês, Francês e Alemão. O programa era muito rápido pois verificava apenas as primeiras 3 letras de cada palavra. O resto era simplesmente ignorado.

Abobalhados com os resultados, seus chefes na Remington Rand (depois chamada de Sperry Rand, da série UNIVAC ), perguntaram como ela tinha conseguido tal façanha e ela disse que tinha todos os comandos que a máquina aceitava catalogados na uma biblioteca de rotinas. Os programas eram construídos montando-se estes módulos como um estudante compilando uma pesquisa em função de uma biblioteca de livros. Por isso classificou o programa como um compilador, o departamento de vendas rebatizou o B-0 para FLOW-MATIC.

Bug e Debug

Outro caso curioso da vida de Hopper, foi em 1945 quando o computador que utilizava, o Harvard Mark I, parou de funcionar. Ela fez uma varredura de detetive, em meio aos circuitos de válvulas e relês. Encontrou uma mariposa eletrocutada bloqueando uma chave elétrica.

Usando uma pinça, ela extraiu a mariposa e a máquina voltou a funcionar normalmente. A partir daí, com seu tradicional bom humor, sempre que cobrada sobre o andamento de um projeto respondia: “Estamos desinsetizando (debugging) o computador” o jargão debug pegou. Até mesmo em outras línguas, é usado até hoje como referência a correção de erros em programas. E parece difícil que algum dia venha a sair de uso.

 

 

 

Por certo um técnico comum diria um palavrão e jogaria o bicho no lixo, deixando o caso para lá. Mas tratava-se de uma mulher e as mulheres, nós sabemos desde que comparamos os cadernos das meninas com os dos meninos, são mais caprichosas. Ela colou a mariposa com uma fita adesiva em seu meticuloso relatório que chamava de “diário de bordo”. Nele constava “O primeiro caso real de inseto (Bug) a ser encontrado”.  Seu relatório, virou literalmente peça de museu.

Linguagem COBOL

 As habilidades e a personalidade forte de Grace Hopper foram fundamentais para a criação da linguagem COBOL. Só uma pessoa com tais qualidades teria conseguido tanto. Não só com seu gênio técnico mas com grande capacidade de argumentação e a patente de capitão da Marinha.

Apenas com conhecimentos técnicos, não se consegue sensibilizar uma industria inteira a adotar um padrão.

Grace Hopper foi muito hábil para promover sua idéia, percebendo que não só ela criara compiladores. Ela foi a primeira. Muitos outros seguiram seu caminho criando linguagens cada qual a sua maneira, formando uma imensa torre de babel.

Ignorando a idade e esquecendo de se aposentar, ela usou sua experiência e sua influência na marinha e começou a chamar a atenção do departamento de defesa, o Pentágono, para a tal babel e para os imensos prejuízos que tal situação estava causando e o potencial de riscos para a governabilidade no futuro e da possibilidade do surgimendo de um grande monopólio, caso uma empresa conseguisse uma solução proprietária.

Simplesmente não havia portabilidade, legibilidade, confiabilidade e nem continuidade nas linguagens até então. Todas tinham origens semelhantes a A-0 que ela mesma havia criado. Linguagens muito especificas para um determinado equipamento, com comandos muito técnico-matemáticos, obscuras, e dominadas por muito poucas pessoas. Desapareciam quando seus criadores as abandonavam. Não se podia investir muito em nenhuma delas para adoção como padrão. A situação tendia a se perpetuar com linguagens cada vez mais efêmeras.

A concepção de Hopper de que havia a necessidade de se criar uma linguagem orientada para negócios comuns, deu origem ao acrônimo COBOL (COmmon Business Oriented Language).

Tudo foi feito, sem definir os comandos para minimizar melindres entre os técnicos das empresas convocadas a participar da criação de um denominador comum entre todos os fabricantes existentes na época. Grace Hopper teve uma grande participação,  contribuindo com a abertura dos comandos FLOW-MATIC.

  Os melindres foram minimizados mas não totalmente evitados. Em Maio de 1959 com os trabalhos do comitê CODASYL (COnference on DAta SYstems Languages) criado pelo Pentágono em pleno andamento, chegou uma encomenda em nome do líder Charles Phillips, um pesado caixote, contendo uma lápide de mármore com o nome COBOL escrito mas sem epitáfio. O primeiro a dizer que aquilo não daria certo, que o COBOL estava “morto”.

Em 1985, na festa do 25° aniversario da linguagem COBOL, Howard Bromberg da RCA confessou ser o autor da brincadeira que deu origem a fama de “morto” que dura até hoje entre seus adversários. Usam muitos epitáfios, todos infundados e facilmente derrubados. O apelido de “mato” que também foi dado ao COBOL, fez muito mais sentido pois ele continua a crescer e a se espalhar apesar das inúmeras tentativas de arrancá-lo.

A universalidade da linguagem COBOL ficou evidente, quando Hopper em uma visita que fez a um centro de computação no Japão. Ela e seus anfitriões não conseguiam se entender, até que ela lembrou de alguns comandos do COBOL. “MOVE”, disse ela apontando para si mesma, “GO TO Osaka Hotel”. Os Japoneses imediatamente entenderam e levaram-na para seu hotel.

Grace Hopper era a pessoa certa na época certa com as intenções certas.

Tal situação jamais se repetirá. Nenhuma empresa e nem mesmo o governo dos EUA voltará a ter o poder de influência em todas as plataformas de hardware que se compare ao que ela teve. 

 

 No dia  01/01/1992 com 85 anos, ela nos deixou,   mas seu legado é eterno. 

A;/ Ma..r

...

 

A Marinha tratou de seu funeral com honras militares.

Em 6/9/1997 novamente a Marinha a homenageou lançando o destróier USS Hopper (DDG 70)  e uma moeda com sua esfinge. Um merecido tratamento digno de uma rainha.

 

Grace Hopper nos deu uma grande lição. Chamou a atenção não apenas para um problema  de computação ou de uma época, mas para estarmos alertas à tendência da natureza humana ao bairrismo.

 De termos uma visão restrita à uma tarefa, sem considerarmos as conseqüências que afetarão a nós mesmos.

Enquanto isso, se realizava a convenção ANSI-ISO 97. A partir dai, a linguagem COBOL passou a suportar programação orientada a objetos, prosseguindo em sua constante evolução, como sempre, se adequando aos novos tempos em todos os tempos.

Foi graças a Grace Hopper que até hoje nada conseguiu superar o COBOL com suas inúmeras implementações e versões. Realizou o seu velho sonho da programação universal. 2/3 do segmento de aplicações comerciais e industriais continuam baseadas em COBOL e movimentam dezenas de bilhões de dólares no mundo todo, com mais de 3 milhões de programadores profissionais em plena atividade. O último epitáfio que dizia que o bug do ano 2000 mataria o COBOL já que seria a linguagem mais afetada em virtude da sua idade e difusão, também foi derrubado. Os programadores puderam corrigir tudo a tempo justamente graças a legibilidade do COBOL tão defendida por ela.    

 As máquinas de hoje, são incomparavelmente mais poderosas do que as máquinas com que Grace Hopper conviveu mas conhecer sua vida é uma antecipação de nosso próprio futuro, pois comandos e interfaces mudam mas é o fator humano que fundamenta tudo. 

  Carlos Roberto de Souza Nunes  23/03/1998