FORTRAN, COBOL, and PL/I
Clemson’s first computer science courses were focused on a handful of popular programming languages, including FORTRAN, COBOL, and PL/I.
The most popular of these was FORTRAN. FORTRAN, short for Formula Translation, is considered the first widely-used high-level programming language and made computer programming much more accessible than it had been previously. Developed between 1953 and 1957 by an IBM team lead by Jack Backus, FORTRAN enabled those without specific computer science training to learn programming, as it utilized language which was highly abstracted from the actual machine code. Machine code, or machine language, is written in binary (combinations of zeros and ones) and read by the computer’s CPU (central processing unit). While machine code can be read rather quickly by the computer, it can also be intimidating to the human programmer. Even those well-versed in machine code, like Backus and his colleagues, complained that hand-writing code simply took too long and was too complicated. This led Backus to developing what he called SpeedCode in 1950, which would eventually develop into FORTRAN. Ken Thompson, who developed the UNIX operating system in the 1970s, explained that using FORTRAN, the programmer “writes only 5 percent of all instructions, and the program generates the remaining 95 percent for the computer.” FORTAN was originally written for the IBM 704 computer, but the developers quickly adapted it to be used by other machines. IBM credits FORTRAN perhaps being “the most influential software product in history” and says that “Fortran liberated computers from the exclusive realm of programmers and opened them to nearly everybody else.” High-level programming languages are more user-friendly because they often utilize elements of human language and simplify or automate certain computing features. They are designed for practical usability, but with that comes the so-called “abstraction penalty.” In essence, high-level languages make a trade— usability for efficiency. Because of the work required to translate or interpret high-level languages into something the computer can make sense of, high-level programming often takes longer to process. This was especially true in 1957 when FORTRAN was first released to the public.
Despite FORTAN’s strengths, it was designed primarily for scientists and mathematicians and was not particularly popular with the business community. The science and business communities used computers for very different reasons and their programming methods differed. In the mid to late 1950s, commercial programming languages were being developed rapidly, and users worried about increasing costs associated with constantly adapting to new languages. As result, computer scientists Mary K. Hawes and Grace Hopper approached the Department of Defense to request funding for a new, universal business programming language. These efforts resulted in the development of COBOL (”Common Business Oriented Language”) between 1959 and 1963. Though IBM initially developed their own business-focused language, COMTRAN, the company announced it would be fully adopting COBOL in 1962. By 1970, COBOL was the most popular programming language in the world.
IBM still wanted a universal language, though. The popularity of FORTRAN and COBOL were doing a lot of work in pushing the computer industry forward, but the majority of its users were still split by their individual needs. In fact, there was even some hostility between the science and business communities, as scientific programmers often looked down on the kinds of programming the business sector developed as unrefined. In 1964, when IBM announced its upcoming System/360 , a group of computers designed to accommodate both scientific and commercial users (including Clemson University), it set out to create a language which could also accommodate both groups. Initially intended to be an extension of FORTRAN (which ultimately was unsuccessful), IBM created PL/I (”Programming Language One”) in 1964.
PL/I utilized syntax from both FORTRAN and COBOL, which theoretically should have made it an attractive option for users of each language. However, early users found that, like natural languages, programming languages could also feature “false friends,”— words that seem like they would mean the same thing in each language, but are actually completely different. These false friends caused user frustration and error. Further, the crossover between FOTRAN and COBOL made users associate PL/I with whichever language they didn’t use. So, scientific programmers recognized syntax from COBOL and associated PL/I with business languages; likewise, COBOL users recognized syntax from FORTAN and grouped PL/I with scientific languages. Whatever advantages PL/I might have had over either other language dropped significantly as additions were made to both FORTAN and COBOL in the next few years.
Programming languages were changing and emerging quickly during the early years of Clemson’s Computer Science Department; by the 1980-1981 school year, four more languages were added to the offered courses: Pascal, APL, Snobol, and RPG. Former faculty spoke in interviews about the constantly evolving curriculum, new classes being added every year through the 1980s, and needing to be up to date on the current research in order to teach relevant courses. While FORTRAN and its contemporaries are seldom used now (though some supercomputers still utilize it), modern programming languages owe much to these older languages. JavaScript, for example, can be traced back to the C programming language, which in turn has roots in FORTRAN and COBOL. Despite adding new languages to the curriculum, these early languages were still taught well into the 1990s and early 2000s (FORTRAN and PL/I until 1995; COBOL until 2004). Clemson students now have access to a variety of coding programs (including FORTRAN) via the Palmetto Cluster, the on-campus high-performance computing cluster.