You are not logged in.
Pages: 1
I'm wondering what you guys think is the best language for research applications not including CS. Most Engineering/Science disciplines have simulations, modeling, and little intermediate bits here and there. The major Language in terms of simulation and modeling seems to be Fortran 90. I've personally been using python a funnel data from simulations and modeling apps into one another or into a more usable form such as a graph or Data Table. Mainly because it is more powerful then bash scripting and it wasn't hard to learn. When it comes to doing actual calculations or hacked together monte-carlo, I tend to use MatLab. As crappy as Matlab is in terms of actually coding, I don't know of any language with a math feature set that can compare.
List the Language, purpose, and why you chose that Language. This should help people who are just starting or in my case, find a new direction to tinker with in such a way as to benefit from it in my research (maybe ).
Offline
I can't speak from personal experience, but a friend of mine is a retired professor of Astronomy, Astrophysics, and even has done some work in Microbiology, and swears up and down that nothing compares to Fortran. He knows multiple languages including C and C++, and dabbled in a bunch of others and said that Fortran is by far the most feature complete language for Science that he's ever seen.
Offline
It really depends on what you're doing. If you need ULTIMATE SPEED for some number crunching you probably can't beat Fortran. But you're using Python and Matlab. I know a data mining guy (which may or may not be considered scientific) who does a fair bit of his data massaging in Excel. I don't think there is any best choice, because it all depends on your requirements and what you're comfortable with. I'm a Lisper, so CL would be the first thing I reach for, unless it's a thing where some libraries from another language would be killer to have.
Offline
Like paul said, it depends on the magnitude of what you're doing.
For most of my aerospace engineering assignments I just use python and scipy/numpy/matplotlib. I'm comfortable with python, and it's fast enough for the calculations I usually deal with.
Matlab? I can't stand it. The syntax is terrible and frustrates me to no end! I'm dreading that I may have to use it on a regular basis in industry when I get a job.
Last edited by iphitus (2008-11-13 07:49:39)
Offline
I use C++ for all my statistical genetics simulations. Or R if I feel like putting something together quickly and am not too worried about the speed.
Offline
I would like to give my 2 cents too.
Have you considered Java? I'm serious. The performance for native types (int, float, double) is as good as C. Another thing to note is the use of threads. Java had support for threads since the begining and after 1.5 won some interesting extra features. There is more coming, so you should realy consider using it, since today any new computer have more than one core. The Java memory model also makes some guarantees about the visibility of values after the releas of a lock, which allows you to program in both thread safe and efficient way. If I was not very clear, look in Java Concurrency in Practice, from Brian Goetz. It is a wonderfull book, even for non Java programmers.
I will use Java for my post graduation final work. It is about graph theory (generation of minimal cost geretator trees with heuristics) and the enphasis are in using multiple cores to find the solution faster. I choose Java for its great thread support. So, don't just discard Java without giving it a go.
Satisfied users don't rant, so you'll never know how many of us there are.
Offline
If you want something like matlab, but which is open-source, try sagemath. Its basically a compilation of the major scientific libraries out there. It can do most of the things matlab can do( the useful things anyway ). And you can use python to create scripts for it.
Offline
A couple of people in the local lug have started to use python + cyton for their projects, and are quite happy with it. iirc they are currently trying to make a model of how a pulsar is formed.
Evil #archlinux@libera.chat channel op and general support dude.
. files on github, Screenshots, Random pics and the rest
Offline
I completely agree that it depends on what you're doing, but at the same time it's useful to know what others use and why.
Allan, quite impressive that you use C++ for that. I think if it weren't for the proliferate use of Fortran for molecular dynamics, I would probably use C++ for simulations.
Offline
The program we use for our simulations is in fortran, though my boss admits that it's the language that he finds the most intuitive partially because it's what he learned back in the day. We incorporated some code from another group that was originally in C++, the little taste I got then seemed more intuitive to me and I'd be tempted to work more in that if I could. I'll admit I haven't looked into what makes certain languages more optimal than others for certain situations, but I've heard fortran has some advantages in it's computational power.
Offline
I've been using Python and C/C++ for my hydrologic models. I'm hopefully going to start using CUDA soon and C++ seems to be the easiest way to start.
Offline
so how big really is the speed advance of fortran compared to c/c++?
Offline
so how big really is the speed advance of fortran compared to c/c++?
Depends on the design of the code...
Offline
Don't forget you can rewrite parts of your Python app in C if you need more speed.
Edit: I'm just selling python though I have no idea what's best for scientific programming .
Last edited by Mashi (2008-11-16 02:09:31)
Offline
Python is pretty cool for scientific programming. I just got this book:
http://www.springer.com/math/cse/book/978-3-540-73915-9
There is some code and information on the book available online at
http://vefur.simula.no/~hpl/scripting/
If you are interested in doing scientific computing with Python, you might want to take a look at this
Last edited by zimt (2008-11-16 10:29:12)
Offline
When you are talking performance you are down to c/c++ and fortran.
I use c++ myself for my electronic structure DFT calculations, and everything else. I try to find the best libraries to make myself more efficient for example fftw, mtl, boost, lapack (fortran of course but I call from c++).
Offline
Pages: 1