'fortran' Episodes

FORTRAN

     8/29/2019

FORTRAN Welcome to the History of Computing Podcast, where we explore the history of information technology. Because by understanding the past, we’re better prepared for the innovations of the future! Todays episode is on one of the oldest of the programming languages, FORTRAN - which has influenced most modern languages. We’ll start this story with John Backus. This guy was smart. He went to med school and was diagnosed with a brain tumor. He didn’t like the plate that was left behind in his head. So he designed a new one. He then moved to New York and started to work on radios while attending Columbia for first a bachelor’s degree and then a master’s degree in math. That’s when he ended up arriving at IBM. He walked in one day definitely not wearing the standard IBM suit - and when he said he was a grad student in math they took him upstairs, played a little stump the chump, and hired him on the spot. He had not idea what a programmer was. By 1954 he was a trusted enough resource that he was allowed to start working on a new team, to define a language that could provide a better alternative to writing code in icky assembly language. This was meant to boost sales of the IBM 704 mainframe by making it easier to hire and train new software programmers. That language became FORTRAN, an acronym for Formula Translation. The team was comprised of 10 geniuses. Lois Haibt, probably one of the younger on the team said of this phase: "No one was worried about seeming stupid or possessive of his or her code. We were all just learning together." She built the arithmetic expression analyzer and helped with the first FORTRAN manual, which was released in 1956. Roy Nutt was also on that team. He wrote an assembler for the IBM 704 and was responsible for the format command which managed data as it came in and out of FORTRAN programs. He went on to be a co-founder of Computer Science Corporation, or CSC with Fletcher Jones in 1959, landing a huge contract with Honeywell. CSC grew quickly and went public in the 60s. They continued to prosper until 2017 when they merged with HP Enteprirse services, which had just merged with Silicon Graphics. Today they have a pending merger with Cray. David Sayre was also on that team. He discovered the Sayre crystallography equation, and molter moved on to pioneer electron beam lithography and push the envelope of X-ray microscopy. Harlan Herrick on the team invented the DO and GO TO commands and ran the first working FORTRAN program. Cuthbert Herd was recruited from the Atomic Energy Commission and invented the concept of a general purpose computer. Frances Allen was a math teacher that joined up with the group to help pay off college debts. She would go on to teach Fortran and in 1989 became the first female IBM Fellow Emeritus. Robert Nelson was a cryptographer who handled a lot of the technical typing and designing some of the more sophisticated sections of the compiler. Irving Ziller designed the methods for loops and arrays. Peter Sheridan, aside from having a fantastic mustache, invented much of the compiler code used for decades after. Sheldon Best optimized the use of index registers, along with Richard Goldberg. As Backus would note in his seminal paper, the History Of FORTRAN I, II, and III, the release of FORTRAN in 1957 changed the economics of programming. While still scientific in nature, the appearance of the first true high-level language using the first real compiler meant you didn’t write in machine or assembly, which was hard to teach, hard to program, and hard to debug. Instead, you’d write machine independent code that could perform complex mathematical expressions and once compiled it would run maybe 20% slower, but development was 5 times faster. IBM loved this because customers needed to buy faster computers. But customers had a limit for how much they could spend and the mainframes at the time had a limit for how much they could process. To quote Backus “To this day I believe that our emphasis on object program efficiency rather than on language design was basically correct.” Basically they spent more time making the compiler efficient than they spent developing the programming language itself. As with the Constitution of the United States, simplicity was key. Much of the programming language pieces were designed by Herrick, Ziller, and Backus. The first release of FORTRAN had 32 statements that did things that might sound similar today like PRINT, READ, FORMAT, CONTINUE, GO TO, ASSIGN and of course IF. This was before terminals and disk files so programs were punched into 80 column cards. The first 72 columns were converted into 12 36 bit words. 1-5 were labels for control statements like PRINT, FORMAT, ASSIGN or put a C in column 1 to comment out the code. Column 6 was boolean where a 1 told it a new statement was coming or a 0 continued the statement from the previous card. Columns 7 through 72 were the statement, which ignored whitespace, and the other columns were ignored. FORTRAN II came onto the scene very shortly thereafter in 1958 and the SUBROUTINE, FUNCTION, END, CALL, RETURN, and COMMON statements were added. COMMON was important because it gave us global variables. FORTRAN III came in 1958 as well but was only available for specific computers and never shipped. 1401 FORTRAN then came for the 1401 mainframe. The compiler ran from tape and kept the whole program in memory, allowing for faster runtime. FORTRAN IV came in the early 60s and brought us into the era of the System/360. Here, we got booleans, logical IF instead of that used in arithmetic, the LOGICAL data type, and then came one of the most important versions, FORTRAN 66 - which merged all those dialects from IV into not quite a new version. Here, ANSI, or the American National Standards Institute stepped in and started to standardize. We sill use DO for loops, and every language has its own end of file statement, commenting structures, and logical IFs. Once things get standardized, they move slower. Especially where compiler theory is concerned. Dialects had emerged but FORTRAN 66 stayed put for 11 years. In 1968, the authors of BASIC were already calling FORTRAN old fashioned. A new version was started in 66 but wasn’t completed until 1977 and formally approved in 1978. Here, we got END IF statements, the ever so important ELSE, with new types of I/O we also got OPEN and CLOSE, and persistent variable controls with SAVE. The Department of Defense also insisted on lexical comparison strings. And we actually removed things, which these days we call DEPRECATE. 77 also gave us new error handling methods, and programmatic ways to manage really big programs (because over the last 15 years some had grown pretty substantial in size). The next update took even longer. While FORTRAN 90 was released in 1991, we learned some FORTRAN 77 in classes at the University of Georgia. Fortran 90 changed the capitalization so you weren’t yelling at people and added recursion, pointers, developer-controlled data types, object code for parallelization, better argument passing, 31 character identifiers, CASE, WHERE, and SELeCT statements, operator overloading, inline commenting, modules, POINTERs (however Ken Thompson felt about those didn’t matter ‘cause he had long hair and a beard), dynamic memory allocation (malloc errors woohoo), END DO statements for loop terminations, and much more. They also deprecated arithmetic IF statements, PAUSE statements, branching END IF, the ASSIGN statement, statement functions, and a few others. Fortran 95 was a small revision, adding FORALL and ELEMENTAL procedures, as well as NULL pointers. But FORTRAN was not on the minds of many outside of the scientific communities. 1995 is an important year in computing. Mainframes hadn’t been a thing for awhile. The Mac languished in the clone era just as Windows 95 had brought Microsoft to a place of parity with the Mac OS. The web was just starting to pop. The browser wars between Netscape and Microsoft were starting to heat up. C++ turned 10 years old. We got Voice over IP, HTML 2.0, PHP, Perl 5, the ATX mother board, Windows NT, the Opera browser, the card format, CD readers that cost less than a grand, the Pentium Pro, Java, JavaScript, SSL, the breakup of AT&T, IBM’s DEEP BLUE, WebTV, Palm Pilot, CPAN, Classmates.com, the first Wiki, Cygwin, the Jazz drive, Firewire, Ruby, and NumPy kickstarted the modern machine learning era. Oh and Craigslist, Yahoo!, eBay, and Amazon.com. Audible was also established that year but they weren’t owned by Amazon just yet. Even at IBM, they were buys buying Lotus and trying to figure out how they were going to beat Kasparov with Deep Blue. Hackers came out that year, and they were probably also trying to change their passwords from god. With all of this rapid innovation popping in a single year it’s no wonder there was a backlash as can be seen in The Net, with Sandra Bullock, also from 1995. And as though they needed even more of a kick that this mainframe stuff was donezo, Konrad Zuse passed away in 1995. I was still in IT at the university watching all of this. Sometimes I wonder if it’s good or bad that I wasn’t 2 or 3 years older… Point of all of this is that many didn’t notice when Fortran continued on becoming more of a niche language. At this point, programming wasn’t just for math. Fortran 2003 brought object oriented enhancements, polymorphism, and interoperability with C. Fortran 2008 came and then Fortran 2018. Yes, you can still find good jobs in Fortran. Or COBOL for that matter. Fortran leaves behind a legacy (and a lot of legacy code) that established many of the control statements and structures we use today. Much as Grace Hopper pioneered the idea of a compiler, FORTRAN really took that concept and put it to the masses, or at least the masses of programmers of the day. John Backus and that team of 10 programmers increased the productivity of people who wrote programs by 20 fold in just a few years. These types of productivity gains are rare. You have the assembly line, the gutenberg press, the cotton gin, the spinning Jenny, the watt steam engine, and really because of the derivative works that resulted from all that compiled code from all those mainframes and since, you can credit that young, diverse, and brilliant team at IBM for kickstarting the golden age of the mainframe. Imagine if you will, Backus walks into IBM and they said “sorry, we don’t have any headcount on our team.” You always make room for brilliant humans. Grace Hopper’s dream would have resulted in COBOL, but without the might of IBM behind it, we might still be writing apps in machine language. Backus didn’t fit in with the corporate culture at IBM. He rarely wore suits in an era where suit makers in Armonk were probably doing as well as senior management. They took a chance on a brilliant person. And they assembled a diverse team of brilliant people who weren’t territorial or possessive, a team who authentically just wanted to learn. And sometimes that kind of a team lucks up and change sthe world. Who do you want to take a chance on? Mull over that until the next episode. Thank you so very much for tuning into another episode of the History of Computing Podcast. We’re lucky to have you. Have a great day! The History of FORTRAN I, II, and III :: http://www.softwarepreservation.org/projects/FORTRAN/paper/p165-backus.pdf


