一位老派FORTRAN程序员Rob Vugteveen的访谈

我决定接受我的一位美国朋友-Rob Vugteveen的采访。 他在1980年代曾是FORTRAN程序员,所以这是一次非常独特的经历。


Rob Vugteveen,美国内华达州卡森市

K:你好,Rob。 我听说您很多年前就曾担任过Fortran程序员。 是吗 当时的行业情况如何?

R:早上好,基里尔。

在1980年代,我以在采矿业中担任FORTRAN程序员的身份生活,主要从事勘探数据的处理并以图形方式显示。 我们使用的是Digital Equipment Corporation的VAX小型计算机。 这是台式PC日益普及的时代,而FORTRAN之类的过程语言正受到面向对象语言的挑战。 同样,图形显示系统正从字符单元终端转移到基于X窗口的显示器。

FORTRAN(“公式转换”)是为计算密集型程序而构建的,它没有自己的图形库来显示信息。 有一些公司出售大型FORTRAN子例程库来提供该功能。 这些尚未针对X窗口技术的日益普及而设计。

当我们被迫从昂贵的VAX计算机转移到较便宜的PC时,我们不得不使用FORTRAN进行计算并使用C ++进行显示来编写混合程序。 起初有点混乱。 我离开那份工作是为了完全不同的事情(建造一个采矿博物馆),此后实际上还没有做任何编程工作。

如今,FORTRAN仍在科学研究中用于计算密集型工作,但我敢肯定,它已经通过面向对象代码编写的外部子例程适应了图形显示系统。


K:您在Fortran(或更早的时候称为FORTRAN)上最有趣的项目是什么样的?

R:我当时正在为露天铜矿编写排雷计划软件。 矿山的高程轮廓将像地图一样绘制在屏幕上。 地雷工程师可以使用鼠标在地雷的一部分上绘制多边形,在该部分将炸毁并清除地球。 该软件将查询钻孔数据的3维网格,并确定将从该部分土壤中回收多少铜。 我的任务之一是编写代码来修改轮廓线,以说明已删除的材料。 我不得不从头开始发明这种程序,花了我一个多星期的时间才能为每种可能的线交叉点类型开发算法。 每次我们在Adobe Illustrator或AutoCAD中进行矢量操作时,我们都会将此操作视为理所当然。 但是那时那些还不存在,我对找到解决方法感到特别满意。

K:您最大的成功是什么?

R:我发现我的算法还可以通过反转多边形的绘制方向在露天矿中“放回材料”。 这意味着采矿工程师可以在地面上不再有铜矿的地方创建废物场。 这是该程序设计能力的突破。

K:你最糟的是什么?

R:有时候轮廓修改算法会陷入无限循环,并迫使工程师终止程序并重新开始。 我发现了一种特殊情况,即原始轮廓上的点与工程师多边形上的点具有完全相同的坐标。 我的算法没有预料到这种可能性,并假设多边形不可能那么精确。 但是,经过几天的调试,我修复了该算法在所有情况下都可以工作的问题。

克:自那时以来,计算机和编程语言取得了长足的进步。 您如何看待这些变化?

R:随着计算机变得越来越小,功能越来越强大且价格越来越便宜,人们对机器的期望越来越高。 程序员一直在限制可以做什么。 面向对象编程是一件大事,而C语言的变体非常流行。 Fortran仍然是许多科学和工程应用程序中的数字运算引擎,但是Fortran应用程序被包裹在面向对象代码的外壳中,以用于更多的图形和用户输入功能。 随着计算能力的增强,越来越多的专门语言出现了,Java从Sun Microsystems(后来被Oracle收购)中脱颖而出,而从Netscape变成Javascript。 UNIX操作系统占据了上风,MS-DOS取代了Windows,自此以后每十年出现一大堆编程语言。 这些工具中的大多数都建立在以前的开发基础之上,以变得更易于使用和添加功能,例如在多个处理器和其他资源之间的并行线程中分配计算任务。

我本周很高兴地读到C ++最近在三种最常用的编程语言中超过了Python。 随着处理能力的提高,硬件功能的扩展以及尚未想到的更多应用程序的开发,前三名的排名可能会继续发生变化。 即使使用所有其他语言,仍然有许多用Fortran编写的新的科学和工程应用程序,并且该语言还在不断改进。 最新版本是Fortran 2018。

我最喜欢的Fortran笑话需要一些设置:在Fortran中,以字母I,J,K,L,M和N开头的变量(如INteger中的I和N之间的变量)被隐式存储为计算机中的整数。 那些以其他字母开头的字符将作为实数存储在内存中。 所以这个笑话是:

上帝是真实的...除非明确声明为整数。

克:听说您正在学习JavaScript。 是什么让您决定重返IT行业?

R:我目前的工作是在大量图像上使用Adobe产品。 Adobe具有可以使用Javascript实现的脚本功能。 我想学习它,以便处理大量图像并执行那些程序的基于菜单的功能无法轻松完成的工作,从而提高效率。

我也在使用QuickBase,显然我想要的某些功能依赖于可以用Javascript编写的外部调用。

奇怪的是,当我上大学或之后,我再也没有上过Fortran或C ++的课程。 我通过确定自己想做什么并查找如何实现它来自己学习。 这种方法的Javascript似乎有点复杂,因此我依靠YouTube进行在线教学。 我们将看到我能以多快的速度提高生产力。

K:您还刚刚开始学习WordPress。 您能告诉我们您制作网站的经历吗?

R:我为1997年在铜矿山上建立的访客中心建立了第一个网站。我开始使用Apple iWeb,然后在iWeb证明不够用时移至Adobe Dreamweaver。 我在网站上呆了五年,直到2002年离开该公司。

直到2016年寻找工作并想为潜在的雇主创建在线简历以让我了解自己的能力时,我才真正建立了网站。 我选择WIX作为快速入门的一种方法,然后我就用它来试验另一个网站,只是为了好玩。

现在,我正在与乌克兰的一位友善的朋友一起学习WordPress,他已经很友善地指导我。

克:很好的答案,罗伯! 感谢您抽出宝贵的时间回答所有这些问题。

Source: https://habr.com/ru/post/zh-CN447948/


All Articles