Posted on 07/06/2015 3:51:37 AM PDT by markomalley
Fortran: Where general-purpose programming began.
The list of high-tech tools in continuous use since the early 1950s isn't very long: the Fender Telecaster, the B-52, and Fortran.
Fortran (which started life as FORTRAN, or FORmula TRANslator) was first created by IBM programmer John Backus in 1950. By the time John F. Kennedy was inaugurated, FORTRAN III had been released and FORTRAN had the features with which it would become the predominant programming language for scientific and engineering applications. To a nontrivial extent, it still is.
Whereas COBOL was created to be a general purpose language that worked well for creating applications for business and government purposes in which reports and human-readable output were key, FORTRAN was all about manipulating numbers and numeric data structures.
Its numeric capabilities meant that Fortran was the language of choice for the first generation of high-performance computers and remained the primary development tool for supercomputers: Platform-specific versions of the language power applications on supercomputers from Burroughs, Cray, IBM, and other vendors.
Of course, if the strength of Fortran was in the power of its mathematical processing, its weakness was actually getting data into and out of the program. Many Fortran programmers have horror stories to tell, most centering upon the "FORMAT" statement that serves as the basis of input and output.
While many scientific applications have begun to move to C++, Java, and other modern languages because of the wide availability of both function libraries and programming talent, Fortran remains an active part of the engineering and scientific software development world.
So how can you get your hands on Fortran? It's actually pretty easy. This isn't an exhaustive list of all the Fortran compilers in the world, but rather a survey of some of the packages easily available to those who want to learn the language or use it in their own projects (plus a couple that you're likely to run into if you land that Fortran programming job you're hoping for).
If you're looking for a programming language in use on everything from $25 computers that fit in the palm of your hand to the largest computers on earth you only have a couple of choices. If you want that programming language to be the same one your grandparents might have used when they were beginning his or her career, then there's only one option. Welcome to Fortran, the once and future language of scientific computing.
GNU Fortran is the primary open source version of the Fortran compiler and is widely used both in and out of academia. Because GNU Fortran depends on volunteers, progress on any individual feature or host architecture can be slow, but progress is made and GNU Fortran is available on many, many platforms, from "big iron" to single-board computers like the Raspberry Pi.
If you're just getting started in Fortran and are looking for a single compiler that you can learn and apply broadly, GNU Fortran is hard to beat.
Oracle Servers spring from the family tree that was once Sun Microsystems -- a major platform for scientific and engineering applications. It makes sense, then, that the Oracle Solaris Studio would include a Fortran compiler. The Solaris Studio Fortran compiler still sees heavy use, even though the studio also includes C++ and C compilers.
The Solaris Studio runs on, and compiles code for, both Solaris and Linux, and so must be considered one of the heavy hitting Fortran compilers in the market today.
IBM is where Fortran began. The IBM Fortran family now includes four members, with separate compilers for z/OS and z/VM, AIX, Blue Gene, and Linux. If you're a programmer "of a certain age" you probably learned Fortran on an IBM platform. If you haven't yet attained that certain age you may well encounter IBM Fortran in a scientific or engineering career. The good news is that IBM Fortran is standards-based, so even if you learn Fortran on a compiler named for a wandering animal of the African plains, your knowledge should easily transfer.
HP has a long history of applications in the scientific and engineering fields, so it's no surprise that HP Fortran is still an active family of compilers on a wide variety of platforms. The HP Fortran Home shows compilers for every current HP platform, from Windows up to Tru64 Unix Alpha, and one serious legacy system -- remember the VAX? The breadth of HP's offerings mean that you can take the skills from one platform to another as you move up and down the hardware power scale, and the legacy VAX compiler should allow you to move into shops that are keeping Applications of Historic Significance alive with very little additional training.
It's in Intel's best interest to make sure that applications running on their processors do so quickly. That's why the Intel Fortran compilers are optimized for high-performance computing environments running under Linux, Windows, and OS X operating systems. The Intel Fortran compiler is especially good at highly parallel applications. That's a good thing, because trying to figure out parallel operations on compilers that don't include superb parallel optimization can make your head hurt.
So you've set up your Raspberry Pi and now you want to see just how close to a supercomputer you can come with a system in an Altoids tin. A Fortran compiler isn't included with the Raspbian Linux distribution that comes on the Raspberry Pi systems, but it's easily downloaded and applied by any one able to get the system up and running in the first place. Fortran is a great match for the Raspberry Pi, especially in applications where you're trying to create a low-cost high-performance computer. There are tons of libraries and routines available in the scientific world, so the Raspberry Pi with Fortran can be a great place to start a young citizen scientist on a road to discovery.
Want to take Fortran with you no matter where you go? Then Fortran on Android is the way to go. This is a small compiler that is relatively complete in the basics, though it obviously lacks features regarding high-end I/O and huge data structures available in some of the more mainstream compilers. This IDE also includes C, C++, and more, so it's possible to write applications that make use of libraries and functions from many different sources. You probably won't write the world's highest-performing application with this package, but you'll be able to spend your time on the train home writing code rather than trying to level up in yet another fruit-smashing game.
There are, obviously, many more Fortran packages out in the world. Most platforms have their own Fortran compiler, though iOS is a notable exception. The good news for those who love the language is that development continues: The J3 Fortran Standards Committee is working on the next standard, tentatively titled Fortran 15.
If you're already conversant in Fortran, then the continued availability and ongoing development of the language is welcome news. If you're a Java coder looking for a new tool to solve problems, then Fortran could make an interesting addition to your toolset. And if you're just looking for a neat way to express solutions to numerically intensive problems, then Fortran has got you covered.
Where do you fit into the Fortran world? Was it the first language you learned? Are you just curious about the way the "old-timers" did things? Let me know your Fortran story.
I had an IBM-PC so early it still came with the (never used) cassette port for mass storage. 16K soldered to the motherboard, DIP sockets for adding 3 rows of 16k chips to get you all the way to a whopping 64K!
And yes, I realize this is nothing in the way of early computers.
I used the PC’s interpreted BASIC to do a graduate level engineering numerical methods class. It kept me from having to drive down to the computer center, where I could have used FORTRAN on the CDC Cyber. The PC was slow, but I’d get things set up and running, and then let it run overnight to converge to a solution. It beat getting in a car!
Technically, I think they were PR1ME, not PRIME.
;-P
Oy vey!
You mean Java forever baby, since .NET does allow for manually managed memory headaches as well:
https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.allochglobal.aspx
Allows for.
No one should need to do that.
I learned FORTRAN in university in 1990 when I was still in engineering school. I hated the textbook and the instructor was useless, so I bought the Watcom FORTRAN reference manual and taught myself, showing up in class only long enough to get the weekly assignments.
I was in the mechanical engineering department. I wish I had had the option of learning C instead, like the electrical engineers did. I would have had use for it later in life. Never had a need for FORTRAN again.
I am with you there !
Ah, a kindred soul. I, too, learned FORTRAN II on an IBM 1620 in college. After graduation I programmed FORTRAN IV on an IBM DCS (direct coupled system) which was a 7094 running as a slave to a 7044 which handled the card readers, punches, line printers and tape drives. All mass storage was on 800 bpi magnetic tapes. No, friends, disc drives were no where to be found.
The 7094 had 36k words (36 bits/word) and the code was in BCD. Not much power for a several million dollar set of cabinets that filled a room and ate A/C.
Mine was FORTRAN 4 (77?) on an HP9000, happily I moved on to C about a year later. C was (is) a great programming language. I like Java too but I always remember that "strong typing is for weak minds", lol, C let me get down and dirty with data stacks that would cause a Java compilers to self dis-struck.
Cool!
in about 1960 I had two computer courses in engineering school - an elective and a required course.The elective? FORTRAN.
The required course? Analog computation.
Now we’re getting nostalgic.
Fortan 77 was my 2nd language.
Ah, that's very cool. Granted, they're not used widely these days, but they still have applications.
I never got to take an analog computation course, having entered college in 1970.
But in 1979 I was designing a variable-speed/variable-voltage 3-phase inverter for induction motors in the 5-20HP range. The heart of the control system was an integrator/differentiator stage with second-derivative feedback. It had to operate very smoothly with high precision to ensure system stability. The microprocessors of that time weren't fast enough at precision math to make the control scheme work. So after the initial calculations, the uP drove a D/A converter to feed a three-op-amp analog computer that implemented the integrator/differentiator stage. The output of the I/D stage was A/D converted back to continue the digital control algorithm. Worked quite well, and had the additional advantage that we could hang a scope probe on the I/D op-amp pins to see what was going on during debug.
Have you ever used one of these modern PCs to run software without Microsoft bloatware? Using an old DOS sort, which is pretty crude, I sorted a file containing two million movie titles/descriptions in under six seconds. I thought the process blew up until I saw the output file.
I’ve got to take the kiddies shooting soon, before July expires.
In 1978, we were using Fortran, which was not fun, but by far the greater hassle was fighting 16-bit address space on the DG Nova 1200.
July does not expire. It perspires.
The language you learn is irrelevant. The point is that you learned a language. I’ve coded systems in almost 2 dozen languages over 30 years. I’m not an expert in any of them but I can write programs in all of them.
I still have to dabble in COBOL and C because we have legacy code in them but I also write in Groovy/Grails because we are writing a new system in it.
No wonder I drink so much.
cool. Granted, they're not used widely these days, but they still have applications.The required course? Analog computation.
Yep. There was a nice little (80 potentiometers, IIRC) analog computer in the ground station, and the operator was always glad to see me because there werent too many of us who would come up with uses for it.Ah, to think what I coulda done with that if Id had any inkling of Chaos Theory back then!
Nothing practical, of course . . . but all it would have taken was a little curiosity and you coulda written a paper on nonlinear system behavior that would have been cited quite a bit.
C is, and always will be, king of embedded programming. It is by far my favorite language. Like yourself, I have used quite a number of computer languages. I have even written in assembler for many processors, starting with the IBM 1130 and 360 series. Minicomputers were a blast, with the PDP-11 being the pick of the litter. The 68000 micro was like a super-set of the PDP-11.
Ah, the old days.
FORTRAN was the first language I learned, but assembler was the first for which I was employed.
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.