The MIT Tech Model Railroad Club

     9/22/2019

Welcome to the History of Computing Podcast, where we explore the history of information technology. Because understanding the past prepares us for the innovations of the future! Today we’re going to look at the Tech Model Railroad Club, an obsessive group of young computer hackers that helped to shape a new vision for the young computer industry through the late 50s and early 60s. We’ve all seen parodies it in the movies. Queue up a montage. Iron Man just can’t help but tinker with new models of his armor. Then viola, these castaway hack jobs are there when a new foe comes along. As is inspiration to finish them. The Lambda Lamda Lamda guys get back at the jock frat boys in Revenge of the Nerds. The driven inventor in Honey I Shrunk the Kids just can’t help himself but build the most insane inventions. Peter Venkman in Ghostbusters. There’s a drive. And those who need to understand, to comprehend, to make sense of what was non-sensical before. I guess it even goes back to Dr Frankenstein. Some science just isn’t meant to be conquered. But trains. Those are meant to be conquered. They’re the golden spike into the engineering chasm that young freshman who looked like the cast of Stand By Me, but at MIT, wanted to conquer. You went to MIT in the 50s and 60s because you wanted a deeper understanding of how the world worked. But can you imagine a world where the unofficial motto of the MIT math department was that “there’s no such thing as computer science. It’s witchcraft!” The Tech Model Railroad Club, or TMRC, had started in 1946. World War II had ended the year before and the first first UN General Assembly and Security Council met, with Iran filing the first complaint against the Soviet Union and UNICEF being created. Syria got their independence from France. Jordan got their independence from Britain. The Philippines gained their independence from the US. Truman enacted the CIA, Stalin accounted a 5 year plan for Russia, ushering in the era of Soviet reconstruction and signaling the beginning of the col war, which would begin the next year. Anti-British protests exploded in India, and Attlee agreed to their independence. Ho Chi Minh became president of the Democratic Republic of Vietnam and France recognized their statehood days later, with war between his forces and the French breaking out later that year resulting in French martial law. Churchill gave his famous Iron Curtain Speech. Italy and Bulgaria abolished their monarchies. The US Supreme Court ordered desegregation of busses and Truman ordered desegregation of the armed forces and created the Committee on Civil Rights using an executive order. And there was no true computer industry. But the ENIAC went into production in 1946. And a group of kids at the Massachusetts Institute of Technology weren’t thinking much about the new world order being formed nor about the ENIAC which was being installed just a 5 or 6 hour drive away. They were thinking about model trains. And over the next few years they would build, paint, and make these trains run on model tracks. Started by Walter Marvin and John Fitzallen Moore, who would end up with over a dozen patents after earning his PhD from Columbia and having a long career at Lockheed, EMI Medical who invented the CT scan. By the mid-50s the club had grown and there were a few groups of people who were really in it for different things. Some wanted to drink cocacola while they painted trains. But the thing that drew many a student though was the ARRC, or Automatic Railroad Running Computer. This was built by the Signals and Power Subcommittee who used relays from telephone switches to make the trains do all kinds of crazy things, even cleaning the tracks. Today there we’re hacking genes, going to lifehacker.com, and sometimes regrettably getting hacked, or losing data in a breach. But the term came from one who chops or cuts, going back to the 1200s. But on a cool day in 1955, on the third floor of Build 20, known as the Plywood Palace, that would change. Minutes of a meeting at the Tech Model Railroad Club note “Mr. Eccles requests that anyone working or hacking on the electrical system turn the power off to avoid fuse blowing.” Maybe they were chopping parts of train tracks up. Maybe the term was derived from something altogether separate. But this was the beginning of a whole new culture. One that survives and thrives today. Hacking began to mean to do technical things for enjoyment in the club. And those who hacked became hackers. The OG hacker was Jack Dennis, an alumni of the TMRC. Jack Dennis had gotten his bachelors from MIT in 1953 and moved on to get his Masters then Doctorate by 1958, staying until he retired in 1987, teaching and influencing many subsequent generations of young hackers. You see, he studied artificial intelligence, or taking these computers built by companies like IBM to do math, and making them… intelligent. These switches and relays under the table of the model railroad were a lot of logical circuits strung together and in the days before what we think of as computers now, these were just a poor college student’s way of building a computer. Having skipped two grades in high school, this “computer” was what drew Alan Kotok to the TMRC in 1958. And incoming freshman Peter Samson. And Bob Saunders, a bit older than the rest. Then grad student Jack Dennis introduced the TMRC to the IBM 704. A marvel of human engineering. It was like your dad’s shiny new red 1958 corvette. Way too expensive to touch. But you just couldn’t help it. The young hackers didn’t know it yet, but Marvin Minsky had shown up to MIT in 1958. John McCarthy was a research fellow there. Jack Dennis got his PhD that year. Outside of MIT, Robert Noyce and Jack Kilby were giving us the Integrated Circuit, we got FORTRAN II, and that McCarthy guy. He gave us LISP. No, he didn’t speak with a LISP. He spoke IN LISP. And then president Lyndon Johnson established ARPA in response to Sputnik, to speed up technological progress. Fernando Corbato got his PhD in physics in 1956 and stayed on with the nerds until he retired as well. Kotok ended up writing the first chess program with McCarthy on the IBM 7090 while still a teenager. Everything changed when Lincoln Lab got the TX-0, lovingly referred to as the tikso. Suddenly, they weren’t loading cards into batch processing computers. The old IBM way was the enemy. The new machines allowed them to actually program. They wrote calculators and did work for courses. But Dennis kinda’ let them do most anything they wanted. So of course we ended up with very early computer games as well, with tic tac toe and Mouse in the Maze. These kids would write anything. Compilers? Sure. Assemblers? Got it. They would hover around the signup sheet for access to the tikso and consume every minute that wasn’t being used for official research. At this point, the kids were like the budding laser inventors in Weird Science. They were driven, crazed. And young Peter Deutsch joined them, writing the Lisp 1.5 implementation for the PDP at 12. Can you imagine being a 12 year old and holding your own around a group of some of the most influential people in the computer industry. Bill Gosper got to MIT in 1961 and so did the second PDP-1 ever built. Steve Russell joined the team and ended up working on Spacewar! When he wasn’t working on Lisp. Speaking of video games. They made Spacewar during this time with a little help from Kotok Steve Piner, Samson, Suanders, and Dan Edwards. In fact, Kotok and Saunders created the first gamepad, later made popular for Nintendo, so they could play Spacewar without using the keyboard. This was work that would eventually be celebrated by the likes of Rolling Stone and Space War and in fact would later become the software used to smoke test the PDP once it entered into the buying tornado. Ricky Greenblatt got to MIT in 1962. And this unruly, unkempt, and extremely talented group of kids hacked their way through the PDP, with Greenblatt becoming famous for his hacks, hacking away the first FORTRAN compiler for the PDP and spending so much time at the terminal that he didn’t make it through his junior year at MIT. These formative years in their lives were consumed with cocacola, Chinese food, and establishing many paradigms we now consider fundamental in computer science. The real shift from a batch process mode of operations, fed by paper tape and punchcards, to a interactive computer was upon us. And they were the pioneers who through countless hours of hacking away, found “the right thing.” Project MAC was established at MIT in 1963 using a DARPA grant and was initially run by legendary J. C. R. Licklider. MAC would influence operating systems with Multics which served as the inspiration for Unix, and the forming of what we now know as computer science through the 1960s and 70s. This represented a higher level of funding and a shift towards the era of development that led to the Internet and many of the standards we still use today. More generations of hackers would follow and continue to push the envelope. But that one special glimpse in time, let’s just say if you listen at just the right frequency you can hear screaming at terminals when a game of Spacewar didn’t go someone’s way, or when something crashed, or with glee when you got “the right thing.” And if you listen hard enough at your next hackathon, you can sometimes hear a Kotok or a Deutsch or a Saunders whisper in your ear exactly what “the right thing” is - but only after sufficient amounts of trial, error, and Spacewar. This free exercise gives way to innovation. That’s why Google famously gives employees free time to pursue their passions. That’s why companies run hackathons. That’s why everyone from DARPA to Netflix has run bounty programs. These young mathematicians, scientists, physicists, and engineers would go on to change the world in their own ways. Uncle John McCarthy would later move to Stanford, where he started the Stanford Artificial Intelligence Laboratory. From there he influenced Sun Microsystems (the S in Sun is for Stanford), Cisco, and dozens of other Silicon Valley powerhouses. Dennis would go on to found Multics and be an inspiration for Ken Thompson with the first versions of Unix. And after retiring he would go to NASA and then Acorn Networks. Slug Russell would go on to a long career as a developer and then executive, including a stop mentoring two nerdy high school kids at Lakeside School in Seattle. They were Paul Allen and Bill Gates, who would go on to found Microsoft. Alan Kotok would go on to join DEC where he would work for 30 years, influencing much of the computing through the 70s and into the 80s. He would work on the Titan chip at DEC and in the various consortiums around the emergent Internet. He would be a founding member of the World Wide Web Consortium. Ricky Greenblatt ended up spending too much of his time hacking. He would go on to found Lisp Machines, coauthor the time sharing software for the PDP-6 and PDP-10, write Maclisp, and write the first computer chess program to beat world class players in Hubert Dreyfus. Peter Samson wrote the Tech Model Railroad Club’s official dictionary which would evolve into the now-famous Jargon file. He wrote the Harmony compiler, a FORTRAN compiler for the PDP-6, made music for the first time with computers, became an architect at DEC, would oversee hardware engineering at NASA, and continues to act as a docent at the Computer History Museum. Bob Saunders would go on to be a professor at the University of California, becoming president of the IEEE, and Chairman of the Board during some of the most influential years in that great body of engineers and scientists. Peter Deutsch would go on to get his PhD from Berkeley, found Aladdin Enterprises, write Ghostscript, create free Postscript and PDF alternatives, work on Smalltalk, work at Sun, be an influential mind at Xerox PARC, and is now a composer. We owe a great deal to them. So thank you to these pioneers. And thank you, listeners, for sticking through to the end of this episode of the History of Computing Podcast. We’re lucky to have you.


FORTRAN, Compilers, and Early Programming

     2/10/2020

Our modern world is full of software, it's what makes everything tick. The sheer amount of code that goes into something like keeping the internet running is staggering. Programming isn't the easiest profession, but there was a time when it was much much harder. It took a huge shift in thinking, and some impressive feats of software development, to make complicated programming possible. And that shift started in the 1950s.

Like the show? Then why not head over and support me on Patreon. Perks include early access to future episodes, and stickers: https://www.patreon.com/adventofcomputing

Important dates in this episode:

1951: Grace Hopper Creates A-0 Compiler
1954: John Backus Starts FORTRAN Project at IBM
1957: First FORTARN Compiler Ships


(OldComputerPods) ©Sean Haas, 2020