Interview mit Rob Vugteveen - einem FORTRAN-Programmierer der alten Schule

Ich beschloss, ein Interview mit einem meiner amerikanischen Freunde zu führen - Rob Vugteveen. Er arbeitete bereits in den 1980er Jahren als FORTRAN-Programmierer, es ist also eine einzigartige Erfahrung.


Rob Vugteveen, Carson City, Nevada, USA

K: Hallo Rob. Ich habe gehört, dass Sie vor vielen Jahren als Fortran-Programmierer gearbeitet haben. Ist das richtig Wie sah die Branche damals aus?

R: Guten Morgen, Kirill.

In den 1980er Jahren verdiente ich meinen Lebensunterhalt als FORTRAN-Programmierer im Bergbau, hauptsächlich in der Verarbeitung und grafischen Darstellung von Explorationsdaten. Wir verwendeten VAX-Minicomputer der Digital Equipment Corporation. Dies war eine Zeit, in der Desktop-PCs immer beliebter wurden und prozedurale Sprachen wie FORTRAN durch objektorientierte Sprachen herausgefordert wurden. Außerdem verlagerten sich Grafikanzeigesysteme von Zeichenzellen-Terminals zu X-Fenster-basierten Anzeigen.

FORTRAN („FORmula TRANslation“) wurde für rechenintensive Programme entwickelt und verfügte nicht über eigene Grafikbibliotheken zur Anzeige von Informationen. Es gab Unternehmen, die große FORTRAN-Unterprogrammbibliotheken verkauften, um diese Funktion bereitzustellen. Diese wurden noch nicht für die wachsende Beliebtheit der X-Window-Technologie entwickelt.

Als wir gezwungen waren, von teuren VAX-Computern auf billigere PCs umzusteigen, mussten wir Hybridprogramme mit FORTRAN für Berechnungen und C ++ für die Anzeige schreiben. Anfangs war es etwas chaotisch. Ich habe diesen Job für etwas völlig anderes verlassen (ein Bergbaumuseum bauen) und seitdem nicht mehr wirklich programmiert.

FORTRAN wird heute noch in der wissenschaftlichen Forschung für rechenintensives Arbeiten verwendet, aber ich bin sicher, es wurde für die Arbeit mit grafischen Anzeigesystemen durch externe Unterprogramme angepasst, die in objektorientiertem Code geschrieben sind.


K: Wie sah Ihr interessantestes Projekt auf Fortran (oder FORTRAN, wie es früher genannt wurde) aus?

R: Ich habe eine Minenplanungssoftware für eine Kupfermine im Tagebau geschrieben. Die Höhenkonturen der Mine würden wie eine Karte auf dem Bildschirm gezeichnet. Ein Mineningenieur könnte mit einer Maus ein Polygon um einen Teil der Mine zeichnen, in dem die Erde gesprengt und entfernt wird. Die Software würde ein dreidimensionales Gitter von Bohrlochdaten abfragen und bestimmen, wie viel Kupfer aus diesem Teil der Erde gewonnen würde. Eine meiner Aufgaben war es, den Code zu schreiben, um die Konturlinien so zu ändern, dass das entfernte Material berücksichtigt wird. Ich musste dieses Verfahren von Grund auf neu erfinden und brauchte mehr als eine Woche, um die Algorithmen für jede mögliche Art von Linienkreuzung zu entwickeln. Wir halten diesen Vorgang jetzt jedes Mal für selbstverständlich, wenn wir einen Vektorvorgang in Adobe Illustrator oder AutoCAD ausführen. Aber diese gab es damals noch nicht, und ich war besonders zufrieden, herausgefunden zu haben, wie es geht.

K: Was war Ihr bester Erfolg damit?

R: Ich habe festgestellt, dass mein Algorithmus auch Material im Tagebau „zurücklegen“ kann, indem er die Richtung umkehrt, in die das Polygon gezeichnet wurde. Das bedeutete, dass der Bergbauingenieur eine Müllhalde über dem Boden schaffen konnte, unter der sich kein Kupfererz mehr befand. Es war ein Durchbruch in den Designfähigkeiten des Programms.

K: Was war dein schlimmstes Durcheinander?

R: Gelegentlich geriet der Algorithmus zur Konturänderung in eine Endlosschleife und zwang den Ingenieur, das Programm abzubrechen und von vorne zu beginnen. Ich entdeckte einen Sonderfall, als ein Punkt auf der ursprünglichen Kontur und ein Punkt auf dem Polygon des Ingenieurs genau die gleichen Koordinaten hatten. Mein Algorithmus hat diese Möglichkeit nicht vorausgesehen und angenommen, dass das Polygon nicht so genau sein kann. Nach einigen Tagen des Debuggens habe ich den Algorithmus jedoch so eingestellt, dass er in allen Fällen funktioniert.

K: Computer und Programmiersprachen haben seitdem große Fortschritte gemacht. Wie denkst du über diese Veränderungen?

R: Da Computer kleiner, leistungsfähiger und kostengünstiger geworden sind, erwarten die Menschen immer mehr von ihren Maschinen. Programmierer gehen immer wieder an die Grenzen dessen, was getan werden kann. Objektorientierte Programmierung war die große Sache, und Variationen der C-Sprache waren sehr beliebt. Fortran war immer noch die Zahlenkalkulationsmaschine für viele wissenschaftliche und technische Anwendungen, aber die Fortran-Anwendungen wurden für mehr Grafik- und Benutzereingabefunktionen in eine äußere Hülle aus objektorientiertem Code eingewickelt. Mit zunehmender Rechenleistung schienen spezialisiertere Sprachen aufzutauchen, wobei Java aus Sun Microsystems (später von Oracle übernommen) und Javascript (von Netscape) hervorging. Das UNIX-Betriebssystem setzte sich durch, MS-DOS gab Windows Platz und seitdem erschien jedes Jahrzehnt eine ganze Reihe von Programmiersprachen. Die meisten davon basieren auf früheren Entwicklungen, um die Verwendung zu vereinfachen und Funktionen hinzuzufügen, z. B. die Verteilung von Rechenaufgaben in parallelen Threads auf mehrere Prozessoren und andere Ressourcen.

Ich war amüsiert, diese Woche zu lesen, dass C ++ kürzlich Python in den drei am häufigsten verwendeten Programmiersprachen überholt hat. Es ist wahrscheinlich, dass sich die Top-3-Rangliste weiter ändert, wenn die Verarbeitungsleistung steigt, die Hardwarefunktionen erweitert werden und weitere Anwendungen entwickelt werden, die noch nicht vorgestellt wurden. Selbst mit all diesen anderen Sprachen werden in Fortran immer noch viele neue wissenschaftliche und technische Anwendungen geschrieben, und die Sprache wird weiter verbessert. Die neueste Version ist Fortran 2018.

Mein Lieblingswitz in Fortran muss ein wenig eingerichtet werden: In Fortran werden Variablen, die mit den Buchstaben I, J, K, L, M und N beginnen (die zwischen I und N wie in Integer), implizit als Ganzzahlen im Computer gespeichert. Diejenigen, die mit anderen Buchstaben beginnen, werden als reelle Zahlen im Speicher gespeichert. Der Witz ist also:

Gott ist real ... es sei denn, es wird ausdrücklich eine ganze Zahl deklariert.

K: Ich habe gehört, dass Sie gerade JavaScript lernen. Warum haben Sie sich entschieden, in die IT-Branche zurückzukehren?

R: In meinem aktuellen Job verwende ich Adobe-Produkte für eine große Anzahl von Bildern. Adobe verfügt über eine Skriptfunktion, die mit Javascript implementiert werden kann. Ich möchte es lernen, damit ich große Mengen von Bildern effizienter verarbeiten und Dinge tun kann, die mit der menübasierten Funktionalität dieser Programme nicht einfach zu bewerkstelligen sind.

Ich verwende auch QuickBase und einige Funktionen, die ich möchte, basieren anscheinend auf externen Aufrufen, die in Javascript geschrieben werden können.

Seltsamerweise habe ich nie einen Kurs über Fortran oder C ++ besucht, als ich auf dem College war oder danach. Ich habe es selbst gelernt, indem ich festgelegt habe, was ich tun möchte, und nachgeschlagen habe, wie ich es erreichen kann. Javascript scheint für diesen Ansatz etwas komplexer zu sein, daher verlasse ich mich bei Online-Anweisungen auf YouTube. Wir werden sehen, wie schnell ich auf diese Weise produktiv werden kann.

K: Sie haben auch gerade angefangen, WordPress zu lernen. Können Sie uns bitte etwas über Ihre Erfahrungen beim Erstellen von Websites erzählen?

R: Ich habe meine erste Website für ein Besucherzentrum erstellt, das ich 1997 in einer Kupfermine gebaut habe. Ich habe angefangen, Apple iWeb zu verwenden, und bin dann zu Adobe Dreamweaver gewechselt, als sich iWeb als unzureichend erwiesen hat. Ich habe die Website fünf Jahre lang beibehalten, bis ich das Unternehmen im Jahr 2002 verlassen habe.

Ich habe erst 2016 wieder eine Website erstellt, als ich nach Arbeit suchte und einen Online-Lebenslauf erstellen wollte, damit potenzielle Arbeitgeber meine Fähigkeiten sehen können. Ich habe WIX gewählt, um schnell etwas aufzubauen, und dann habe ich es verwendet, um nur zum Spaß mit einer anderen Website zu experimentieren.

Jetzt möchte ich WordPress mit einem Freund in der Ukraine lernen, der so freundlich war, mich zu coachen.

K: Großartige Antworten, Rob! Vielen Dank, dass Sie sich die Zeit genommen haben, all diese Fragen zu beantworten.

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


All Articles