4 ms·
That's the point, Fortran today is a DSL for computational science, that's it and mainly what it focuses on today. It is not (if it ever was) a general programm
by noobermin 4y ago
That's the point, Fortran today is a DSL for computational science, that's it and mainly what it focuses on today. It is not (if it ever was) a general programming language.
- pasttense01 4y agoRemember C did not come out until 1972. So in the 1960s your primary options were Fortran, COBOL and assembly language (there were lots of other languages but they were relatively minor languages). Considering the major defects of assembly language there was a significant amount of use of Fortran as a general programming language in conjunction with various libraries.
- tsimionescu 4y agoVarious LISPs were a major contender in those times, with various companies selling their own flavors. LISP was the major high-level programming language used for writing operating systems - before C, other OSs were basically written in assembler (though there was at least one written in COBOL, BLIS/COBOL, which seems to have been more or less contemporaneous with C's early life). FORTRAN was always dedicated to scientific computing, I don't believe it was ever used for system software, so it is a bit apples-to-oranges.
- skissane 4y ago> FORTRAN was always dedicated to scientific computing, I don't believe it was ever used for system software, so it is a bit apples-to-oranges. Early versions of PRIMOS used FORTRAN as a systems programming language, although later versions switched to Prime's proprietary PL/I dialect (PL/P) and Modula 2. The reason for the somewhat unusual choice of FORTRAN as a systems programming language? Prime's founders were experienced FORTRAN programmers, so it was the natural choice for them, and in 1972 alternatives were far less established (C was only just being invented)
- rjsw 4y agoI think PL/I has more of a claim to have been used for writing operating systems before C than Lisp.
- noobermin 4y agoI feel like in the history of software, "computational science," while now a niche was then one of the major users or computers in the early days in addition to business and then eventually, computer scientists. That way we (I am a computational physicist) were one of the major users of large computer systems as they replaced computers, that is, actual people who sat in a room manually computing things. It was only natural then in a certain sense one of the first high-level programming languages were suited for scientific applications like calculation and simulation. I think since f90, modern fortran still is a language well suited to that domain while removing a lot of the cruft (like requiring each line fit on a punch card, things like that, ugh), although the landscape of computing has changed dramatically since with scientists now being relegated to being a niche of computing as a whole. So fortran in that sense is more like a DSL today rather than one of the major use cases for computers, but by luck and history has a lineage with literally the oldest high level language. This is thus more like a historical accident than being something contingent for me. I think the fact that it is suited to computational science is a result, not a cause of it being for scientists (it was designed for us, we didn't find it and build it up or something like that), and the strict aliasing, well, I feel like that's just a lucky break that it was and thus easily optimizable...that and cray, HP et al did make supercomputers to run codes that scientists liked, and thus their architecture and optimizations worked well with fortran codes, and thus the development of both are clearly a coupled situation here. Anyway, when it comes to today, modern fortran is still a strong language for computational science, specifically for numerical things like simulation and numerical solution and things like that, so when I say, "it is a DSL for computational science today," that encapsulates my opinion succinctly without having to go into the ramble about history, although history is mostly why it is the case today.
- pjmlp 4y agoI wouldn't consider Lisp, Algol-60 and PL/I dialects minor languages.
- brightbeige 4y agoDSL = domain specific language, in this context https://en.wikipedia.org/wiki/Domain-specific_language https://en.wikipedia.org/wiki/Domain-specific_language
- skissane 4y ago> It is not (if it ever was) a general programming language. Colossal Cave Adventure (ADVENT) was written in Fortran. Zork (aka Dungeon) was originally written in an obscure Lisp dialect invented at MIT, MDL; but Bob Supnik at DEC ported it into Fortran, and that version became widely distributed. I used to work for a university, where the software which determined whether students had met all their degree requirements to graduate (such software is sometimes called a "degree audit tool"), was written in Fortran. Why? Well, it was a manual paper-based process, then one of the academics kindly volunteered to automate it for them. And he was one of the mathematics lecturers, and Fortran was his favourite language, so that's what he did it in. Some years later he retired, and without him the software became increasingly difficult to maintain – the university no doubt had some Fortran programmers in the physics/maths/engineering/etc departments, but the central administration's IT didn't. They ended up replacing it with some commercial off-the-shelf solution–no idea what that was written in, but almost certainly not Fortran.
- rad_gruchalski 4y agoFirst Prolog was written in Fortran.
- falsissime 4y agoThe first Prolog was written in Algol-W. The second one, which was called Prolog I was written in Fortran. See comments for more: https://stackoverflow.com/a/4478969 https://stackoverflow.com/a/4478969
- rad_gruchalski 4y agoThank you, awesome.
- 7thaccount 4y agoYes, I could see it being preferable or at least on the same level as Cobol and certainly better than using Assembly for programming text adventures, but surely that's just due to certain limitations of the times. Lisp came out like a year later (not sure how long until you could purchase a lisp machine) and is a much better general purpose language (some would claim it's still unsurpassed). Later we had things like APL, C, Pascal...etc and Fortran was left to numerical work. All that to say I think Fortran can only claim to be what we call "general purpose" for a very limited window of time in the very early stages of computing.
- comfypotato 4y agoAre you saying that computational science boils down to parallel multiplication of arrays? That makes sense to me intuitively, but I’m just checking here.
- kergonath 4y agoWell, quite often yes. At least in the areas I know (computational physics, quantum chemistry, weather and climate modelling, engineering, things like that). Two other usage patterns I can think of are large strings processing (think bioinformatics and genetics), and things with neural networks (which to be fair would be a natural fit for Fortran, if the libraries were not mainly developed in C++ and accessed from Python). Still, on the HPC facilities I use, number crunching in large arrays dominates used CPU time, and I would say about half of them are in Fortran.
- myself248 4y agoDoes Fortran run on GPUs?
- dagw 4y agohttps://developer.nvidia.com/cuda-fortran https://developer.nvidia.com/cuda-fortran
- TheRealKing 4y agoThere is also Intel oneAPI Fortran.
- kergonath 4y agoCUDA-Fortran is actually great. The added bits of syntax fit very well in the language, much better than standard CUDA in C or C++. It’s a shame I never really was in a situation to use it in a real program (also, you had to use PGI, which I have always found sub par), but I have tinkered with it over the years and it is very pleasant to use.
- anta40 4y agoPerhaps Fortrans wasn't designed as a general purposed programming language. But at least that's what was used by Niklaus Wirth to write the first Pascal compiler... :D