Hacker News new | past | comments | ask | show | jobs | submit login
The Fortran Automatic Coding System (1957) [pdf] (computerhistory.org)
56 points by headalgorithm on March 22, 2019 | hide | past | favorite | 18 comments



Compiling used to be called "automatic coding".

The word "compiling" existed and referred to more or less what we now call linking: making a program image by catenating together the needed smaller programs (subroutines).

The terminology made sense: translating isn't compiling.

Programming in a higher level language wasn't considered "coding": "coding" referred to taking the higher level specification and encoding it or the machine: writing machine code. This was done by hand, and when software started doing it, that was then, naturally, "automatic coding".

Today, writing a shell script to rename your MP3's is "coding". :)


And that mp3 renaming shell script probably uses orders of magnitude more CPU time than the most complex FORTRAN simulations in the 1960s did.


My mother was a programmer in this era. She got her degree in math in 1954. Rather than being a teacher, she went to work for Union Carbide in Buffalo to work on "this new thing called a computer". I have a great Union Carbide PR photo of her up on a stool, moving a jumper cable on a room-sized computer. I really need to digitize that.

She learned FORTRAN shortly after, and was a FORTRAN programmer for her entire career, later working at Calspan and then a spin-off defense contractor. She used FORTRAN for her entire career.

I fondly remember her making her grocery lists and taking notes on the used punch cards that she'd bring home from work.

My first internship in the late 80s was at another defense contractor, and I had to program a GUI in FORTRAN (!!) on a VAXstation. I remember coming to her for help, since I knew C and Lisp, and the whole FORTRAN column number thing threw me for a loop.


I remember seeing the VAXstation GUI bit in late 88 or so in grad school. It was weird interfacing Fortran and C calls back then.

I forgot the name of the interface, but I remember that creating a window to start working in was a very long function call in Fortran. Basically it opened an X window in the framework. You then set up a canvas and did more operations on it.

In 1990, I switched over to an SGI Irix machine, and graphics became much easier. We had a molecular dynamics viewer called "shaker" that was written in Irix GL at the time. Hard to use, and my thesis advisor and I didn't have SGIs in our office. So, I wrote my own version using Watcom Fortran(!) and called it "mover".

My thesis advisor shook her head at that ... as our visualization was with "mover" and "shaker".


"I fondly remember her making her grocery lists and taking notes on the used punch cards that she'd bring home from work."

Old cards were useful for making revision notes as well. And the 'paperthrow' command got accidentally put inside a loop on my batch jobs sometimes so I had plenty of nice large lineprint paper for notes. 1970s at university in UK. (We did Algol 68 but then I had to deal with fortran later as a postgrad)



What is interesting to me is that Fortran is still relevant 62 years later. It's changed, dramatically.

I taught myself Fortran 77, then Fortran 90 in grad school. F2008 looks quite good. If it had a REPL, it could be a very interesting environment.

Honestly, I am using Julia more and more, but I've got 30 year old Fortran code that still compiles/runs nicely on my linux boxen, that started out on Vaxen and Cray supers.


I just opensourced LFortran that provides a REPL for Fortran, among other things: https://gitlab.com/lfortran/lfortran, only a subset of Fortran is supported for now, but it's a start. Here is a demo in a Jupyter notebook: https://nbviewer.jupyter.org/gist/certik/f1d28a486510810d824....

The motivation is precisely as you described. In fact, Julia was my initial motivation too: but I didn't want a new language, I wanted the modern interactive environment for Fortran.

In order to get first users and before full Fortran 2018 is supported, I figured out how to parse GFortran's mod files and can interface to GFortran's array descriptors, I am now integrating it in the interactive compiler / REPL. After that is done, for a subset of Fortran, I think this will already be usable (one could use GFortran to compile production code, and use LFortran to use parts of it interactively) and I will announce it more widely. I think this will happen in the next few months.


Nice! Will check it out!


I love how we’re still making the same mistake of thinking that, whatever our next innovation in programming is, it will finally “automate” or “eliminate” coding.

Nope. If you write or draw something and it then executes, you are programming, you are coding.


To be fair, the compiler (as well as the Cobol compiler) did reduce the effort by a factor of perhaps 10.

So yes, you weren't coding in machine language any more, but the compiler was.


Yes, all these things are massive improvements.

It’s just an illusion that this somehow eliminates coding as an activity. You just code using a different, hopefully more productive language and/or mechanism.


Coding back in that day had a different meaning. Today it means any kind of coding--then it meant generating the assembler language.


It's interesting to me how the word coding has mostly replaced programming in many contexts. We now hear of efforts to teach kids "coding" when not long ago that would have been teaching "programming". It would be interesting to delve into why that change in language took place.


Right and today it means writing go or python and tomorrow it might mean talking to an ai about your problem.


This is pretty much the whole story of automation of work, running in fast-forward. The robots, I mean compilers, took 90% of the jobs which used to be performed by humans. And here we all are.


I guess it's the same with 'automobile'. In 20 years people will think it was silly we called it that way.


It took 6 minutes to compile a 47-line Fortran program.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: