Entretien avec Rob Vugteveen - un programmeur FORTRAN de la vieille école

J'ai décidé de faire une interview avec un de mes amis américains - Rob Vugteveen. Il travaillait comme programmeur FORTRAN dans les années 1980, donc c'est une expérience tout à fait unique.


Rob Vugteveen, Carson City, Nevada, États-Unis

K: Salut Rob. J'ai entendu dire que vous travailliez comme programmeur Fortran il y a de nombreuses années. C'est bien ça? À quoi ressemblait l'industrie à l'époque?

R: Bonjour, Kirill.

Dans les années 80, j'ai gagné ma vie en tant que programmeur FORTRAN dans l'industrie minière, principalement dans le traitement des données d'exploration et leur présentation graphique. Nous utilisions des mini-ordinateurs VAX de Digital Equipment Corporation. C'était une époque où les PC de bureau gagnaient en popularité et où les langages procéduraux comme FORTRAN étaient mis à l'épreuve par les langages orientés objet. De plus, les systèmes d'affichage graphique s'éloignaient des terminaux à cellules de caractères pour des affichages basés sur X-window.

FORTRAN («FORmula TRANslation») a été conçu pour les programmes à forte intensité de calcul, et il ne disposait pas de ses propres bibliothèques graphiques pour afficher les informations. Il y avait des entreprises qui vendaient de grandes bibliothèques de sous-programmes FORTRAN pour fournir cette capacité. Ceux-ci n'étaient pas encore conçus pour la popularité croissante de la technologie X-window.

Lorsque nous avons été obligés de passer d'ordinateurs VAX coûteux à des ordinateurs moins chers, nous avons dû écrire des programmes hybrides en utilisant FORTRAN pour les calculs et C ++ pour l'affichage. C'était un peu désordonné au début. J'ai quitté ce travail pour quelque chose de complètement différent (construire un musée des mines) et je n'ai pas vraiment fait de programmation depuis.

FORTRAN est encore utilisé aujourd'hui dans la recherche scientifique pour les travaux intensifs en calcul, mais je suis sûr qu'il a été adapté pour fonctionner avec des systèmes d'affichage graphique via des sous-programmes externes écrits en code orienté objet.


K: À quoi ressemblait votre projet le plus intéressant sur Fortran (ou FORTRAN, comme on l'appelait plus tôt)?

R: J'écrivais un logiciel de planification de mine pour une mine de cuivre à ciel ouvert. Les contours d'élévation de la mine seraient dessinés à l'écran comme une carte. Un ingénieur des mines pourrait utiliser une souris pour dessiner un polygone autour d'une partie de la mine où la terre serait dynamitée et enlevée. Le logiciel interrogerait une grille tridimensionnelle de données de forage et déterminerait la quantité de cuivre qui serait récupérée de cette partie de la terre. L'une de mes tâches consistait à écrire le code pour modifier les courbes de niveau afin de tenir compte du matériau retiré. J'ai dû inventer cette procédure à partir de zéro, et il m'a fallu plus d'une semaine pour développer les algorithmes pour chaque type d'intersection de lignes possible. Nous prenons cette opération pour acquise maintenant chaque fois que nous effectuons une opération vectorielle dans Adobe Illustrator ou AutoCAD. Mais ceux-là n'existaient pas à l'époque, et j'étais particulièrement satisfait d'avoir compris comment le faire.

K: Quel a été votre meilleur succès avec ça?

R: J'ai découvert que mon algorithme pouvait également «remettre du matériel» dans la fosse à ciel ouvert en inversant la direction dans laquelle le polygone était tracé. Cela signifiait que l'ingénieur des mines pouvait créer une décharge sur un sol qui n'avait plus de minerai de cuivre en dessous. Il s'agissait d'une percée dans les capacités de conception du programme.

K: Quel a été votre pire problème?

R: Parfois, l'algorithme de modification de contour entrait dans une boucle sans fin, et forçait l'ingénieur à tuer le programme et à recommencer. J'ai découvert un cas particulier où un point sur le contour d'origine et un point sur le polygone de l'ingénieur avaient exactement les mêmes coordonnées. Mon algorithme n'a pas prévu cette possibilité et a supposé que le polygone ne pouvait pas être aussi précis. Cependant, après plusieurs jours de débogage, j'ai corrigé l'algorithme pour qu'il fonctionne dans tous les cas.

K: Les ordinateurs et les langages de programmation ont fait de gros progrès depuis lors. Que pensez-vous de ces changements?

R: Comme les ordinateurs sont devenus plus petits, plus puissants et moins chers, les gens attendent de plus en plus de leurs machines. Les programmeurs repoussent sans cesse les limites de ce qui peut être fait. La programmation orientée objet était la grande chose, et les variantes du langage C étaient très populaires. Fortran était toujours le moteur de calcul des nombres pour de nombreuses applications scientifiques et d'ingénierie, mais les applications Fortran ont été enveloppées dans une coque externe de code orienté objet pour plus de graphiques et de fonctions d'entrée utilisateur. Des langages plus spécialisés semblaient surgir à mesure que la puissance de calcul augmentait, Java passant de Sun Microsystems (acquis plus tard par Oracle) et devenant Javascript (de Netscape). Le système d'exploitation UNIX s'est installé, MS-DOS a cédé la place à Windows et une multitude de langages de programmation sont apparus chaque décennie depuis. La plupart d'entre elles s'appuyaient sur des développements précédents pour devenir plus faciles à utiliser et ajouter des fonctionnalités, telles que la distribution de tâches de calcul dans des threads parallèles sur plusieurs processeurs et d'autres ressources.

J'ai été amusé de lire cette semaine que C ++ a récemment dépassé Python dans les trois langages de programmation les plus utilisés. Il est probable que le classement des trois premiers continuera de changer à mesure que la puissance de traitement augmente, que les capacités matérielles se développent et que davantage d'applications sont développées qui n'ont pas encore été imaginées. Même avec toutes ces autres langues, il existe encore de nombreuses nouvelles applications scientifiques et techniques en cours d'écriture en Fortran, et la langue continue d'être améliorée. La version la plus récente est Fortran 2018.

Ma blague Fortran préférée a besoin d'un peu de configuration: dans Fortran, les variables qui commencent par les lettres I, J, K, L, M et N (celles entre I et N comme dans INteger) sont implicitement stockées sous forme d'entiers dans l'ordinateur. Celles commençant par d'autres lettres sont stockées sous forme de nombres réels dans la mémoire. La blague est donc:

Dieu est réel ... à moins qu'il ne soit explicitement déclaré un entier.

K: J'ai entendu dire que vous appreniez JavaScript en ce moment. Qu'est-ce qui vous a décidé à retourner dans l'industrie informatique?

R: Dans mon travail actuel, j'utilise des produits Adobe sur un grand nombre d'images. Adobe a une capacité de script qui peut être implémentée en utilisant Javascript. Je veux l'apprendre afin d'être plus efficace avec le traitement de grands ensembles d'images et de faire des choses qui ne peuvent pas être faites facilement à partir des fonctionnalités de menu de ces programmes.

J'utilise également QuickBase, et certaines fonctionnalités que je veux dépendent apparemment d'appels externes qui peuvent être écrits en Javascript.

Curieusement, je n'ai jamais repris de cours sur Fortran ou C ++ lorsque j'étais au collège ou après. Je l'ai appris par moi-même en déterminant ce que je voulais faire et en cherchant comment y arriver. Javascript semble un peu plus complexe pour cette approche, donc je compte sur YouTube pour des instructions en ligne. Nous verrons à quelle vitesse je peux devenir productif de cette façon.

K: Vous venez également de commencer à apprendre WordPress. Pourriez-vous nous parler de votre expérience dans la création de sites Web?

R: J'ai créé mon premier site Web pour un centre d'accueil que j'ai construit dans une mine de cuivre en 1997. J'ai commencé à utiliser Apple iWeb, puis je suis passé à Adobe Dreamweaver lorsque iWeb s'est révélé inadéquat. J'ai maintenu le site pendant cinq ans jusqu'à ce que je quitte cette entreprise en 2002.

Je n'ai pas vraiment construit de site Web avant 2016, alors que je cherchais du travail et que je voulais créer un CV en ligne pour que les employeurs potentiels voient mes capacités. J'ai choisi WIX comme moyen d'obtenir quelque chose rapidement, puis je l'ai utilisé pour expérimenter un autre site Web juste pour le plaisir.

Maintenant, je cherche à apprendre WordPress avec un ami en Ukraine qui a eu la gentillesse de me coacher.

K: Excellentes réponses, Rob! Merci d'avoir pris le temps de répondre à toutes ces questions.

Source: https://habr.com/ru/post/fr447948/


All Articles