Page 1 of 1

Which Programming Language is necessary?

Posted: Mon Jun 19, 2006 10:50 pm
by Antimatter
Hello all, for the new gradaute students, is C++ is necesary? Do you have any idea?

Posted: Mon Jun 19, 2006 11:52 pm
by tleilax
I didn't know anything about C++ until I had to learn it for my senior thesis, and that was after I had already applied to graduate school (it was certainly not mentioned anywhere on the applications). It probably would be good to know but I would not learn it for its own sake.

Posted: Tue Jan 09, 2007 7:08 pm
by soluyanov
C++ is useful, though being in physics assumes Fortran.

Posted: Tue Jan 09, 2007 8:57 pm
by Richter
I think C++ is important in particle physics, as there are important packages (Geant, ROOT) wriitten in C++.
In the school I went to research last summer, only C++ and java were taught to physics student.

Posted: Tue Jan 09, 2007 9:23 pm
by soluyanov
Richter, it's really suprising that they teach java. From my experience it is not computational at all.

Moreover, I guess for pure computations Fortran is prefered, where some visualisation is needed - C++.

Almost all packages I've seen (cond mat ones, quantum chemistry, molecular physics) are written in Fortran, sometimes having a C++ copy.

Posted: Tue Jan 09, 2007 10:58 pm
by rjharris
In my experience, Fortran is widely used, and may, in fact, be what is most widely used in (astro)physics.

However, my belief is that it is inertia that is causing this. Fortran has been slowly dying for a while. The only fortran code I've worked with is something originally written in Fortran 77 about 25 years ago (I think) and updated by a guy who re-did it in Fortran 90/95 a few years ago. However, C and C++ is used more and more, particularly (I hear) in particle physics with data analysis and simulations done in root (i think that's the name). In my own work with x-ray timing, I almost exclusively use C, with a smattering of perl and other scripting stuff.

That said, if you can learn both Fortran and C very well, you should be set for a whole hell of a lot of things. You should also know unix well enough to do basic troubleshooting, since that is the environment (imho) most conducive to scientific computing, and I believe this opinion is backed up by the fact that most places who do a lot of it use unix-based systems.

Posted: Tue Jan 09, 2007 11:59 pm
by Richter
soluyanov, I heard it from the students there, maybe it is of no use in physics at all~

Posted: Wed Jan 10, 2007 12:17 am
by schmit.paul
A friend of mine who is an undergraduate researcher for one of the particle experimentalists at my institution is developing a Geant framework entirely based in C++ and python, and evidently CERN has expressed a lot of interest in it. The funny thing was that he gave a seminar on object-oriented programming for anyone interested, and the professors who attended were EXTREMELY hesitant to acknowledge the strengths of OOP versus Fortran. Almost every professor I know works almost exclusively with Fortran, though I'm starting up research with a condensed matter theorist that uses a lot of C++ (he got his Ph.D. in the '90's from UIUC, so he's considerably "younger" than most of my other profs). However, I don't know that many undergrads who are familiar with Fortran, and so I imagine in another decade or two the balance will shift even further and OOP languages will saturate the field.