Decidi fazer uma entrevista com um dos meus amigos americanos - Rob Vugteveen. Ele estava trabalhando como programador do FORTRAN nos anos 80, por isso é uma experiência única.
Rob Vugteveen, Carson City, Nevada, EUAK: Olá, Rob. Ouvi dizer que você estava trabalhando como programador de Fortran há muitos anos. Está certo? Como a indústria estava olhando naquela época?R: Bom dia, Kirill.
Nos anos 80, ganhei a vida como programador FORTRAN na indústria de mineração, principalmente no processamento de dados de exploração e na apresentação gráfica. Estávamos usando minicomputadores VAX da Digital Equipment Corporation. Era uma época em que os PCs de mesa estavam crescendo em popularidade, e linguagens de procedimentos como o FORTRAN estavam sendo desafiadas por linguagens orientadas a objetos. Além disso, os sistemas de exibição de gráficos estavam mudando dos terminais das células de caracteres para os baseados em janelas X.
O FORTRAN (“FORmula TRANslation”) foi desenvolvido para programas intensivos em computação e não possuía bibliotecas gráficas próprias para exibir informações. Havia empresas que vendiam grandes bibliotecas de sub-rotinas FORTRAN para fornecer esse recurso. Eles ainda não foram projetados para a crescente popularidade da tecnologia X-window.
Quando fomos forçados a mudar de computadores VAX caros para computadores mais baratos, tivemos que escrever programas híbridos usando o FORTRAN para cálculos e C ++ para exibição. Foi um pouco confuso no começo. Deixei esse trabalho por algo completamente diferente (a construção de um museu de mineração) e realmente não fiz nenhuma programação desde então.
O FORTRAN ainda é usado hoje em pesquisa científica para trabalhos intensivos em computação, mas tenho certeza de que foi adaptado para trabalhar com sistemas de exibição gráfica por meio de sub-rotinas externas escritas em código orientado a objetos.
K: Como foi o seu projeto mais interessante no Fortran (ou FORTRAN, como era chamado anteriormente)?R: Eu estava escrevendo um software de planejamento para uma mina de cobre a céu aberto. Os contornos de elevação da mina seriam desenhados na tela como um mapa. Um engenheiro de minas poderia usar um mouse para desenhar um polígono em torno de uma parte da mina onde a terra seria explodida e removida. O software consultaria uma grade tridimensional de dados de perfuração e determinaria quanto cobre seria recuperado daquela porção de terra. Uma das minhas tarefas era escrever o código para modificar as linhas de contorno para dar conta do material que foi removido. Eu tive que inventar esse procedimento do zero e levei mais de uma semana para desenvolver os algoritmos para todos os tipos possíveis de interseção de linhas. Nós assumimos essa operação como garantida agora toda vez que fazemos uma operação vetorial no Adobe Illustrator ou AutoCAD. Mas essas não existiam na época, e fiquei particularmente satisfeito por ter descoberto como fazê-lo.
K: Qual foi o seu melhor sucesso com isso?R: Descobri que meu algoritmo também poderia "colocar o material de volta" no poço aberto, invertendo a direção em que o polígono foi desenhado. Isso significava que o engenheiro de mineração poderia criar um depósito de lixo no chão que não tinha mais minério de cobre embaixo dele. Foi um avanço nas capacidades de design do programa.
K: Qual foi sua pior bagunça?R: Ocasionalmente, o algoritmo de modificação de contorno entrava em um loop sem fim e força o engenheiro a interromper o programa e começar de novo. Descobri um caso especial em que um ponto no contorno original e um ponto no polígono do engenheiro tinham exatamente as mesmas coordenadas. Meu algoritmo não antecipou essa possibilidade e assumiu que o polígono não poderia ser tão preciso. No entanto, após vários dias de depuração, corrigi o algoritmo para funcionar em todos os casos.
K: Computadores e linguagens de programação fizeram um grande progresso desde então. Como você se sente com essas mudanças?R: À medida que os computadores se tornam menores, mais poderosos e mais baratos, as pessoas esperam cada vez mais das suas máquinas. Os programadores continuam forçando os limites do que pode ser feito. A programação orientada a objetos era importante, e as variações da linguagem C eram muito populares. O Fortran ainda era o mecanismo de processamento de números para muitas aplicações científicas e de engenharia, mas as aplicações Fortran foram envolvidas em uma camada externa de código orientado a objetos para obter mais funções gráficas e de entrada do usuário. Linguagens mais especializadas pareciam surgir à medida que o poder da computação aumentava, com o Java crescendo da Sun Microsystems (posteriormente adquirida pela Oracle) e se tornando Javascript (da Netscape). O sistema operacional UNIX entrou em ação, o MS-DOS deu lugar ao Windows e uma série de linguagens de programação apareceu a cada década desde então. A maioria deles foi desenvolvida em desenvolvimentos anteriores para se tornar mais fácil de usar e adicionar funcionalidades, como distribuir tarefas de computação em threads paralelos entre vários processadores e outros recursos.
Fiquei divertido ao ler esta semana que o C ++ ultrapassou recentemente o Python nas três principais linguagens de programação mais usadas. É provável que o ranking dos três primeiros continue a mudar à medida que o poder de processamento aumenta, os recursos de hardware se expandem e mais aplicativos são desenvolvidos que ainda não foram imaginados. Mesmo com todos esses outros idiomas, ainda há muitas novas aplicações científicas e de engenharia sendo escritas no Fortran, e o idioma continua a ser aprimorado. A versão mais recente é o Fortran 2018.
Minha piada favorita do Fortran precisa de um pouco de configuração: no Fortran, variáveis que começam com as letras I, J, K, L, M e N (aquelas entre I e N como no INteger) são implicitamente armazenadas como números inteiros no computador. Aqueles que começam com outras letras são armazenados como números reais na memória. Então a piada é:Deus é real ... a menos que declarado explicitamente um número inteiro.K: Ouvi dizer que você está aprendendo JavaScript no momento. O que fez você decidir retornar ao setor de TI?R: No meu trabalho atual, estou usando produtos Adobe em um grande número de imagens. A Adobe possui um recurso de script que pode ser implementado usando Javascript. Quero aprender para poder ser mais eficiente no processamento de grandes conjuntos de imagens e fazer coisas que não podem ser feitas com facilidade a partir da funcionalidade de menu desses programas.
Também estou usando o QuickBase, e algumas funcionalidades que eu quero aparentemente dependem de chamadas externas que podem ser escritas em Javascript.
Curiosamente, eu nunca tive aulas de Fortran ou C ++ quando estava na faculdade ou depois. Eu aprendi sozinho determinando o que queria fazer e procurando como fazer isso acontecer. O Javascript parece um pouco mais complexo para essa abordagem, por isso estou contando com o YouTube para obter instruções on-line. Vamos ver com que rapidez posso me tornar produtivo dessa maneira.
K: Você também começou a aprender WordPress. Você poderia nos contar sobre sua experiência em criar sites?R: Criei meu primeiro site para um centro de visitantes que construí em uma mina de cobre em 1997. Comecei a usar o Apple iWeb e depois mudei para o Adobe Dreamweaver quando o iWeb se mostrou inadequado. Mantive o site por cinco anos até deixar a empresa em 2002.
Eu realmente não construí um site novamente até 2016, quando estava procurando trabalho e queria criar um currículo on-line para potenciais empregadores verem minhas capacidades. Eu escolhi o WIX como uma maneira de obter algo rapidamente, depois usei-o para experimentar outro site apenas por diversão.
Agora, estou estudando o WordPress com um amigo na Ucrânia que teve a gentileza de me treinar.
K: Ótimas respostas, Rob! Obrigado por dedicar seu tempo para responder a todas essas perguntas.