Dinossauros 1 - Como virei um programador (com FORTRAN!!!) em 1980?
- #Informática Básica
- #Lógica de Programação
Vou compartilhar aqui a minha experiência pessoal e início da minha carreira de programador, para servir de comparação com o ambiente que a gente encontra hoje como dev e, assim, apresentar o percurso trilhado pelos dinossauros da programação, como eu!
A programação de hoje em dia a gente sabe como é, não é? A geração atual de devs está muito bem servida em relação a linguagens de programação, ferramentas de desenvolvimento, fontes de conteúdo, diversidade de tecnologias e interoperabilidade, equipamentos avançados, compartilhamento de informações, muitas vagas no mercado de trabalho e muita (mas muita, mesmo!) perspectiva de crescimento da área a curto, médio e longo prazos também!!!
Mas nem sempre foi assim!!
Eu nasci em 1961 (faço 60 anos em dezembro deste ano!!) e sempre quis fazer Engenharia Elétrica, pelo meu interesse por tecnologia e fascínio por ficção científica. Eu precisava saber como aquelas coisas funcionavam!!!!!!!!!
Eu sou o que os jovens programadores de hoje chamam de dinossauro e aceito o apelido com muita honra! Afinal, eu testemunhei o nascimento das linguagens de programação, do IBM PC, da Apple, da Microsoft, da Internet, da web (www), do linux, da programação orientada a objeto, da Computação Gráfica, dos notebooks, dos celulares, dos robôs, IOT, Inteligência Artificial e ainda tenho muita coisa para aprender. Sou um dinossauro moderno! Como eu sempre digo, sou OLDSTACK!!
Mas como eu virei programador?
Bem, em 1980, eu fui aprovado no Vestibular para o curso de Engenharia Elétrica da Universidade Federal da Paraíba, Campus II, Centro de Ciências e Tecnologia, em Campina Grande (hoje, Universidade Federal de Campina Grande - UFCG).
Logo no primeiro semestre, eu cursei a disciplina de Introdução à Ciência da Computação (ICC), que ensinava os fundamentos de Lógica de Programação, usando a linguagem FORTRAN na prática.
Foi amor à primeira vista! Já na primeira aula, no primeiro código (“Olá, mundo!”) mostrado no quadro (verde!), meus olhos brilharam e eu senti um arrepio. Parecia que eu tinha acabado de descobrir como os robôs eram controlados!!! Confesso que todo o meu amor pela eletrônica ficou abalado. E eu pensei: "É isso o que eu quero fazer!!!":
Na época não existia o curso de Computação na UFPB, apenas o de Técnico de Nível Superior em Processamento de Dados e não justificaria trocar meu sonho de ser engenheiro por um curso técnico, sem muito campo na época. Então continuei para terminar a minha graduação em Engenharia, que só se deu em 1985.
Voltando à disciplina de FORTRAN, o livro texto adotado foi “Programação FORTRAN”, de Donaldo de Souza Dias (ver figura).
E como era essa tal de FORTRAN? Você já ouviu falar do famigerado comando “GO TO”? Isso é uma longa história!!!
Mas, apenas imagine uma linguagem que não tinha blocos estruturados (FOR, IF-THEN-ELSE) e que esse comando GO TO podia mandar a execução para qualquer ponto do código, incondicionalmente!!!
Imagine a zorra que era acompanhar um algoritmo assim, cheio de “GOTOs”, pra cima e pra baixo do código!!!
Só aí já vale um novo artigo!!
E como a gente fazia um programa e a depuração?
Antes que você me pergunte que computador a gente usava para programar no início dos anos 80, eu digo que era um mainframe IBM 1130, instalado em 1968 (o primeiro do Nordeste!) e a codificação era feita por cartão perfurado, um cartão para cada linha de código (ver figura). Esse cartão perfurado da foto da capa eu guardei de lembrança até hoje, já completou 41 anos!!
O aluno escrevia o código em uma folha de papel com quadrinhos, um para cada caractere do código, depois digitava cada linha de código em um teclado, mas não havia monitor de vídeo. O equipamento usado era uma perfuradora de cartões e cada caractere da linha de código digitado no teclado gerava uma sequência específica de furos verticais (quadrados!) em um cartão padronizado.
Os caracteres da linha de código eram impressos horizontalmente no topo do cartão e os cartões iam formando uma pilha, com os mais antigos ficando em cima.
Quando todo o código era digitado, a gente juntava a pilha de cartões (em ordem!!), prendia com uma borrachinha daquelas de amarrar dinheiro e entregava ao funcionário na sala de entrega de programas, por uma janela de vidro, como no caixa de uma lotérica.
Aí, na próxima hora agendada (10h, 12h, 14h, etc.) as pilhas de cartões entregues até o momento eram inseridas no computador, por um operador, e executadas, uma pilha por programa (os famosos “Jobs”).
Após 1 hora, ou pouco mais, a gente voltava na janela da sala de entrega para ver se o nosso programa já tinha rodado. Se sim, a gente recebia um formulário contínuo (composto de linhas finas em branco e um tom de verde claro) com o código do programa impresso e o resultado da execução (ver figura, com formulário de linhas mais grossas).
Quase sempre, após a primeira execução, havia alguns erros de digitação e o programa não tinha executado seu algoritmo. Então a gente voltava na perfuradora de cartões para redigitar novos cartões para aqueles que tinham algum erro e os trocava pelos cartões errados, na mesma ordem em que eles estavam no programa. Depois, juntava tudo de novo e amarrava com a liga, levando à sala de entrega para rodar de novo na próxima hora agendada.
Após nova longa espera, a gente pegava a nova listagem da execução e, caso não houvesse novos erros de digitação (isso era raro!), o resultado da execução aparecia ao final da listagem.
Só aí, a gente ia analisar se a execução foi correta ou se havia algum erro de lógica no algoritmo. Neste caso, voltava lá na perfuradora e digitava novos cartões corrigindo os erros e repetia o processo de entrega, espera, recebimento da listagem e nova análise.
Não era raro um programa para calcular as raízes de uma equação de segundo grau demorar alguns dias para rodar sem erros!!!
Erros de gravação: Às vezes, a pilha de cartões caía no chão, espalhando todos e a gente tinha que juntar tudo e colocar em ordem novamente. Pra piorar, algumas perfuradoras deixavam de imprimir a linha de código dos cartões e todos ficavam em branco. Imagine colocar em ordem uma pilha de cartões espalhados, todos sem impressão da linha de código!
E depois de ICC?
Aprovado na disciplina de ICC, com média 9.0, no segundo semestre logo me matriculei na outra disciplina ligada à programação do curso, Cálculo Numérico, que tratava da implementação de soluções para equações matemáticas usando o computador. Mas aí é outra looonga história!!!
Já é assunto para outro artigo...
Atualização, em 23/10/2021: Este segundo artigo foi publicado hoje:
Obrigado por ler até aqui. Até a próxima!!