Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Scientific Computing Language

  1. Jun 16, 2011 #1
    I'm in my first year of theoretical physics master and I'm considering of following the path of scientific simulations. At the moment I use C for my simulations. I would additionally like to learn an object oriented language. I followed a course in Java about 2 years ago, so that would be easier to learn again. What I generally need is an object oriented language with high performance, easy implementation of parallel programming and visualisation of results. Also I think I'm gonna learn C++ since it's used everywhere, so I don't know if it's worth learning any additional object oriented language. I want to focus on the things I said above but I would like to have some flexibility in other areas too.
    So, any suggestions?
  2. jcsd
  3. Jun 16, 2011 #2


    User Avatar

    Why don't you focus on C++ first and then see if OOP comes easily to you. After that you can start branching out even more.
  4. Jun 18, 2011 #3
    I wouldn't waste my time on C++ or that other language that tried to overcome C++ shortcomings (Java).

    You should look into Python!

    Python is very easy to use. You can start programming in a non-OOP manner and start including objects as you see fit.

    Also, there is a huge engineering/scientific community behind Python. There are many tools for scientific computing and for visualization.

    Should Python not be fast enough for intensive number crunching operations, you can write that particular part in either C or Fortran and easily call it from Python.
  5. Jun 18, 2011 #4


    User Avatar

    Staff: Mentor

    If you already know C, switching to C++ will be relatively easy. At the same time it will mean your OOP will inherit bad habits from your C programming, that's typical.
  6. Jun 18, 2011 #5
    I have done OOP in Java although that was quite some time ago. I was going to learn python at first, it seems to fit for most of my needs but it seems really slow. I read it can get close to C, C++ speeds with NumPy/SciPy (which are actually using C). That doesn't feel quite right :S . I guess in the long run it's best to learn several and use every language at where it's best.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook