Forum:is fortran still used in bioinformatics?
4
3
Entering edit mode
5.4 years ago
Manoj ▴ 200

Recently I was asked by one of the professor to solve problem in FORTRAN. I am already working with PERL, PYTHON, JAVA, C and C++ but now I am thinking "Is it worth to learn FORTRAN in bioinformatics?" Please suggest.

Edit:

I am thankful to every one who commented and gave their valuable suggestions. In the end, after learning FORTRAN for two weeks, I concluded, learning too many languages will messing up everything for me in the end. Hence, I decided not to work for the professor who was asking me to learn FORTRAN and will start again looking for professors who works in the similar field as mine.

Thanks everyone for their valuable suggestion and detailed insight.

FORTRAN R • 5.0k views
ADD COMMENT
5
Entering edit mode

This has already been asked here. As alluded to in the answers, Fortran is still used for numerical libraries (and not just BLAS/LAPACK) that are wrapped in other languages. It is still used in bioinformatics fields that do heavy numerical computations such as molecular dynamics and structural biology. Programming languages are just tools so one should go with the one most efficient for the task at hand (efficiency here also includes proficiency in the language).

ADD REPLY
9
Entering edit mode
5.4 years ago

No. The only Fortran code that is likely to be broadly relevant in bioinformatics is LAPACK, and that has an adequate C interface. Understanding C better is a far better time investment than writing Fortran (though there is a little bit of value in being able to read Fortran).

ADD COMMENT
8
Entering edit mode
5.4 years ago

R sources contain 23% fortran https://github.com/wch/r-source

ADD COMMENT
5
Entering edit mode

That's because R depends on LAPACK for fast matrix operations. It doesn't change the fact that making a serious time investment into Fortran is a horrible idea if you're aiming for a career in bioinformatics--even if you specialize in writing the highest-performance software (refining C/C++ expertise is an overwhelmingly better time investment in that case).

ADD REPLY
2
Entering edit mode

Yep, in 12 years of bioinformatics I've only ever seen or needed Fortran while compiling R packages. Don't bother.

ADD REPLY
2
Entering edit mode

I have so far had a very successful Ph.D. and career in bioinformatics, from a decent top-ten university in the US while relying entirely on Fortran. Your argument is nonsense. A nonbiased professional programmer would pick up any language that suits its work, and modern Fortran is a perfectly fine language for modern scientific computing. People hate things because they don't know them, and they don't want to know them because they hate them.

ADD REPLY
4
Entering edit mode

I don't hate Fortran at all. The question is should he bother learning Fortran if he already programs in five different languages, all of which are much, much more popular in bioinformatics. The answer has to be a clear no in my opinion. Other takes on this are fine of course, but that was the question.

ADD REPLY
0
Entering edit mode

Hi @colindaven, your argument based on language popularity is again nonsense. If your argument were true, nobody would have to move from COBOL because it used to be very popular and dominate the entire world. Again, your argument should be based on the language's capabilities with respect to the problem at hand. So here is my question for you: How familiar are you with Fortran 2003, Fortran 2008, and Fortran 2018? If you are not familiar with the new standards beyond FORTRAN77, then you should not misguide other people by arguments purely based on language popularity.

ADD REPLY
11
Entering edit mode

It's not nonsense. For someone coming in as new, Fortran is not the most useful language to start with. I'd argue that isn't even an opinion but an objective fact at the moment. The entire forum is in disagreement with you at this point and that should tell you something. Popularity of a language, for a learner, is as key a factor as any since that directly indicates how wide the support network will be to assist in learning/debugging.

Your logic is so flawed in the comment above I can't honestly decide where to start. By that token, you might as well suggest a learner driver begins with a Model T Ford because it is a perfectly good automobile and everyone should have stuck with it.

Furthermore I think you need to check your tone. You sound arrogant as all hell, and it isn't remotely constructive.

ADD REPLY
1
Entering edit mode

"For someone coming in as new, Fortran is not the most useful language to start with." Exactly, why is it not the most useful language, for example, as opposed to C? Again here is my question to whoever who questions Fortran as a decent language: How much did you know of Fortran 2018 (or you know now) before you wrote this comment here? Your argument based on "Model T Ford " clearly implies that you know nothing about modern Fortran. Language-bias shines in the comments on this thread (perhaps including mine).

ADD REPLY
2
Entering edit mode

I've written Fortran for useful purposes (the numerical simulations in my thesis among them, which was in 2010), but it's not particularly useful in bioinformatics at the moment.

Exactly, why is it not the most useful language, for example, as opposed to C?

Bioinformatics is mostly about getting stuff done, which means interfacing easily with other tools, packages, and libraries. Can all of this be done in Fortran? Sure. Are there many others around that can help you when you run into weird problems? No. Is documentation of libraries you're likely to want to use written with usage in Fortran in mind? No, so you get to figure out how you need to interface with them. Having done that, it's not the worst thing in the world, but I wouldn't suggest someone spend a lot of time to run out and do it unless they had a good reason. So yeah, it's a great language and you can do anything you need in it, but using it will come with a number of downsides.

ADD REPLY
1
Entering edit mode

I learnt FORTRAN77 way back when. Thank you for pointing me to the fact that FORTRAN has since changed. I've been in bioinformatics and data science for just over 14 years now and have not needed to learn Fortran yet. I've also always hated Python as the white space thing is one of my pet peeves - I'm not a language fanatic of any sort. But I definitely prefer Python to Fortran.

Sure, Fortran has its uses, and you are living proof that it is absolutely required in a few areas. However, most beginners choose to begin with either JavaScript or Python, largely because they are "modern" and easy to learn. Do I think people should learn Java/C? Yes, of course! Do I think they should learn Fortran/BASIC? Sure, if they have the time! Do I think someone that knows 5 languages including Python, Java, C and C++ needs to learn Fortran? Not unless they can't get by without it. And I think I'm living proof that someone who knows a subset of those 5 languages can get by without Fortran.

Time and brain power are limited resources, and one should invest them wisely. Fortran could be fun and great, but it is neither among the most popular languages in bioinformatics, nor is it among the most popular languages for beginners.

We do appreciate your perspective here, but we ask you to be civil and engage in respectful discourse. Trivializing others' perspectives as nonsense does not show you in a positive light.

ADD REPLY
2
Entering edit mode

Hi RamRS, I appreciate your extensive comment. My point here is NOT that everybody should learn or go with Fortran. It's all about biases for one language, and against another programming language without even knowning the language well. I have used (modern OOP Coarray-Parallel Vectorized array-based) Fortran for high-performance scientific computing in bioinformatics for almost a decade now, spent the same length of time and even more with QBasic, Pascal, IDL before knowing Fortran, 7 years with C/C++, almost a decade of daily interaction Python/R/MATLAB, and occasionally Mathematica. and I have taught C/Fortran/Python/MATLAB at university for both engineers and science students. I am tired of people (mostly novice programmers who just happened to learn some elementary Java/C++ at high-school/college), who constantly nag about Fortran (or some other language with which they are not familiar) without knowing or even attempting to learn a single line of it. Of course, it is less popular than Java/C/Python, the same way there are far fewer people in high-performance scientific computing than in the programming community in general. Here is the final line: Modern Fortran is just as expressive as any other "modern" language for scientific computing. Everybody who knows Fortran >2003 standard, knows that Fortran has a learning curve similar to Python. In fact many of the scientific computing features in Python have been borrowed from Fortran. Anyone who knows Fortran >2003, also knows that any programming language that can interoperate with C can also interoperate with Fortran, with virtually no extra work compared to C. and if someone wants to criticize or praise Fortran (or any other language), they should know the language before doing so, and not solely for the sake of following the wind of fashion.

ADD REPLY
1
Entering edit mode

The point you’re missing is that I don’t need to know a line of fortran to know it’s not the most useful language to learn for modern bioinformatics.

