PDA

View Full Version : Scientific Computing Language


Grieverheart
Jun16-11, 04:20 AM
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?

fss
Jun16-11, 05:58 AM
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.

gsal
Jun18-11, 06:41 AM
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.

Borek
Jun18-11, 08:41 AM
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.

Grieverheart
Jun18-11, 01:55 PM
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.