Good news for Bay Area urban rail commuters: BART (Bay Area Rapid Transit) has finalized plans to spend $800 million to upgrade its 47-year old train control systems. The system has not upgraded its train controls since approximately 1972 and as a result of increasing population, on-time service quality has declined for weekday commutes. That’s because the current train controls system lacks advanced capabilities to concisely target train locations. Another organizational challenge is finding programmers with knowledge of ancient programming languages such as FORTRAN. This 2018 tweet confirms its usage in BART’s tech stack, an old job posting lists FORTRAN experience as an ideal credential, and there’s also this 1992 doctoral student paper from the Loughborough University Institutional Repository that makes a reference to FORTRAN for programmatically calculating train speeds. Assuming BART utilizes this bygone programming language, is it also safe to assume that BART will abandon it?
The train system that BART plans to use is called communication-based train control, abbreviated as CBTC. The concept of CBTC is not technically new but it’s far more recent than when track circuitry was invented. Whereas most rail transits currently rely on block-based track circuits, CBTC systems would rely on a system of tags and beacons to transmit location data for each train. Axle tachometers provide fine-tuned position data.
Seeing how much CBTC differs from the current track circuitry approach, is FORTRAN sufficient? FORTRAN continues to be used today but the drawback is that most codebases are driven by code that’s 30-40 years old. This can lead to conundrums within modern technical environments. NASA sponsored a competition in 2017 to find a programmer that could make its 1980-based FORTRAN code faster. FORTRAN’s limitation in supporting object-oriented programming is cited as a drawback in a 2005 study, stating that FORTRAN “is not flexible for handling complicated [systems] with many objects.” In 1996, for Morgantown, WV’s urban rail system Boeing seems to suggest utilizing C and C++ for working with CBTC—which in modern programming environments might translate to the usage of C#. There’s also the increasing average age of a FORTRAN programmer. With COBOL, another early programming language, the average age of a programmer is 55. Both languages, released at around the same time, aren’t too much-in-demand these days. Every passing decade raises the average age substantially; given enough time, skilled FORTRAN programmers won’t exist.
Given BART’s plan to implement CBTC and the weaknesses inherent in FORTRAN, will the rail transit system abandon FORTRAN for train controls? Most likely it will because the organization is looking to modernize all of its equipment (besides new train controls, there are also new trains and new rail tracks being upgraded). Letting go of FORTRAN would be a major step in that direction. The most likely replacement for FORTRAN would be the C language (C, C++, or C#), allowing for complex train control management that leads to improved commute times and quality. And ushering BART into the 21st century.