No one here is saying fortran (of any age), is a bad language in and of itself. I absolutely agree with you that it is more common in the cheminformatics space, and for good reasons.

It doesn’t change the fact however, that fortran is not the most widely used language anymore, which has direct consequences for people who want to learn it. Can someone learn it from scratch nowadays? Yes, of course. Will someone who spend most of their time constructing phylogenetic trees need it? Pretty unlikely.

It’s lack of popularity isn’t the rest of us ‘jumping on a bandwagon’, it’s a major contributing factor to whether to learn the language or not. You can extrapolate this further and look at the top paying/most employable languages. A very tangible benefit of knowing language A over language B. OP would be substantially more employable knowing python or JavaScript inside and out, than knowing a single line of fortran, and that’s just a fact.

This thread is derailed beyond reason at this point, so I shan’t be commenting any further.

ADD REPLY
0
Entering edit mode

"Furthermore I think you need to check your tone. You sound arrogant as all hell, and it isn't remotely constructive."

ADD REPLY
0
Entering edit mode

Interesting discussion - there is indeed much benefit to having people adept at various languages. How is it possible to ensure that, e.g., FORTRAN, COBOL, Perl, Julia, etc., don't fade out of existence? Is the learning of these reserved for people who enter companies who are using programs/applications built on these languages? For day-to-day, broadly speaking, for the majority of bioinformaticians, these languages appear to not be required (perhaps this is the sentiment on which colindaven touched).

I did undergrad CS and got a very broad overview of multiple languages. Eventually, I expanded heavily into R based on where the work (and money!) took me. I could easily have branched into Perl, JAVA, C, C++, CSS/HTML, or Visual Basic (the others that I learned).

ADD REPLY
4
Entering edit mode

Among other things, I write high-performance linear algebra code. I frequently read the LAPACK documentation, and am not hopeless at reading Fortran.

I stand by what I wrote. This guy has not decided on a research problem yet; they are still making a higher level choice. A large time investment in Fortran or a similar niche language only makes sense if you’ve already decided on your specialization, and that language is the best tool within that specialization.

ADD REPLY
4
Entering edit mode

I have so far had a very successful Ph.D. and career in bioinformatics, from a decent top-ten university in the US while relying entirely on Fortran.

Does survivorship bias ring a bell?

ADD REPLY
1
Entering edit mode

Does language-bias here ring a bell?

ADD REPLY
0
Entering edit mode

What do you mean with language bias?

ADD REPLY
7
Entering edit mode
5.4 years ago
A.King ▴ 140

Yes, it is used, and one will see it more as one moves from pure biology to pure chemistry. Example software whose core is entirely in Fortran: Amber Molecular Dynamics, which runs on both GPU and CPU. That said, if you want to learn Fortran, do not start with FORTRAN77, start with modern Fortran 2018, which is a perfectly fine language with all the bells and whistles of Object-oriented programming and more, including native built-in support for parallel shared/distributed memory computing via Coarray Fortran, which can scale your code from your laptop to the largest supercomputers in the world, without a single line of change in your codebase. Also, if somebody gives you advice on Fortran (whether positive or in particular, negative) first ask them how much they know Fortran. If they do not know Fortran 2003 or beyond, then move away from them and their advice. A good reference book on Modern Fortran is "Modern Fortran Explained: Incorporating Fortran 2018" by Metcalf et al.

ADD COMMENT
7
Entering edit mode
5.4 years ago
ATpoint 85k

That depends entirely on what you do. If you are a software developer working on implementation of highest-performance tools that would strongly benefit from fortran go ahead learn it. If this is just a random assignment and you do not plan to make it your workhorse-language, don't. If you are more an analyst than a programmer absolutely don't and spend time on biological background and stats.

As a side note, maybe this is because I am not a native speaker but I find the word "nonsense" in an educated discussion utterly disrespectful as it somewhat implies the writer feels intellectually superior. Just saying.

ADD COMMENT

Login before adding your answer.

Traffic: 2789 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6