I sense a lot of hate and rant here. Let me try to address some of these issues based on my own experience:
I've heard him lament how kids these days don't know how to do programming, since there are so many pre-made tools that ALMOST do what you need.
I'm a biophysicist, did a 3-year post-doc in a biology lab, and have been doing disease-related data analysis professionally for the past several years. I can attest that there are a lot of off-the-shelf solutions that ALMOST, but not quite, fit whatever problem you are tackling. If I wasn't a good programmer, I simply would not be able to get any good data analysis done, since the tools to do it properly often don't exist and I have to write them myself (or modify existing ones if I have source code). And file format conversions, parsing, and merging of data are a never ending nightmare, especially with public data sets.
Your uncle does have a point here. While I wouldn't necessarily say that biologists need to be able to program -- we can't all be good at all things -- it is definitely advantageous to have someone on staff with a firm grasp of both biology and programming, either to serve as an interpreter between the hardcore biologists (Biology department) and the hardcore programmers (CS, Engineering), or to code up solutions themselves. Biologist generally don't have the programming background to produce useful programs, and CS/engineers generally don't have enough biological background to produce useful programs (not applicable to real-world noisy data and biological constraints). You need someone with good knowledge of both.
Main point of contention is when he interrupts my anecdotes about writing in c with some disparaging remarks about recursion and how I should use an array as a stack in a for loop to make program flow clear or some archaic bollocks
I used to use recursion in C as well, until I fed an algorithm too large of a problem and it segfaulted. Why? Because it recursed too deep and blew stack. The correct solution is indeed to implement it as a loop and use your own allocated array for your recursion stack, so that you will never run out of "stack" during your recursion. I still often prototype an algorithm with recursive functions on small test data to make sure it works correctly, but then I go and reimplement it as a loop so that it can then be used on arbitrarily large/complex data (and verify my results against the simpler to understand/debug recursive function version). Again, your uncle has a valid point here.
He may be stuck using his old archaic technology, but he does have 40 years of experience in his field, and along the way has encountered and learned from many pitfalls. Don't discount his rants (at least not all of them) just because he's using old stuff. A lot of it is still relevant today, you just may not have experienced the reasons for why it is relevant yet.
Matlab is obviously designed by someone who hates computers and FORTRAN was designed BEFORE the compiler was invented, meaning it was never meant to be used as what we would call a programming language.
Matlab and FORTRAN both have their strengths and weaknesses, just as any other language. I've not used Matlab much, since it costs money, and academic labs generally don't have much of that. I've not used FORTRAN much (other than to compile/fix old scientific code), because until the early 2000's or so, there wasn't a free FORTRAN compiler that supported anything beyond F77 (I believe F90 introduced dynamic memory allocation?), and by that time I was already proficient in C. So, both of these languages may have less uptake/use than they "should" due to monetary factors.
That said, I know a lot of mathematicians who do great stuff in Matlab. It has a lot of libraries that do a lot of powerful nice stuff, which can greatly reduce development time. FORTRAN has a *ton* of well vetted high performance scientific and mathematical libraries out there. Don't trash a language just because it's not your favorite or it's old. Often times they still work very well if used for the right purposes. Those purposes just may not be the same as your current purposes/applications.