I worked in the commercial nuclear power industry for 35 years and used FORTRAN for real-time simulation, nuclear safety analysis and I wrote a code to take signals from in-core detectors to synthesize the reactor power distribution to verify safety limits were not exceeded. I miss that kind of stuff!
@@Supernumerary True. Digital twins have been there for a long time but have now got a new name as full sync between the physical system and the model is increasingly possible due to the proliferation of sensors and internet based communications. Learn about Digital Twins! ruclips.net/video/IeMMFHwJTEU/видео.html
In my first job at Lucas Aerospace I worked on an analogue computer to model a ships gas turbine propulsion system. I guess we could have called it an analogue twin. I still love analogue technology.
I learnt FORTRAN during my college days at IIT Delhi in the year 1977. Subsequently, I worked as a software developer professional developing Structural Analysis and Design software in FORTRAN from 1981 to 1985. My experience was very positive and interesting and we developed some great applications for our organisation (Engineers India Ltd.) which were used for inhouse Structural Analysis and design of various structures. My own internal policy was to adhere to good programming pracices such as avoiding GO TO Statements, ensuring Explicit definitions of all variables used, and writing modular subroutines with extensive documentation and explanations inside the software itself using comment lines. This helped in debugging and avoiding logical errors.
I used GO TO statements and found them useful, but then I never had programming training except for a basic course that I dropped. A friend of mine taught me how to program while we were walking across campus on the way to lunch. What I learned the hard way was to document code with comments so that those that maintain the program will know what is being done at every step. This includes a revision history at the beginning.
Oh! Sweet, sweet, sweet memories from simpler times! In 1975, I read the book "Ten Statement Fortran" in one sitting of a few hours, and was writing Fortran programs right away - on a multi-million dollar IBM S/370 Mainframe computer using punched cards! For reference, the futuristic, awesome HP-21A calculator debuted in the same year! Today's iphone is easily a million times more powerful than that massive god-like S/370 behemoth that occupied an entire floor of the building and was serviced by 50 personnel. Of infinite promise they were - those wondrous days - all of which has come true!
I remember those days I took data processing in highschool at the technical school for a half a day , Fortran was the first language after learning all the obsolete machines there was first the keypunch then the reproducer , then the sorter that I only jammed one time, then there was a collator and last the beast that is what my friend called it the 402 Accounting machine. Then we got to take turns running the IBM system 360 and run Fortran we wrote simple programs until we had a hard one to run. We used if loops and Do loops and used a switch to find the header card I don't remember only it was hard and I used my friends copy and changed the numbers and tried to figure out how it ran I had header stuck in a Do loop. At least it stopped when I got to 10. I think the statement was Do 1-10 well I need a refresher course or just look at some easy Fortran programs I never kept my Fortran book only cobol and assembler which I only tried to run one program the teacher caught me and the explanation he gave me I was lost there was a third disk pack that our class never used but the last years class did assembler and cobol I guess the first year was RPG and Fortran . The first year teacher didn't know how to teach being he was new. The second year was fun because the teacher made it fun and lots of jokes and crack ups. He s could make a boring class fun. Oh I forgot the third disk pack was for assembler when I came in I had to IPL the system and I remember the first year I did mount the third pack just the second year that pack was only used for assembler the other two was all that was needed to run Fortran , RPG and Cobol we had no basic and never used PL 1 and Pascal was not in the picture I knew of that language on home computers but never tried it. I was happy to learn basic in college which was required for the electronics program. 73
Simpler times! You should read the Fortran 2018 standards, that is, if you can lift up all those pages and pages of features. My late boss was head of the standards committee and tried to explain to us the reasoning for all of the new features.
I still have that book on my bookshelf. I remember the days when I submitted a pack of punched cards, only to have to wait a whole day before the mainframe could schedule a run. Then the agony of discovering that I loused up a single character and had to start all over again. 😢😊
And I have been thinking why o why? That time should have been invested in improving massive parallel support and multitarget nonproprietary accelerator support (Like Nvidia's Fortran Cuda)
@@meltdown6165 you wouldn't stick OO where you do actual heavy computations, but programs usually isn't just that, and your code organization and conceptual modularization can benefit from OO, and so it will do program maintenance. Then, despite its usage as a numerical tool, I would say Fortran can be thought as a general purpose programming language, and so it is right that it offers also OO. Then, people aren't forced to use it if it doesn't fit their needs for speed and whatever.
@@jaimeduncan6167 language designers and language implementors differ. Designers design, implementors implement and can focus on other topics (like those you mention) rather than working on making their compiler fully compliant with more modern versions of the language. I think of Fortran like a general purpose programming language, and so I expect that it evolves also with features like OO. Programs often aren't just made of heavy computation: you have to organize your code, and maintain it: OO can make it easier.
Gosh what a nice surprise to see this vlog in my YT feed as it reminded me of how I used FORTRAN to write my MIS master's thesis in the 1970s!! After college I went into finance but I still love and appreciate the phenomenal emergence and application of computer science in all aspects of our daily lives today.
I've been writing scientific code for 35 years, Fortran consistently compiles to efficient, fast code - often the fastest, and when not, usually percentages rather than factors out. For serious numerical work, it's stunning how well it's stood up to time. Kudos to Backus (yet again).
But Matlab has gotten some people into trouble. Had a graduate student working for our team in a military lab. She had to create a thermodynamics model of a shape memory polymer for her thesis. She used a finite difference approach using some heat equations. Yes, she was using an older computer, but 3000 time steps over something like a 200 x 200 array shouldn't have taken 3 days to run. My boss asked me to look at it while he was away. She didn't allocate the array before looping. So Matlab was constantly looking for contiguous memory for the array but one time step larger, copying the old array over, and then destroying the old array all unbeknownst to her. I did a simple sizeof or whatever Matlab calls it, and Matlab was doing all that stuff I just mentioned and was also paging out into virtual memory. Furthermore, she only needed to save the temperature at the center of plate for each time step not the temp everywhere. So I created a 200 x 200 x 2 array to do the time differencing and then a 1x3000 array to capture the temp in the center of the plate. I allocated this memory by creating a empty arrays before looping. What took 3 days before took a fraction of a second after I was done.
@@major__kong That's why being aware of hardware code is run on (such as caches, branch misprediction penalties, etc.), techniques used in low-level programming (such as in assembly), as well as memory allocation is beneficial to any coding. It enables you to consider many things that can't be solved by the compiler alone. I once needed to replace the entire dynamic memory allocation layer in C to find an elusive buffer overflow in an embedded system, so I made my own thread-safe malloc and free with debugging features, then after I solved the issue, as a hobby I also extended my allocator to constant-time execution complexity when I looked into the dynamic memory allocation subject deeper. It also made sense to do in an embedded system with different memory hierarchy and access latencies depending on location in a memory map, so you have a more granular control and more heaps in different kinds of memories. I benchmarked it with maximum compiler optimizations and found that even on PC in a simple multi-threaded allocate-fill-verify-deallocate benchmark, my own dynamic memory allocation library was an order of magnitude faster than allocator in the standard library.
@@major__kong haha, to use a high level language, you need to be able to envision all the way to the bottom layer of code that gets generated. My son learned Matlab in engineering, he said it sucked. Python in his opinion was much better. Even as an interpreted language, if written well it can really sparkle. He had a name for people who wrote python and couldn't do it well. probably best I can't remember it. I speak as someone who learned macro assembler in Uni, but used high level languages throughout my career. I have a fond memory of being a TA in Uni and teaching a little FORTRAN. ah, best to keep that memory private.
I'm teaching a numerical analysis class this semester. At the request of the Physics department (not that I'm complaining) I'm using Fortran as the programming language. This morning when I showed a few examples, there were some flabbergasted looks and someone said, 'wait, it's that easy???' Fortran isn't returning, it never left. It was biding it's time till the stars were right again :D
Yes, Fortran hides in the cold dark places to the scientific ecosystem lol. I am amazed that physics department told you to use it. Mostly they go with Matlab…
I've had a "side hustle" maintaining a small Fortan code base from1990 to present. It's still the best for the numerical accuracy needed for scientific computing.
Great. Agree that it is great for numerical computing. As too many people now know python, languages not developed for scientific programming are being used for such tasks
I got throw the bs flag on thr play. Like most of you early 1980's was the first and last time I messed with it (Fortran77). Pascal, modula-2, some ibm assembly and Ada were the languages I used in the rest of my engineering program. After graduating in 1986, C was the only language I ever used until C++ in the 2010s.
@@davidmilner3575 Yes Pascal was great language but C got more traction due to its power in systems programming. Great that you used C and C++. Many engineers in academia went from Fortran to Matlab as they never got around to arrays which start with index zero. But now C++ is being criticised and the move is towards Rust and Go as these are memory safe The Dark Side of C++ Programming Language! ruclips.net/video/u8HBUC4vKPs/видео.html
@@gorka9020 there will be solid difference between udemy and sir's teaching, a legacy of research and debugging and probable mistakes during code developing that's something sir can teach better
I started FORTRAN coding in 1967 as an udergrad at McMaster U in Hamilton Ontario. Later ('71 - '78) developed a model of the electric currents tied to the Aurorea Borealis for my PhD. Later still, developed FORTRAN code to model the currents in space measured by various satellites, and even later, worked on the code for COSPAS/SARSAT,again all with FORTRAN. Complicated and complex algorithms all, but pretty straight forward coding. Even managed to interface ORACLE DBM to Fortran, and build a website using only FORTRAN and Digital's DCL. Great times; great fun; very straight forward language.
I spent 15 years writing Fortran and have seen all the good and bad that it has. Fortran is not fast because of magic. Fortran is fast because of all the features it does not have. It can be optimized to death by the compiler in ways that languages with pointers, recursion and other modern features can't be. Every time you enable one of those modern features some part of the optimization has to be turned off. If you turn all those features on then all you have is a bad version of C++. Fortran is fast when algorithms don't count. If a fancy algorithm can solve your problem quicker then you should use a language that helps you implement that algorithm. But some problems can't be solved that way. In cases where there's nothing else to do but millions or billions of calculations then you should use Fortran. That's how the pros do it. Don't be a language fan boy, use the language that's best for the problem at hand.
Another thing is all the allocation of memory is static so no chains of pointers to memory to slow things down. Also the variables are passed by reference, again making it faster. I would not use it to apply regex to xml; python is kind of king of that. But for some maths/sim code FORTRAN is hard to beat.
@@robin48gx Python is unbearably slow. I worked on a project where we tried to implement a small geometry library in pure Python for embedded systems and I couldn't believe how slow it was. At least a hundred times slower than C++. It's even a lot slower than other scripting languages like Perl. On a side note Perl is the king of all regex. It has no competitors. Like C++ it's been upgraded a lot over the years. It's object system and scalability have been improved and it can be written to be understandable and maintainable. For summarizing huge amounts of text, like log files in large IT environments, it's hard to beat.
correct. The overhead of maintaining fancy data structures slows a language/compiler down - FORTRAN data structures are simple and clean, so the compiler/interpreter overhead just isn't there.
Me too. I learned programming in 1970 with Fortran and Algol. Mathematicians told me, in 5 years nobody will use Fortran. But 5 years later nobody used Algol. For the next 15 years, I programmed in Fortran and pdp11 assembly language. For scientific electrical calculations, Fortran was perfect because of its inherent complex mathematics. which no other language had at this time.
@@gottfriedheumesser1994 yes but since so many people now know python they often end up doing numerical computation in sub optimal languages which were designed for some other tasks
I had a sign on my office wall, "A competent programmer can write Fortran in any language" - A few friends and I wrote an interpretive Fortran compiler for the IBM 1620 back in 1962/1963. An incredible learning experience.
About 35 years ago, I wrote Windows DLLs in Fortran for an engineering application I was working on. I had written the UI in Centura Team Developer. Although great for the UI and SQL database access, CTD was too slow for some of the heavy number crunching I needed to do so I used Fortran. Fun times.
You are most welcome. But I should inform you that Julia is a strong contender for the future of scientific computing. Should you learn Julia? ( a new scientific programming language) ruclips.net/video/8jRyHBrwwTs/видео.html
This brings back many memories for me. I took back to back classes in Fortran IV in 1976 (on punch cards) and 1977 (time sharing) as electives in my Electronics Engineering major. I fell in love with programming from that start! So I switched from EE to Software Engineering. I went on to learn BASIC, VB, Java, HTML, Perl, ASP, C++, PHP, and some C and ASM. Glad to hear Fortran is still alive and kicking!
@@gracenotes5379 - I started in 1973 and have never written a Hollerith constant but I did see some. The problem wasn't so much the language but getting stuck on an IBM computer rather than DEC.
@@jrstf I remember having to count the characters in any character string I wanted to use and prefixing said string H as in 4HJOHN. I don't think the compiler I used back then had any support for quoted character strings. This was annoying, but not a real problem unlike, say, arithmetic IF followed by 3 line numbers, which made spaghetti code quite hard to avoid. Anyway, it's all nostalgia at this point. Fun times.
I used FORTRAN in 1982, when I started working at IBM TJ Watson Labs...then started in PASCAL and so on...and remember seen a FORTRAN patent congrats in the TJ Watson Library...looks like it is time to brush up on FORTRAN again. Love it.
I wrote my first FORTRAN program in 1965. I continued to use it for more than a decade while working for a civil engineering consulting firm. We used it for structural design and various simulations. We also used PL/1 when the task worked better with recursion, which FORTRAN didn't support. One thing I recall as being very useful in FORTRAN was multiple entry points into subroutines. As I moved more into writing embedded and firmware code I moved more into assembly and C, but I still have fond memories of FORTRAN. I also tinkered with RATFOR, but never used it in a serious way.
Awesome Sir. Thanks for bringing back the importance of FORTRAN. I remember subroutines of the book by Prof J N Reddy on the Finite Element method which has many FORTRAN codes.
I think it is better to learn matlab particularly because of its very good plot, image manipulation routines. Furthermore matlab supports neural network and other AI libraries. Lastly, the reason one should learn matlab is that your approach to problem solving is changed namely: develop a model, write code to test it and tweak your model until you get your desired results.
My first programming courses were at the University of Waterloo in 1970. At that time, Waterloo was using its own version of Fortran, called WATFOR (and later WATFIV). Your video brings back pleasant memories. Thx!
I went to college for an engineering degree BSEE in the late 60s early 70s. I wrote exactly one program in Fortran for the IBM 360 on cards to solve a matrix. It worked the first time and that was the last of my computer use and programming until the 1980s. Now I use a computer all the time, and do just a little programming; but mostly it is admin and configuration in what I do, even now in retirement.
My first language in 1975, Honeywell Fortran D. Classroom had a 29 keypunch in the back. Sent cards across town to the H200 every night, got printouts back next day. Exciting nonetheless!
Great overview. I work in numerical weather prediction with models that need to be run in a HPC environment. We often use python to drive the models, but the models themselves are always built with Fortran.
Down memory lane! I learned Fortran IV as a professor at U of Maryland to develop programs for student test grading and analysis. I remember carrying boxes of punched cards to the computer science center and passing them to the white coated techs to run on the Univac 1108. Then returning the next day to pick up my stack of output. Since then I have used C, C++, Python, Java, VB and other "modern" languages. I still have fondness of the clarity of Fortran, but did not miss GOTO! Thank you for the video! I just for fun I'm going to look into current Fortran. It would be interesting to see how it does with web based data sources. At least now I won't have to worry about dropping a box of cards!
@daveoatway6126 The mention of U of Maryland and Univac triggered some memories. I started my MS in ME at U of Miami, Coral Gables in 1982. The mainframe we had was a later model Univac, I forget. No punched cards. A Hazeltine dumb terminal, a 300 baud modem with acoustic coupler, and a black rotary dial telephone is what we used to connect to the Univac, shared among half a dozen grad students who had their offices in one of the labs in the basement. I remember the command to invoke the line editor was @med. med was "Maryland editor", developed at U of Maryland. All the assignments for classes like Numerical Methods, Computational Heat Transfer, etc. were programmed in FORTRAN 77. It was so much fun learning. I still have the program listings for everything I did at the university.
Fotran is used in finite element analysis therefore extensively used in structural and road designs. Another language I used in roads and sewerage system design were some variants of LISP. Thanks for this. Btw, Fortran was used in the first mainframe computer in Asia (Sri Lanka), and I used it to design a spiral staircase to a university (where our current prez studied). It ran for 45 minutes and gave me a stack of punched cards, two in thick and some printed results. I used it for my professional qualification, the MICE (London).
@@Drganguli The guy who set up and started using it was my lecturer in the Uni. Has PhD. from Imperial College and Contemporary of Bjan Stroustrup. I tried his book on programming Fortran and gave up. But AutoLISP opened the horizon as it was interpreted language you could see the results then and there on AutoCAD. The easiest way to get a hang of programming. Then came java in 2000. And here I am developing apps for Play Store on the Android platform which I started during Covid. All the best!.
Wow. This caught my eye and it really is a trip down memory lane. I did scientific programming in Fortran in the 70s- things like a Fast Fourier Transform for spectral analysis. In defence science Fortran was embedded in all sorts of things. I even did a truth functional logic schema validity testing program based on Polish notation.
Thank you so much Dr. Ganguli for making this video! I used fortran in my masters thesis which was a simulation project and now in my phd I am using Ansys Fluent which involves C coding. I also did high temperature experiments in my phd work with which I have been partially able to validate the Fluent simulations. Information like this video are very helpful when seeking research oriented jobs in the recession. Please provide any other such information about skills that can be helpful for phd students applying for jobs.
Sure. Hope you have seen these videos. How to be productive and marketable as a PhD? ruclips.net/video/uDGjBJcCaE0/видео.html How to go from PhD to an Industry job? ruclips.net/video/CSy14_G21IA/видео.html Ace the industry job interview as a Master or PhD! ruclips.net/video/RNQ94voH2eo/видео.html
How to become an industry research scientist? (as a PhD) ruclips.net/video/7pyfIwb9LNc/видео.html Resume versus CV to get industry jobs after PhD ruclips.net/video/hbSL-firA9U/видео.html
We wrote two interesting programs using IBM Fortran before they discarded it in favor of PL/1. All data for the IBM 360/370 was entered via punch cards. The first program, "General Data Entry" was an editor allowing 80 column text entry that could be dumped to a data set (DD) serving as data input to some processing program (instead of punch cards) or as input to the second program, "NSP Basic". This was a basic interpreter than could output to the IBM 2260 terminal. This program compiled the Basic code to an RPN stack which was then executed. Looping was a real challenge, but it was solved.
Very interesting. First time I heard a situation where fortran gave way to pl-1. Mostly it was C which was used in place of fortran. In a class we took at the university of Maryland for numerical analysis the professor insisted on C programs and would not take Fortran. This was in 1991. It was hard but we figured out how to write abstruse code using pointers in C.
S has defined how the R user calls a linear regression. Under the hood, R then calls a Fortran function for the matrix manipulations involved. In R you do not see the Fortran the same way you do not see the engine of the car you drive.
I as well learned Fortran many years ago (1981 - Fortran 77) and for whatever reason the computer language just made sense so I loved it. I would love to see other videos on this topic as I would love to relearn it. Also I consider Fortran my first language and English as my second language :). Loved your video on this topic.
Great. Fortran was the widely used language at that time, and Pascal was being suggested as the structured language that people should use. But C came along and became the other popular language.
Programmed Fortran 2 in June 1960 on an IBM 1620 while studying undergrad physics. Used later versions of Fortran until middle of the '90s as physics researcher. RONC
Wow, what a surprise! I first used Fortran back in mid 80’s, and very extensively in early 90’s when I worked towards my PhD in Mechanical Engineering. I used it for dynamic simulations, together with MATLAB. Very interesting time!
Absolutely interested ( personal project doing MCMC and MCTS ). Also thank you for book recommendation, always love to have something as reference and even to just read before bed!
Thanks. The tutorials may interest you starting from Fortran Programming Language, Basic Concepts: Tutorial Lecture 1 ruclips.net/video/6l4yqTR6jq0/видео.html
I too started my software career in 1978 with Fortran IV and as time progressed ended up learning and programming in COBOL, PL/1, MODEL/204, SQL, and finally ended up logical and physical designing of Databases and programming full screen as opposed to line by line mode. I finally retired as a Director after 38+ years of software development, project management for a USA multinational company! Never thought I would ever hear FORTRAN coming back! Jai Bharat!
A friend of mine is an astrophysicist. Simulations of charge movements inside neutron stars he wrote were done in Fortran. Of course modern FORTRAN that is not purely for computation but also has access to graphical capabilities of machine.
I learnt a bit of Fortran (most likely Fortran 77) out of curiosity many years ago for numerical analysis class. It wasn't a requirement per se, and after all the lecturer mostly explained the algorithms using Matlab. My impresssion so far is unlike Lisp, which is also used outside computer science research, Fortran is practically limited to science and engineering folks.
Yes without doubt it was only used for scientific computing. But with C and C++ declared unsafe some people are considering fortran again. www.techrepublic.com/article/tiobe-index-language-rankings/
Because Fortran is doing what it is supposed to do. General purpose languages can do nearly everything smoothly, but not necessarily in the most efficient manner unlike domain specific languages
My first language was FORTRAN in about 1982. LOL, I remember using the go to statement. A little later I took computer science 101 and 102, which at that time the big thing was Pascal and "structured" programming. The main take away of structured programming was to not use go to statement and I remember that being pounded into us. To me, structured programming is the same as procedural programming. Let me know if I'm wrong about that or if there are subtle differences. One language that looks very much like Pascal is Structured Text for PLCs. I believe the name comes from the structured paradigm. Just for fun or a hobby, I'm interested in learning modern Fortran.
I learned Fortran IV in 1975 while studying for my BS, ME. I still had trays of punch cards until 2022 when I made my last move. Sure beat heck out of COBOL.
yup! great to hear about this helpful news!! personally, I would use a java GUI. then connect this to a logic core Fortran Node! I would bet most folks don't realize Fortran is a pure logic core! and Java is the product for communications & secured certificate identities! it's so helpful to hear about U'r past experiences! thanks!
I am interested! I want to learn everthing about FORTRAN, how to perform mathematical operation, summation, derivative, integrations, linear algebra, solving TD-SE, TISE and so on as much advanced level as possible.
It can run on each of our students computers for free and it will be there for you for the rest of your life for free, no matter whom you work for or not. That makes learning Fortran, C, C++, R, Python and Julia so much more worthwhile.
I began my computing access with Fortran in the year of 1976. In that time the structure used were the flowcharts with rectangles, circles, etc. My class was the first one to move to logical algorithms instead of flowcharts.
Don't know about FORTRAN but the presence of the beautiful flowers in the background as well as Dr Ganguli's calm voice made me watch the entire video and a new subscriber to the channel.
In 72, I started programming in Fortran for a room size IBM machine. I gave up since the data in/output was by punch tapes. The reacher restricted the iteration of programming because of the high mechanical failures (punch type writer) and consecutive high cost of maintenance. I gave up ( waited for micro processors and teletype machines in hex code).
It is important to mention that the language has continued to evolve (the latest standard is Fortran 2023). Programs written in modern Fortran can be much more concise and understandable than those written in older versions of the language. In 2010, Eugene Loh wrote¹, in ACM Queue, about programmability studies undertaken when he was at Sun Microsystems, as part of DARPA HPCS (High Productivity Computing Systems). They had a small sample of HPC (High Performance Computing) programs written in old Fortran which were rewritten (without annotations, like OpenMP/OpenACC directives) in modern Fortran by a competent programmer. The result was very interesting: a significant reduction in lines of code (factor 11x in one case, 10x in a couple of cases; the lowest 3.6x) against a zero performance reduction in one case, within 2.7x in 3 other cases and with an outlier with a variable factor of 2x-6x. Even one of the maintainer of the original code was surprised by the succinctness and readability of the rewritten code. Of course, "modern" Fortran in those years is not so modern today (I think the experiment was conducted around mid 2000s: Fortran 2003 was the latest standard, Fortran 90/95 is mentioned in the article). Today's compilers probably do a better job at compiling old and new features of the language. _______________________________ 1) Eugene Loh. 2010. The Ideal HPC Programming Language: Maybe it’s Fortran. Or maybe it just doesn’t matter. Queue 8, 6 (June 2010), 30-38. DOI: 10.1145/1810226.1820518
I started with Fortran IV on punch cards at university in 1969 and ended up writing code for aircraft aerodynamic design on a teletype terminal talking to a PDP 8 a mile down the road in the 1980's. Thanks for the update..
I used to punch pre-perforated cards with a toothpick - until I was allowed to use a card-punching machine. Started with Fortran 4. and sent punched cards ro Imperial College London for processing.Taught BASIC at school and had a teletype connected by old-fahioned modem to Glasgow Honeywell (used before 8am because calls were dearer after that).
That will be a great help Sir if you create a tutorial for Fortran 90 and above versions. I am currently struggling with sin series expansion program, also trying to learn gnuplot to graph the output.
My first computer language was Fortran (on CDC 6400) as a freshman at UC Berkeley 1968. My main computer language used as a student. I had a cart to carry all the boxes of punched cards of Fortran code to the computer center. I did circuit simulation. Finally got access to Unix as a graduate student and writing c code. So much easier using a real text editor.
Thanks for your video! But I want to point out an incorrect assertion. At roughly 5:20 into the video you have a super that appears on the screen which states "No class in Fortran!" This is incorrect. The Fortran 2003 standard implemented type-bound procedures in derived types. Derived types with type bound procedures is the Fortran equivalent to a C++ class. Derived types with type bound procedures allow users to create class member variables and methods. Those member variables and methods can be defined as public, private, or protected just as in C++ classes. Using Fortran derived types with type bound procedures can enable encapsulation, static and dynamic polymorphism, and inheritance just as C++ classes do. The only difference is that in Fortran the defining keyword is "type" instead of "class" as it is in C++. I teach an introductory scientific computing course that teaches both modern Fortran and modern C++ and have the students doing OOP in both languages.
I had to learn it in 1987 because my project was in DSP. All the code examples around that time were in Fortran. I began to like it (I was in a pro ADA/Modula-2 scholarly environment at the time where FORTRAN was frowned upon). Also after college it helped for work in flight sims and professional astrometry. Its a bit clunky BUT it really works well!
Now you got me intrigued about Fortran. I decided to learn Pascal instead, back in the day. Maybe next year I will see some video about the comeback of Pascal 😂
Ya I learnt fortran as my language but by the time I was in graduate school Pascal was being taught as the language which showcased how programming should be done. But Pascal was too perfect and could not compete with C. People loved pointers and C and Pascal with its best practices was ahead of its time, it is still a better language to introduce programming than C and C++ in my opinion
When I was at IBM in the late 1970s, FORTRAN was largely a thing of the past but PL/1 was widely used. I got drawn into an APL clique within the company, due to the influence of a close colleague who was an APL guru and advocate. I never met him but other members of the clique knew the language's founder, Kenneth Iverson.
Such language agnosticism was seen as a hopeless, unreachable nirvana years ago. And it's easy now - so, imho, you're right to highlight this. The reality is that Fortran is delightful for numerical/scientific coding, but it's a nightmare for user interfaces. Nowadays, it's possible to use the appropriate high level language for the task at hand, and add hooks to allow cross-compilation. Python does a decent job on 'internal wiring', but cross-compilation is significantly faster.
Gosh great memories. I learned FORTRAN 4 in 1976, and then used FORTRAN 77 a lot until 2000 or so. In 2010 I helped support a very old computer model in FORTRAN 4 for graduates. I also used ALGOL 58 and CORAL 66 of a similar era.
I did some FORTRAN-68 scientific programming for NASA on a UNIVAC-1100 way back in 1981 and would be VERY rusty now. It’s nice to see it returning as a useful tool.
Wow, fantastic! Memories of l964 and the KDF9 mainframe at Birmingham Uni coming back. I even have a couple of punch cards tucked away. Those were the days--and I was a GLC user in Medical Biocem. Then the commercial lads took over & produced on stream computers to record analyses. I don't miss the breakdowns of the KDF9.!
FORTRAN is great for performing lengthy calculations that do not need recursion, pointers, or higher level functions including AI. FORTRAN was designed to be a champion number cruncher and it still is, even in modern times. On the down side, FORTRAN is much more critical of tiny errors such as placing a comma or period in the wrong place, than higher level languages. Even the tiniest error can completely crash an entire program, and the error can be very difficult to locate. More modern languages are easier to debug.
I started out in FAP on the 7090 then FORTRAN II. FORTRAN IV came along in a couple of years. Arrays were stored backwards because the 7090 index registers subtracted from the address. The if(i) was for the CAS (compare accumulator to storage) instruction which jumped +1 +2 or +3 depending on < = or >.
Some Fortran tidbits: Also, scipy as well as numpy both have Fortran and C libraries in them. You can do (if for some horrible reason you want to) OOP in Fortran. Fortran matrices is columnar major, similar to Mathlab and several other languages geared towards science and eng., this can trip people up if they are used to C based languages. By default, Fortran indexes starting with 1, as opposed to C (and many other languages), however this can be changed by the user to start at 0.
Yes, well, for me it is reasonable that Fortran is back, because: a) scientific computing never went away, b) big-data-science is back (LLMs and so on) c) Fortran has seen quite a huge overhaul over the years (gone are implicit names with " implicit none"). d) Python does use it intensively, either in NumPy or FFI, where you can put new Fortran code in. I did not watch the whole video, though. I/O still is crutchy, but with other languages like Python contemplating its weaknesses, it might be a win-win.
Yes matrix operations needed for ML are suitable for Fortran. In most universities Matlab replaced Fortran but it is slow and not easily available for companies. Julia has not gained traction yet and lot of old simulation codes in Fortran are being used to create ML models.
Back 1970 our prof(we were a physics majors) asked why we were not using our computer acount, to which we answered we did not know how to program. So he took two of our physics labs(8 hours) and wrote a demo program in fortran relating to viscoscity in glycerin which actually didn't work. So began our programming life which included me crashing the shcool computer twice(assembler not Fortran), I did a good job they had to reinstall the operating system.
Fortran is still very popular in physics, especially for simulations in astrophysics and condensed matter physics. Lots of legacy code, but new software is written to this day. I used Fortran myself in my PhD research projects (late 2000s and early 2010s) and still use it from time to time.
First (and only) computer programming course I took (1968) was Fortran 4. It was the first exposure I ever had to computers. I remember I was struggling in Chem 1B at the time and wrote a very simple qualitative analysis program using sense switches on the computer. I showed it to my chem professor and got a passing grade in the course.
Interesting! My very first programming language was Fortran, back in 1971! I learned just enough of it to do a special program for an extracurricular class at school. Although I was a programming professional, never used Fortran for work.
Fortran is one language that got its formula right. It focuses on one thing and tries to be the best at it. It doesn't try to be a general-purpose language.
If a ranking don’t have JS and Python in #1 and #2 position, there’s no credibility to that ranking . To be honest I despise JS, but can’t deny it is now used almost every web applications, a lot in mobile applications , and even in academia
JS has never been bigger than C or C++, the languages every compiled OS and system level package (including those browser engines that run JS) has been written in for 40+ years. Only in the last ~5-10 years have any alternatives gotten off the ground at all (Rust) and they’re still obscure niche newbies in comparison. So Python, C, C++, JS all jockeying for the top 4 spots makes sense. Before C and its descendants took over, it was Fortran and COBOL that were the big programming languages. Fortran is really the only survivor from that early 50s-60s pre-C era of computing where computers were just coming into existence in their modern form (e.g. things like a recognizable operating system, programming languages and high level code not tied to specific machines). JS occupies a role akin to C’s for the web, so it’ll probably have similar longevity, but it’s unlikely to ever be #1 simply because of where it lives in the software stack.
In fall 1966 our high school in [in Switzerland] started an introduction class to computers in cooperation with local university. So I had the occasion learning Fortran in 1967, run first programs on a Univac III using punched cards with the round holes ..... Have been teaching Fortran later at university, wrote my last Fortran programs for industry applications in 1991. Then main activity shifted to management ........ .
Yes Julia is the modern fit, love it. Engineers and Mathematicians see the first cell in a matrix as 1 but if you graph it out then 1 is the first line off the zeroth line. When a normalized fractional index is introduced we now have an index between 0 and 1. That is where I parted from cardinal to ordinal index schemes. That is one thin Fortran gave us a simple way to work in a cardinal integer universe. I still have a copy of Fortran for PC-DOS.
Well in the 1980’s when I did b tech in iit Kharagpur we studied fortran without any computer. We even wrote code on papers and never compiled them but these got graded. How to Learn to Code without a Computer? ruclips.net/video/WmAKzEPPQy8/видео.html
FORTRAN was a requirement in the engineering when I was in college. My first program was in Fortran with punch cards on an IBM 360.
Amazing!
Same here. I learned to program using WATFIV (Waterloo Fortran Five) on an IBM System 370 at the University of Manitoba-with punch cards, of course
A Honeywell 2000 w/16K memory, 80 column punch cards, and 2400 ft tapes.
Me too, in 1972. If I recall my first assignment was to invert a three by three matrix. Now I’m 79 and trying to teach myself Blender Python.
@@glennet9613 Great!
I worked in the commercial nuclear power industry for 35 years and used FORTRAN for real-time simulation, nuclear safety analysis and I wrote a code to take signals from in-core detectors to synthesize the reactor power distribution to verify safety limits were not exceeded. I miss that kind of stuff!
Interesting
You created a “digital twin” before the term was invented. I create digital twins of hypersonic wind tunnels, for similar reasons.
@@Supernumerary True. Digital twins have been there for a long time but have now got a new name as full sync between the physical system and the model is increasingly possible due to the proliferation of sensors and internet based communications.
Learn about Digital Twins!
ruclips.net/video/IeMMFHwJTEU/видео.html
I had a similar but role but found it rather boring! CEGB - I assume?
In my first job at Lucas Aerospace I worked on an analogue computer to model a ships gas turbine propulsion system. I guess we could have called it an analogue twin. I still love analogue technology.
Still rocking my 77 and 90! Fastest for compute. Fortran rocks!
Yes it does
77 rocks!
@@JavisoGaming Yes it does
compiled vector Fortran can be among the fastest implementations available.
@@TerrythePhysicist Where are the benchmarks proving this claim?
I started my programming journey with Fortran-IV while doing my MSc(Mathematics) course way back in 1984-85. This video refreshed my memories.
1976 for me.
Me too, but electrical engineering.
WOW!!!! I learned ForTran in 1983.
same here
1970 for me.
I learnt FORTRAN during my college days at IIT Delhi in the year 1977. Subsequently, I worked as a software developer professional developing Structural Analysis and Design software in FORTRAN from 1981 to 1985. My experience was very positive and interesting and we developed some great applications for our organisation (Engineers India Ltd.) which were used for inhouse Structural Analysis and design of various structures. My own internal policy was to adhere to good programming pracices such as avoiding GO TO Statements, ensuring Explicit definitions of all variables used, and writing modular subroutines with extensive documentation and explanations inside the software itself using comment lines. This helped in debugging and avoiding logical errors.
Thanks for sharing.
Great 👍🏽 thanks for this gem
I used GO TO statements and found them useful, but then I never had programming training except for a basic course that I dropped. A friend of mine taught me how to program while we were walking across campus on the way to lunch.
What I learned the hard way was to document code with comments so that those that maintain the program will know what is being done at every step. This includes a revision history at the beginning.
Modules are very useful. I also use defined types and pointers in combination a lot.
I wrote my first Fortran program in 1972 but have not used it much since. Definitely want to relearn it-thanks, Dr. G!
@@donaldtryk3253
Beat you, 1968. 😄
Are you in home now ?
Oh! Sweet, sweet, sweet memories from simpler times! In 1975, I read the book "Ten Statement Fortran" in one sitting of a few hours, and was writing Fortran programs right away - on a multi-million dollar IBM S/370 Mainframe computer using punched cards! For reference, the futuristic, awesome HP-21A calculator debuted in the same year! Today's iphone is easily a million times more powerful than that massive god-like S/370 behemoth that occupied an entire floor of the building and was serviced by 50 personnel. Of infinite promise they were - those wondrous days - all of which has come true!
I remember those days I took data processing in highschool at the technical school for a half a day , Fortran was the first language after learning all the obsolete machines there was first the keypunch then the reproducer , then the sorter that I only jammed one time, then there was a collator and last the beast that is what my friend called it the 402 Accounting machine. Then we got to take turns running the IBM system 360 and run Fortran we wrote simple programs until we had a hard one to run. We used if loops and Do loops and used a switch to find the header card I don't remember only it was hard and I used my friends copy and changed the numbers and tried to figure out how it ran I had header stuck in a Do loop. At least it stopped when I got to 10. I think the statement was Do 1-10 well I need a refresher course or just look at some easy Fortran programs I never kept my Fortran book only cobol and assembler which I only tried to run one program the teacher caught me and the explanation he gave me I was lost there was a third disk pack that our class never used but the last years class did assembler and cobol I guess the first year was RPG and Fortran . The first year teacher didn't know how to teach being he was new. The second year was fun because the teacher made it fun and lots of jokes and crack ups. He s could make a boring class fun. Oh I forgot the third disk pack was for assembler when I came in I had to IPL the system and I remember the first year I did mount the third pack just the second year that pack was only used for assembler the other two was all that was needed to run Fortran , RPG and Cobol we had no basic and never used PL 1 and Pascal was not in the picture I knew of that language on home computers but never tried it. I was happy to learn basic in college which was required for the electronics program. 73
Thanks I lost this comment in the shuffle. I will try to finish it if I remember what I was thinking at the time. 73
Simpler times! You should read the Fortran 2018 standards, that is, if you can lift up all those pages and pages of features. My late boss was head of the standards committee and tried to explain to us the reasoning for all of the new features.
I still have that book on my bookshelf. I remember the days when I submitted a pack of punched cards, only to have to wait a whole day before the mainframe could schedule a run. Then the agony of discovering that I loused up a single character and had to start all over again. 😢😊
Fortran has supported an object-based programming style since Fortran 90, and full OO (inheritance, polymorphism, etc) since Fortran 2003.
@@walterspector735 the best option is the Intel Fortran 2011
And I have been thinking why o why? That time should have been invested in improving massive parallel support and multitarget nonproprietary accelerator support (Like Nvidia's Fortran Cuda)
Why would I slow down my numerical simulation by introducing OO overhead?
@@meltdown6165 you wouldn't stick OO where you do actual heavy computations, but programs usually isn't just that, and your code organization and conceptual modularization can benefit from OO, and so it will do program maintenance. Then, despite its usage as a numerical tool, I would say Fortran can be thought as a general purpose programming language, and so it is right that it offers also OO. Then, people aren't forced to use it if it doesn't fit their needs for speed and whatever.
@@jaimeduncan6167 language designers and language implementors differ. Designers design, implementors implement and can focus on other topics (like those you mention) rather than working on making their compiler fully compliant with more modern versions of the language.
I think of Fortran like a general purpose programming language, and so I expect that it evolves also with features like OO. Programs often aren't just made of heavy computation: you have to organize your code, and maintain it: OO can make it easier.
Gosh what a nice surprise to see this vlog in my YT feed as it reminded me of how I used FORTRAN to write my MIS master's thesis in the 1970s!! After college I went into finance but I still love and appreciate the phenomenal emergence and application of computer science in all aspects of our daily lives today.
I've been writing scientific code for 35 years, Fortran consistently compiles to efficient, fast code - often the fastest, and when not, usually percentages rather than factors out. For serious numerical work, it's stunning how well it's stood up to time. Kudos to Backus (yet again).
Yes fortran is most suitable for scientific computing. But Matlab eased it out of university settings.
But Matlab has gotten some people into trouble. Had a graduate student working for our team in a military lab. She had to create a thermodynamics model of a shape memory polymer for her thesis. She used a finite difference approach using some heat equations. Yes, she was using an older computer, but 3000 time steps over something like a 200 x 200 array shouldn't have taken 3 days to run. My boss asked me to look at it while he was away. She didn't allocate the array before looping. So Matlab was constantly looking for contiguous memory for the array but one time step larger, copying the old array over, and then destroying the old array all unbeknownst to her. I did a simple sizeof or whatever Matlab calls it, and Matlab was doing all that stuff I just mentioned and was also paging out into virtual memory. Furthermore, she only needed to save the temperature at the center of plate for each time step not the temp everywhere. So I created a 200 x 200 x 2 array to do the time differencing and then a 1x3000 array to capture the temp in the center of the plate. I allocated this memory by creating a empty arrays before looping. What took 3 days before took a fraction of a second after I was done.
@@major__kong Very interesting.
@@major__kong That's why being aware of hardware code is run on (such as caches, branch misprediction penalties, etc.), techniques used in low-level programming (such as in assembly), as well as memory allocation is beneficial to any coding. It enables you to consider many things that can't be solved by the compiler alone.
I once needed to replace the entire dynamic memory allocation layer in C to find an elusive buffer overflow in an embedded system, so I made my own thread-safe malloc and free with debugging features, then after I solved the issue, as a hobby I also extended my allocator to constant-time execution complexity when I looked into the dynamic memory allocation subject deeper. It also made sense to do in an embedded system with different memory hierarchy and access latencies depending on location in a memory map, so you have a more granular control and more heaps in different kinds of memories. I benchmarked it with maximum compiler optimizations and found that even on PC in a simple multi-threaded allocate-fill-verify-deallocate benchmark, my own dynamic memory allocation library was an order of magnitude faster than allocator in the standard library.
@@major__kong haha, to use a high level language, you need to be able to envision all the way to the bottom layer of code that gets generated. My son learned Matlab in engineering, he said it sucked. Python in his opinion was much better. Even as an interpreted language, if written well it can really sparkle. He had a name for people who wrote python and couldn't do it well. probably best I can't remember it. I speak as someone who learned macro assembler in Uni, but used high level languages throughout my career. I have a fond memory of being a TA in Uni and teaching a little FORTRAN. ah, best to keep that memory private.
I'm teaching a numerical analysis class this semester. At the request of the Physics department (not that I'm complaining) I'm using Fortran as the programming language. This morning when I showed a few examples, there were some flabbergasted looks and someone said, 'wait, it's that easy???'
Fortran isn't returning, it never left. It was biding it's time till the stars were right again :D
Yes, Fortran hides in the cold dark places to the scientific ecosystem lol. I am amazed that physics department told you to use it. Mostly they go with Matlab…
@@Drganguli or Python, my local Physics Department has changed over from MATLAB to Python now
I've had a "side hustle" maintaining a small Fortan code base from1990 to present. It's still the best for the numerical accuracy needed for scientific computing.
Great. Agree that it is great for numerical computing. As too many people now know python, languages not developed for scientific programming are being used for such tasks
Me too 😎
@@bjreacher6402 True but Matlab is mostly used in an academia. As its license costs are quite high for industry many companies have moved to python.
FORTRAN is back? Fortran has never been put aside.
True
I got throw the bs flag on thr play. Like most of you early 1980's was the first and last time I messed with it (Fortran77). Pascal, modula-2, some ibm assembly and Ada were the languages I used in the rest of my engineering program. After graduating in 1986, C was the only language I ever used until C++ in the 2010s.
@@davidmilner3575 Yes Pascal was great language but C got more traction due to its power in systems programming. Great that you used C and C++. Many engineers in academia went from Fortran to Matlab as they never got around to arrays which start with index zero. But now C++ is being criticised and the move is towards Rust and Go as these are memory safe
The Dark Side of C++ Programming Language!
ruclips.net/video/u8HBUC4vKPs/видео.html
@@Drganguli I agree with the dark side of c/C++ programming. I read about Rust memory safety but I've since retired and only dream of the glory days!
Dear sir, it would be great if you create a course on scientific computation using Fortron. Thank you
Good idea. Thanks
There are courses available on Udemy , on the cheap.
But one by him would rock, for sure.
@@gorka9020 there will be solid difference between udemy and sir's teaching, a legacy of research and debugging and probable mistakes during code developing that's something sir can teach better
"Fortron" has not been invented yet.
I started FORTRAN coding in 1967 as an udergrad at McMaster U in Hamilton Ontario. Later ('71 - '78) developed a model of the electric currents tied to the Aurorea Borealis for my PhD. Later still, developed FORTRAN code to model the currents in space measured by various satellites, and even later, worked on the code for COSPAS/SARSAT,again all with FORTRAN. Complicated and complex algorithms all, but pretty straight forward coding. Even managed to interface ORACLE DBM to Fortran, and build a website using only FORTRAN and Digital's DCL. Great times; great fun; very straight forward language.
Great!
I spent 15 years writing Fortran and have seen all the good and bad that it has. Fortran is not fast because of magic. Fortran is fast because of all the features it does not have. It can be optimized to death by the compiler in ways that languages with pointers, recursion and other modern features can't be. Every time you enable one of those modern features some part of the optimization has to be turned off. If you turn all those features on then all you have is a bad version of C++.
Fortran is fast when algorithms don't count. If a fancy algorithm can solve your problem quicker then you should use a language that helps you implement that algorithm. But some problems can't be solved that way. In cases where there's nothing else to do but millions or billions of calculations then you should use Fortran. That's how the pros do it. Don't be a language fan boy, use the language that's best for the problem at hand.
Thanks for your interesting comment
Another thing is all the allocation of memory is static so no chains of pointers to memory to slow things down. Also the variables are passed by reference, again making it faster. I would not use it to apply regex to xml; python is kind of king of that. But for some maths/sim code FORTRAN is hard to beat.
@@robin48gx Python is unbearably slow. I worked on a project where we tried to implement a small geometry library in pure Python for embedded systems and I couldn't believe how slow it was. At least a hundred times slower than C++. It's even a lot slower than other scripting languages like Perl.
On a side note Perl is the king of all regex. It has no competitors. Like C++ it's been upgraded a lot over the years. It's object system and scalability have been improved and it can be written to be understandable and maintainable. For summarizing huge amounts of text, like log files in large IT environments, it's hard to beat.
correct. The overhead of maintaining fancy data structures slows a language/compiler down - FORTRAN data structures are simple and clean, so the compiler/interpreter overhead just isn't there.
63 years of debugging and optimisation probably helps a lot!
I learned Algol 60, Fortran, and Basic 55 years ago while doing an Electrical Engineering degree.
Great
Me too. I learned programming in 1970 with Fortran and Algol. Mathematicians told me, in 5 years nobody will use Fortran. But 5 years later nobody used Algol. For the next 15 years, I programmed in Fortran and pdp11 assembly language.
For scientific electrical calculations, Fortran was perfect because of its inherent complex mathematics. which no other language had at this time.
@@gottfriedheumesser1994 yes but since so many people now know python they often end up doing numerical computation in sub optimal languages which were designed for some other tasks
I had a sign on my office wall, "A competent programmer can write Fortran in any language" - A few friends and I wrote an interpretive Fortran compiler for the IBM 1620 back in 1962/1963. An incredible learning experience.
Interesting.
Thank you for your service.
The 1620 was the first computer I ever programmed.
@@idahoengineer6649 Me too
About 35 years ago, I wrote Windows DLLs in Fortran for an engineering application I was working on. I had written the UI in Centura Team Developer. Although great for the UI and SQL database access, CTD was too slow for some of the heavy number crunching I needed to do so I used Fortran. Fun times.
Thank you for a presentation about a language designed for rapid, proven, scientific computing that is still used for that.
You are most welcome. But I should inform you that Julia is a strong contender for the future of scientific computing.
Should you learn Julia? ( a new scientific programming language)
ruclips.net/video/8jRyHBrwwTs/видео.html
Thank you. Started programming in '72. Fortran II on an IBM 1130 (i used a little bit)
Great!
I studied Fortran IV back in 1968 and wrote a couple of programs just before I graduated high school. It's crazy to see it make a comeback!
Great!
This brings back many memories for me. I took back to back classes in Fortran IV in 1976 (on punch cards) and 1977 (time sharing) as electives in my Electronics Engineering major. I fell in love with programming from that start! So I switched from EE to Software Engineering. I went on to learn BASIC, VB, Java, HTML, Perl, ASP, C++, PHP, and some C and ASM. Glad to hear Fortran is still alive and kicking!
Thanks for sharing your experience. Yes fortran has returned
Ah, Fortran IV and the horrors of Hollerith constants.
@@gracenotes5379 - I started in 1973 and have never written a Hollerith constant but I did see some. The problem wasn't so much the language but getting stuck on an IBM computer rather than DEC.
@@gracenotes5379 Who needed character manipulation in a math programing language. Mathematics is a language all its own! ;)
@@jrstf I remember having to count the characters in any character string I wanted to use and prefixing said string H as in 4HJOHN. I don't think the compiler I used back then had any support for quoted character strings. This was annoying, but not a real problem unlike, say, arithmetic IF followed by 3 line numbers, which made spaghetti code quite hard to avoid. Anyway, it's all nostalgia at this point. Fun times.
I used FORTRAN in 1982, when I started working at IBM TJ Watson Labs...then started in PASCAL and so on...and remember seen a FORTRAN patent congrats in the TJ Watson Library...looks like it is time to brush up on FORTRAN again. Love it.
Great! Pascal was big at that time as the language which used structured programming .
Yes Please! tutorials are very welcomr much has already been lost intrinsic knowledge is leaving the it world. Thank You Dr Ganguli
Sure. On my list of tasks now
I wrote my first FORTRAN program in 1965. I continued to use it for more than a decade while working for a civil engineering consulting firm. We used it for structural design and various simulations. We also used PL/1 when the task worked better with recursion, which FORTRAN didn't support. One thing I recall as being very useful in FORTRAN was multiple entry points into subroutines. As I moved more into writing embedded and firmware code I moved more into assembly and C, but I still have fond memories of FORTRAN. I also tinkered with RATFOR, but never used it in a serious way.
Great!
My father also used it in 1960s in IIT
@@xdx74714 great! Which iit, if I may ask?
Awesome Sir. Thanks for bringing back the importance of FORTRAN. I remember subroutines of the book by Prof J N Reddy on the Finite Element method which has many FORTRAN codes.
Yes it is nice to know that fortran is going strong even after many decades.
I think it is better to learn matlab particularly because of its very good plot, image manipulation routines. Furthermore matlab supports neural network and other AI libraries.
Lastly, the reason one should learn matlab is that your approach to problem solving is changed namely: develop a model, write code to test it and tweak your model until you get your desired results.
Make Fortran Great Again.
Ha ha
Make Algol 60 Great Again, seriously Algol60/Pascal/Modula/C all good, I'm old too
🤣
*Building science and math based programs was super easy in Fortran, built in imaginary numbers made it special!*
I fail to understand why Java didn't include complex numbers.
The complex number calculations in Fortran is way easier than in C/C++
@@cli4g67graS Exactly!
❤
My first programming courses were at the University of Waterloo in 1970. At that time, Waterloo was using its own version of Fortran, called WATFOR (and later WATFIV). Your video brings back pleasant memories. Thx!
Amazing! Thanks for sharing your memories
Like your explanation. I learned FORTRAN 77 many years ago.
Thanks
I went to college for an engineering degree BSEE in the late 60s early 70s.
I wrote exactly one program in Fortran for the IBM 360 on cards to solve a matrix.
It worked the first time and that was the last of my computer use and programming until the 1980s.
Now I use a computer all the time, and do just a little programming; but mostly it is admin and configuration in what I do, even now in retirement.
Great!
My first language in 1975, Honeywell Fortran D. Classroom had a 29 keypunch in the back. Sent cards across town to the H200 every night, got printouts back next day. Exciting nonetheless!
Great
Great overview. I work in numerical weather prediction with models that need to be run in a HPC environment. We often use python to drive the models, but the models themselves are always built with Fortran.
Down memory lane! I learned Fortran IV as a professor at U of Maryland to develop programs for student test grading and analysis. I remember carrying boxes of punched cards to the computer science center and passing them to the white coated techs to run on the Univac 1108. Then returning the next day to pick up my stack of output. Since then I have used C, C++, Python, Java, VB and other "modern" languages. I still have fondness of the clarity of Fortran, but did not miss GOTO! Thank you for the video! I just for fun I'm going to look into current Fortran. It would be interesting to see how it does with web based data sources. At least now I won't have to worry about dropping a box of cards!
Very interesting
@daveoatway6126 The mention of U of Maryland and Univac triggered some memories. I started my MS in ME at U of Miami, Coral Gables in 1982. The mainframe we had was a later model Univac, I forget. No punched cards. A Hazeltine dumb terminal, a 300 baud modem with acoustic coupler, and a black rotary dial telephone is what we used to connect to the Univac, shared among half a dozen grad students who had their offices in one of the labs in the basement. I remember the command to invoke the line editor was @med. med was "Maryland editor", developed at U of Maryland. All the assignments for classes like Numerical Methods, Computational Heat Transfer, etc. were programmed in FORTRAN 77. It was so much fun learning. I still have the program listings for everything I did at the university.
Fotran is used in finite element analysis therefore extensively used in structural and road designs. Another language I used in roads and sewerage system design were some variants of LISP. Thanks for this.
Btw, Fortran was used in the first mainframe computer in Asia (Sri Lanka), and I used it to design a spiral staircase to a university (where our current prez studied). It ran for 45 minutes and gave me a stack of punched cards, two in thick and some printed results. I used it for my professional qualification, the MICE (London).
Amazing! Thanks for sharing your valuable insights and experience.
@@Drganguli
The guy who set up and started using it was my lecturer in the Uni. Has PhD. from Imperial College and Contemporary of Bjan Stroustrup. I tried his book on programming Fortran and gave up. But AutoLISP opened the horizon as it was interpreted language you could see the results then and there on AutoCAD. The easiest way to get a hang of programming. Then came java in 2000. And here I am developing apps for Play Store on the Android platform which I started during Covid.
All the best!.
@@AloysiusHettiarachchi Great!
I learned how to program with FORTRAN in the '80s. (Implementing numerical analysis techniques, simulations with SLAM, and graphics programming)
Very good
Wow. This caught my eye and it really is a trip down memory lane. I did scientific programming in Fortran in the 70s- things like a Fast Fourier Transform for spectral analysis. In defence science Fortran was embedded in all sorts of things. I even did a truth functional logic schema validity testing program based on Polish notation.
Amazing
Thank you so much Dr. Ganguli for making this video! I used fortran in my masters thesis which was a simulation project and now in my phd I am using Ansys Fluent which involves C coding. I also did high temperature experiments in my phd work with which I have been partially able to validate the Fluent simulations. Information like this video are very helpful when seeking research oriented jobs in the recession. Please provide any other such information about skills that can be helpful for phd students applying for jobs.
Sure. Hope you have seen these videos.
How to be productive and marketable as a PhD?
ruclips.net/video/uDGjBJcCaE0/видео.html
How to go from PhD to an Industry job?
ruclips.net/video/CSy14_G21IA/видео.html
Ace the industry job interview as a Master or PhD!
ruclips.net/video/RNQ94voH2eo/видео.html
@@Drganguli Thank you so much again Sir for these links! I did not watch these before 😅, I was mostly watching the videos on post doc applications.
How to become an industry research scientist? (as a PhD)
ruclips.net/video/7pyfIwb9LNc/видео.html
Resume versus CV to get industry jobs after PhD
ruclips.net/video/hbSL-firA9U/видео.html
Which soft skills can get you a job?
ruclips.net/video/9UXHsIVDNgg/видео.html
@@Drganguli Thank you so much again Sir.
We wrote two interesting programs using IBM Fortran before they discarded it in favor of PL/1. All data for the IBM 360/370 was entered via punch cards. The first program, "General Data Entry" was an editor allowing 80 column text entry that could be dumped to a data set (DD) serving as data input to some processing program (instead of punch cards) or as input to the second program, "NSP Basic". This was a basic interpreter than could output to the IBM 2260 terminal. This program compiled the Basic code to an RPN stack which was then executed. Looping was a real challenge, but it was solved.
Very interesting. First time I heard a situation where fortran gave way to pl-1. Mostly it was C which was used in place of fortran. In a class we took at the university of Maryland for numerical analysis the professor insisted on C programs and would not take Fortran. This was in 1991. It was hard but we figured out how to write abstruse code using pointers in C.
The R language is a wrapper for Fortran 😮
@@CaribouDataScience True it can use fortran routines and is basically written in C, Fortran and R.
Well written! The core functions of R are written in GNU Fortran.
All R texbooks mention that it was derived from S language. How is it then linked to Fortran?
@@caty863 R's core functions are written in GNU Fortran.
S has defined how the R user calls a linear regression. Under the hood, R then calls a Fortran function for the matrix manipulations involved. In R you do not see the Fortran the same way you do not see the engine of the car you drive.
I as well learned Fortran many years ago (1981 - Fortran 77) and for whatever reason the computer language just made sense so I loved it. I would love to see other videos on this topic as I would love to relearn it. Also I consider Fortran my first language and English as my second language :). Loved your video on this topic.
Thanks
I taught fortran and pascal to my engineering students from the year 1986 to solve numerical method problems on dos os
Great. Fortran was the widely used language at that time, and Pascal was being suggested as the structured language that people should use. But C came along and became the other popular language.
Programmed Fortran 2 in June 1960 on an IBM 1620 while studying undergrad physics. Used later versions of Fortran until middle of the '90s as physics researcher.
RONC
Great!
Wow, what a surprise! I first used Fortran back in mid 80’s, and very extensively in early 90’s when I worked towards my PhD in Mechanical Engineering. I used it for dynamic simulations, together with MATLAB. Very interesting time!
Great!
I started learning FORTRAN in high school in 1960. I still use it.
Amazing!
Absolutely interested ( personal project doing MCMC and MCTS ). Also thank you for book recommendation, always love to have something as reference and even to just read before bed!
Thanks. The tutorials may interest you starting from
Fortran Programming Language, Basic Concepts: Tutorial Lecture 1
ruclips.net/video/6l4yqTR6jq0/видео.html
I too started my software career in 1978 with Fortran IV and as time progressed ended up learning and programming in COBOL, PL/1, MODEL/204, SQL, and finally ended up logical and physical designing of Databases and programming full screen as opposed to line by line mode. I finally retired as a Director after 38+ years of software development, project management for a USA multinational company! Never thought I would ever hear FORTRAN coming back! Jai Bharat!
Great
The first railway reservation software was written in FORTRAN. 😊
Interesting
A friend of mine is an astrophysicist. Simulations of charge movements inside neutron stars he wrote were done in Fortran. Of course modern FORTRAN that is not purely for computation but also has access to graphical capabilities of machine.
Great!
I learnt a bit of Fortran (most likely Fortran 77) out of curiosity many years ago for numerical analysis class. It wasn't a requirement per se, and after all the lecturer mostly explained the algorithms using Matlab.
My impresssion so far is unlike Lisp, which is also used outside computer science research, Fortran is practically limited to science and engineering folks.
Yes without doubt it was only used for scientific computing. But with C and C++ declared unsafe some people are considering fortran again.
www.techrepublic.com/article/tiobe-index-language-rankings/
Yes, but this is a very big field and possibly has some of the most heaviest number crunching on the planet.
Because Fortran is doing what it is supposed to do. General purpose languages can do nearly everything smoothly, but not necessarily in the most efficient manner unlike domain specific languages
PDP-1170s and Fortran, Basic, Cobol and Machine Assy in college what great memories. Thank you man.. :)
My first language was FORTRAN in about 1982. LOL, I remember using the go to statement.
A little later I took computer science 101 and 102, which at that time the big thing was Pascal and "structured" programming. The main take away of structured programming was to not use go to statement and I remember that being pounded into us.
To me, structured programming is the same as procedural programming. Let me know if I'm wrong about that or if there are subtle differences.
One language that looks very much like Pascal is Structured Text for PLCs. I believe the name comes from the structured paradigm.
Just for fun or a hobby, I'm interested in learning modern Fortran.
Yes Pascal was being taught around in the 1990’s as the structured language. But maybe it was too good to last in the real world and C took over
I learned Fortran IV in 1975 while studying for my BS, ME. I still had trays of punch cards until 2022 when I made my last move. Sure beat heck out of COBOL.
Yes but cobol has also survived but it’s not coming back..
yup! great to hear about this helpful news!! personally, I would use a java GUI. then connect this to a logic core Fortran Node! I would bet most folks don't realize Fortran is a pure logic core!
and Java is the product for communications & secured certificate identities! it's so helpful to hear about U'r past experiences! thanks!
Thanks for your comment
I remember we did our Graduation project of Load Flow Analysis using large matrices in Fortran on DEC 2050 mainframe in 1985-86.
Amazing!
I am interested! I want to learn everthing about FORTRAN, how to perform mathematical operation, summation, derivative, integrations, linear algebra, solving TD-SE, TISE and so on as much advanced level as possible.
You can check out the book by rajaraman I have shown in the video. It will help a lot.
@@Drganguliis there anything fortran can do which mathematica cannot do?
@@Tech.Librarymaybe free of cost? Although Raspberry Pi offers it freely.
It can run on each of our students computers for free and it will be there for you for the rest of your life for free, no matter whom you work for or not. That makes learning Fortran, C, C++, R, Python and Julia so much more worthwhile.
I began my computing access with Fortran in the year of 1976. In that time the structure used were the flowcharts with rectangles, circles, etc. My class was the first one to move to logical algorithms instead of flowcharts.
Don't know about FORTRAN but the presence of the beautiful flowers in the background as well as Dr Ganguli's calm voice made me watch the entire video and a new subscriber to the channel.
Thank you so much
It was the first language I wrote in back in the late 70's. Basic came from Fortran, and Python is a dialect of Basic.
Fortran was dormant for quite some time. But it is now fully back with strong features
Yes in fact it is being used in machine learning
@@Drganguli
I learnt FORTRAN, way back in 1970. I used it later, for a project in machine learning (for PG).
it was never dormant, you were simply unaware of it if thought it was dormant.
RUclips just fed me this vid. I started to learn Fortran when I was 14 in 1968. Nice to know it grew up!
Amazing!
3:57 Julia mentioned, Julia mentioned. Yayyy! Go strong Julia. U'll win.
7:45 Linux mentioned. FOSS for the win. Yayy. These things are so awesome to hear coming from a fellow countryman.
9:14
Should you learn Julia? ( a new scientific programming language)
ruclips.net/video/8jRyHBrwwTs/видео.html
In 72, I started programming in Fortran for a room size IBM machine. I gave up since the data in/output was by punch tapes. The reacher restricted the iteration of programming because of the high mechanical failures (punch type writer) and consecutive high cost of maintenance.
I gave up ( waited for micro processors and teletype machines in hex code).
It is important to mention that the language has continued to evolve (the latest standard is Fortran 2023). Programs written in modern Fortran can be much more concise and understandable than those written in older versions of the language.
In 2010, Eugene Loh wrote¹, in ACM Queue, about programmability studies undertaken when he was at Sun Microsystems, as part of DARPA HPCS (High Productivity Computing Systems). They had a small sample of HPC (High Performance Computing) programs written in old Fortran which were rewritten (without annotations, like OpenMP/OpenACC directives) in modern Fortran by a competent programmer.
The result was very interesting: a significant reduction in lines of code (factor 11x in one case, 10x in a couple of cases; the lowest 3.6x) against a zero performance reduction in one case, within 2.7x in 3 other cases and with an outlier with a variable factor of 2x-6x.
Even one of the maintainer of the original code was surprised by the succinctness and readability of the rewritten code.
Of course, "modern" Fortran in those years is not so modern today (I think the experiment was conducted around mid 2000s: Fortran 2003 was the latest standard, Fortran 90/95 is mentioned in the article). Today's compilers probably do a better job at compiling old and new features of the language.
_______________________________
1) Eugene Loh. 2010. The Ideal HPC Programming Language: Maybe it’s Fortran. Or maybe it just doesn’t matter. Queue 8, 6 (June 2010), 30-38. DOI: 10.1145/1810226.1820518
Very interesting. Thanks for the comment
I started with Fortran IV on punch cards at university in 1969 and ended up writing code for aircraft aerodynamic design on a teletype terminal talking to a PDP 8 a mile down the road in the 1980's. Thanks for the update..
Great
I used to punch pre-perforated cards with a toothpick - until I was allowed to use a card-punching machine. Started with Fortran 4. and sent punched cards ro Imperial College London for processing.Taught BASIC at school and had a teletype connected by old-fahioned modem to Glasgow Honeywell (used before 8am because calls were dearer after that).
@@arthurcrown3063 Amazing!
I'd like to see a Fortran tutorial. I have Linux on my laptop so compiling would be no problem. Thank you.
Thanks for the suggestion.
I'm tempted to download and try the new versions. I had a lot of fun with Fortran IV back decades ago.
Yes you can do that and start writing programs
Intel Visual Fortran is now free.
That will be a great help Sir if you create a tutorial for Fortran 90 and above versions. I am currently struggling with sin series expansion program, also trying to learn gnuplot to graph the output.
Sure this is in my list of tasks now
My first computer language was Fortran (on CDC 6400) as a freshman at UC Berkeley 1968. My main computer language used as a student.
I had a cart to carry all the boxes of punched cards of Fortran code to the computer center. I did circuit simulation.
Finally got access to Unix as a graduate student and writing c code. So much easier using a real text editor.
True.
Thanks for your video! But I want to point out an incorrect assertion. At roughly 5:20 into the video you have a super that appears on the screen which states "No class in Fortran!" This is incorrect. The Fortran 2003 standard implemented type-bound procedures in derived types. Derived types with type bound procedures is the Fortran equivalent to a C++ class. Derived types with type bound procedures allow users to create class member variables and methods. Those member variables and methods can be defined as public, private, or protected just as in C++ classes. Using Fortran derived types with type bound procedures can enable encapsulation, static and dynamic polymorphism, and inheritance just as C++ classes do. The only difference is that in Fortran the defining keyword is "type" instead of "class" as it is in C++. I teach an introductory scientific computing course that teaches both modern Fortran and modern C++ and have the students doing OOP in both languages.
Ok thanks. Very I interesting
I had to learn it in 1987 because my project was in DSP. All the code examples around that time were in Fortran. I began to like it (I was in a pro ADA/Modula-2 scholarly environment at the time where FORTRAN was frowned upon). Also after college it helped for work in flight sims and professional astrometry. Its a bit clunky BUT it really works well!
True
Now you got me intrigued about Fortran. I decided to learn Pascal instead, back in the day. Maybe next year I will see some video about the comeback of Pascal 😂
Ya I learnt fortran as my language but by the time I was in graduate school Pascal was being taught as the language which showcased how programming should be done. But Pascal was too perfect and could not compete with C. People loved pointers and C and Pascal with its best practices was ahead of its time, it is still a better language to introduce programming than C and C++ in my opinion
When I was at IBM in the late 1970s, FORTRAN was largely a thing of the past but PL/1 was widely used. I got drawn into an APL clique within the company, due to the influence of a close colleague who was an APL guru and advocate. I never met him but other members of the clique knew the language's founder, Kenneth Iverson.
Thanks for sharing your amazing experience!
Should discuss calling a C program from FORTRAN and calling a FORTRAN program from C.
Good idea
Such language agnosticism was seen as a hopeless, unreachable nirvana years ago. And it's easy now - so, imho, you're right to highlight this. The reality is that Fortran is delightful for numerical/scientific coding, but it's a nightmare for user interfaces. Nowadays, it's possible to use the appropriate high level language for the task at hand, and add hooks to allow cross-compilation. Python does a decent job on 'internal wiring', but cross-compilation is significantly faster.
Gosh great memories. I learned FORTRAN 4 in 1976, and then used FORTRAN 77 a lot until 2000 or so. In 2010 I helped support a very old computer model in FORTRAN 4 for graduates. I also used ALGOL 58 and CORAL 66 of a similar era.
Great
Fortran never went away....
True but it’s growth over the past year is interesting
I did some FORTRAN-68 scientific programming for NASA on a UNIVAC-1100 way back in 1981 and would be VERY rusty now. It’s nice to see it returning as a useful tool.
Yes
Wow, fantastic! Memories of l964 and the KDF9 mainframe at Birmingham Uni coming back. I even have a couple of punch cards tucked away. Those were the days--and I was a GLC user in Medical Biocem. Then the commercial lads took over & produced on stream computers to record analyses. I don't miss the breakdowns of the KDF9.!
Amazing!
Sir. Please organize a tutorial in fortran. Expect at the earliest.
FORTRAN is great for performing lengthy calculations that do not need recursion, pointers, or higher level functions including AI. FORTRAN was designed to be a champion number cruncher and it still is, even in modern times. On the down side, FORTRAN is much more critical of tiny errors such as placing a comma or period in the wrong place, than higher level languages. Even the tiniest error can completely crash an entire program, and the error can be very difficult to locate. More modern languages are easier to debug.
Yes you are right.
Yes i would like you to do some tutorials about Fortran
Ok will do a tutorial soon
I started out in FAP on the 7090 then FORTRAN II. FORTRAN IV came along in a couple of years. Arrays were stored backwards because the 7090 index registers subtracted from the address. The if(i) was for the CAS (compare accumulator to storage) instruction which jumped +1 +2 or +3 depending on < = or >.
Amazing!
Fortran and cobol twin brothers of my career
Great!
Some Fortran tidbits: Also, scipy as well as numpy both have Fortran and C libraries in them. You can do (if for some horrible reason you want to) OOP in Fortran. Fortran matrices is columnar major, similar to Mathlab and several other languages geared towards science and eng., this can trip people up if they are used to C based languages. By default, Fortran indexes starting with 1, as opposed to C (and many other languages), however this can be changed by the user to start at 0.
Thanks. I really liked the fact that indexing starting with one in Fortran. Took a long time to get used to thinking in C.
Yes, well, for me it is reasonable that Fortran is back, because: a) scientific computing never went away, b) big-data-science is back (LLMs and so on) c) Fortran has seen quite a huge overhaul over the years (gone are implicit names with " implicit none"). d) Python does use it intensively, either in NumPy or FFI, where you can put new Fortran code in. I did not watch the whole video, though.
I/O still is crutchy, but with other languages like Python contemplating its weaknesses, it might be a win-win.
Yes matrix operations needed for ML are suitable for Fortran. In most universities Matlab replaced Fortran but it is slow and not easily available for companies. Julia has not gained traction yet and lot of old simulation codes in Fortran are being used to create ML models.
Back 1970 our prof(we were a physics majors) asked why we were not using our computer acount, to which we answered we did not know how to program. So he took two of our physics labs(8 hours) and wrote a demo program in fortran relating to viscoscity in glycerin which actually didn't work. So began our programming life which included me crashing the shcool computer twice(assembler not Fortran), I did a good job they had to reinstall the operating system.
Great!
I was introduced to FORTRAN during my electrical engineering degree 1976 to 1979. We used punch cards….
Wow
Fortran is still very popular in physics, especially for simulations in astrophysics and condensed matter physics. Lots of legacy code, but new software is written to this day. I used Fortran myself in my PhD research projects (late 2000s and early 2010s) and still use it from time to time.
Great
Mathematical modelling of all kinds is being done with Fortran. The language was invented for this purpose.
Really? I did Fortran on an IBM 360 (batch process, punched card) in 1979 or 1980. Thanks
You are most welcome
@@Drganguli oh wow, thank you for the response. Is there a Fortran compiler for a Mac OS? Thanks again and more success on all your endeavors
GNU fortran is used on Mac OS.
@@Drganguli thank you, sounds like a gcc option - I’ll check it out
First (and only) computer programming course I took (1968) was Fortran 4. It was the first exposure I ever had to computers. I remember I was struggling in Chem 1B at the time and wrote a very simple qualitative analysis program using sense switches on the computer. I showed it to my chem professor and got a passing grade in the course.
Great!
COBOL is also a huge amount of legacy business code. And Zero indexing is a curse. Yes, I know they have vague reasons for it, but they're baloney.
True COBOL is a very old language. I do know one COBOL programmer though.
Interesting! My very first programming language was Fortran, back in 1971! I learned just enough of it to do a special program for an extracurricular class at school. Although I was a programming professional, never used Fortran for work.
So what language did you use?
@@Drganguli
Mostly COBOL and C#. With some Visual Basic.
Fortran is one language that got its formula right. It focuses on one thing and tries to be the best at it. It doesn't try to be a general-purpose language.
True
Wow I didn't realize Fortran was still used much. Thanks for the update.
Fortran and COLBOL code is gonna be around running in "the wild" for decades to come.
If a ranking don’t have JS and Python in #1 and #2 position, there’s no credibility to that ranking .
To be honest I despise JS, but can’t deny it is now used almost every web applications, a lot in mobile applications , and even in academia
Python is always number one nowadays as it is highly popular. JS is always in the top ten. But as you say, not many people like it.
JS has never been bigger than C or C++, the languages every compiled OS and system level package (including those browser engines that run JS) has been written in for 40+ years. Only in the last ~5-10 years have any alternatives gotten off the ground at all (Rust) and they’re still obscure niche newbies in comparison.
So Python, C, C++, JS all jockeying for the top 4 spots makes sense. Before C and its descendants took over, it was Fortran and COBOL that were the big programming languages. Fortran is really the only survivor from that early 50s-60s pre-C era of computing where computers were just coming into existence in their modern form (e.g. things like a recognizable operating system, programming languages and high level code not tied to specific machines). JS occupies a role akin to C’s for the web, so it’ll probably have similar longevity, but it’s unlikely to ever be #1 simply because of where it lives in the software stack.
@@zackyezek3760 Thanks for your detailed comment. It is amazing that fortran or coming back
In fall 1966 our high school in [in Switzerland] started an introduction class to computers in cooperation with local university.
So I had the occasion learning Fortran in 1967, run first programs on a Univac III using punched cards with the round holes .....
Have been teaching Fortran later at university, wrote my last Fortran programs for industry applications in 1991.
Then main activity shifted to management ........ .
Great!
Imagine Fortran + MLIR
Interesting
Yes Julia is the modern fit, love it. Engineers and Mathematicians see the first cell in a matrix as 1 but if you graph it out then 1 is the first line off the zeroth line. When a normalized fractional index is introduced we now have an index between 0 and 1. That is where I parted from cardinal to ordinal index schemes. That is one thin Fortran gave us a simple way to work in a cardinal integer universe. I still have a copy of Fortran for PC-DOS.
Great
Reality is Fortran killed my computer learning interest when the institute does not have a computer and Fortran was included in the syllabus
Well in the 1980’s when I did b tech in iit Kharagpur we studied fortran without any computer. We even wrote code on papers and never compiled them but these got graded.
How to Learn to Code without a Computer?
ruclips.net/video/WmAKzEPPQy8/видео.html