Interview with Rob Vugteveen — an old-school FORTRAN programmer
I decided to make an interview with one of my American friends — Rob Vugteveen. He was working as a FORTRAN programmer back in 1980s, so it’s quite a unique experience.
Rob Vugteveen, Carson City, Nevada, USA
K: Hi Rob. I’ve heard you were working as a Fortran programmer many years ago. Is that right? How the industry was looking back then?
R: Good morning, Kirill.
In the 1980s I made my living as a FORTRAN programmer in the mining industry, primarily in the processing of exploration data and presenting it graphically. We were using VAX minicomputers from Digital Equipment Corporation. This was a time when desktop PCs were growing in popularity, and procedural languages like FORTRAN were being challenged by object-oriented languages. Also, graphics display systems were shifting away from character-cell terminals to X-window-based displays.
FORTRAN («FORmula TRANslation») was built for computationally intensive programs, and it did not have its own graphic libraries to display information. There were companies that sold large FORTRAN subroutine libraries to provide that capability. These were not yet designed for the growing popularity of X-window technology.
When we were forced to move from expensive VAX computers to cheaper PCs, we had to write hybrid programs using FORTRAN for computations and C++ for display. It was a bit messy at first. I left that job for something completely different (building a mining museum) and haven«t really done any programming since.
FORTRAN is still used today in scientific research for computationally intensive work, but I«m sure it«s been adapted to work with graphical display systems through external subroutines written in object-oriented code.
K: How your most interesting project on Fortran (or FORTRAN, like it was called earlier) was looking like?
R: I was writing mine-planning software for an open-pit copper mine. The elevation contours of the mine would be drawn on the screen like a map. A mine engineer could use a mouse to draw a polygon around a portion of the mine where the earth would be blasted and removed. The software would query a 3-dimensional grid of drillhole data and determine how much copper would be recovered from that portion of earth. One of my tasks was to write the code to modify the contour lines to account for the material that was removed. I had to invent that procedure from scratch, and it took me more than a week to develop the algorithms for every possible type of line intersection. We take this operation for granted now every time we make a vector operation in Adobe Illustrator or AutoCAD. But those didn«t exist then, and I was particularly satisfied to have figured out how to do it.
K: What was your best success with it?
R: I discovered that my algorithm could also «put material back» in the open-pit by reversing the direction that the polygon was drawn. That meant the mining engineer could create a waste dump over ground that no longer had copper ore beneath it. It was a breakthrough in the program«s design capabilities.
K: What was your worst mess up?
R: Occasionally the contour modification algorithm would get into an endless loop, and force the engineer to kill the program and start over. I discovered a special case when a point on the original contour and a point on the engineer«s polygon had exactly the same coordinates. My algorithm didn«t anticipate that possibility and assumed the polygon could not be that precise. However, after several days of debugging, I fixed the algorithm to work in all cases.
K: Computers and programming languages made a large progress since then. How do you feel about these changes?
I was amused to read this week that C++ has recently overtaken Python in the top three most-used programming languages. It is likely that top three ranking will continue to change as processing power increases, hardware capabilities expand, and more applications are developed that haven«t been imagined yet. Even with all those other languages, there are still many new scientific and engineering applications being written in Fortran, and the language continues to be improved. The most recent version is Fortran 2018.
My favorite Fortran joke needs a bit of setup: In Fortran, variables that start with the letters I, J, K, L, M, and N (those between I and N as in INteger) are implicity stored as integers in the computer. Those starting with any other letters are stored as real numbers in memory. So the joke is:
God is real… unless explicitly declared an integer.
K: You also just started to learn WordPress. Could you please tell us about your experience making websites?
R: I made my first website for a visitor center that I built at a copper mine in 1997. I started using Apple iWeb, then moved to Adobe Dreamweaver when iWeb proved to be inadequate. I kept up the site for five years until I left that company in 2002.
I didn’t really build a website again until 2016 when I was looking for work and wanted to create an online resume for potential employers to see my capabilities. I chose WIX as a way to get something up quickly, then I used it to experiment with another website just for fun.
Now I’m looking into learning WordPress with a friend in the Ukraine who has been kind enough to coach me.
K: Great answers, Rob! Thank you for taking your time to answer all these questions.