Wendelstein 7-X is "new" in the sense that it not a classical stellarator (such as those built by Spitzer) but rather an optimized design. What this essentially means is the shape of the magnetic coils was carefully chosen using a set of theoretical calculations to minimize energy loss (improve confinement) and improve stability. This will be the first large scale stellarator with an optimized design. Several smaller optimized devices have been constructed, however these have been short pulse university scale machines and could not be used to fully explore this confinement concept.
Up until the computation tools to create a optimized design became available, it was generally considered that the energy loss in a stellarator would always be much greater than in a tokamak, and that therefore tokamaks were a better path towards fusion energy. Using modern optimization techniques however it is possible to design a stellarator with equivalent expected energy loss as a tokamak design but with much better stability and no need for current drive (which is very energy intensive).
I do scientific programming for a living (Fusion Scientist) and have extensively used a lot of different languages in my research including:
Python
IDL
MATLAB
FORTRAN
C/C++
Ruby
When working on my own project my favorite setup is to use Python along with Scipy/Numpy. When I need extra speed I use Cython, and also use Cython to interface with libraries that are written in C or C++. For interaction with my codes I use ipython (assuming I need command line interaction) or QT (assuming I need GUI interaction). For libraries written in FORTRAN I use f2py. For plotting I use matplotlib.
This setup works very well for me. It is fast and powerful, almost completely platform independent, and has excellent mathematical and scientific library support. It is extremely easy to integrate C/C++ or FORTRAN code into a Python project which can be extremely useful. It is also very straight forward to do basic multithreading and parallelization. Interactive debugging is very easy and can really help both in the development and in finding problems with scientific calculations. Plotting support is fantastic and easy.
I would say that the next best option is MATLAB. This has good support, an excellent mathematical and scientific library and good plotting tools. I don't particularly like the language for large and complicated projects, and it does require a license, which can make it difficult or impossible to share codes between institutions.
Working directly in C/C++ or FORTRAN is fine for certain kinds of large projects, but is inconvenient for working on lots of small projects or numerous related calculations. Doing something simple like creating a plot requires a significant amount of programming, and debugging can be very time consuming.
I would stay away from IDL; while a nice language in many respects, it is quite out of date at this time and is no longer well supported in terms of staying current. Ruby does not have sufficient support in terms of math/science/plotting libraries at this point to work well for scientific programming.
At the end though it does really matter what kinds of projects you will be working with and what your final goals are. It also matters who else you will be working with to make sure that code can be easily shared.
Wendelstein 7-X is "new" in the sense that it not a classical stellarator (such as those built by Spitzer) but rather an optimized design. What this essentially means is the shape of the magnetic coils was carefully chosen using a set of theoretical calculations to minimize energy loss (improve confinement) and improve stability. This will be the first large scale stellarator with an optimized design. Several smaller optimized devices have been constructed, however these have been short pulse university scale machines and could not be used to fully explore this confinement concept. Up until the computation tools to create a optimized design became available, it was generally considered that the energy loss in a stellarator would always be much greater than in a tokamak, and that therefore tokamaks were a better path towards fusion energy. Using modern optimization techniques however it is possible to design a stellarator with equivalent expected energy loss as a tokamak design but with much better stability and no need for current drive (which is very energy intensive).
I do scientific programming for a living (Fusion Scientist) and have extensively used a lot of different languages in my research including:
Python
IDL
MATLAB
FORTRAN
C/C++
Ruby
When working on my own project my favorite setup is to use Python along with Scipy/Numpy. When I need extra speed I use Cython, and also use Cython to interface with libraries that are written in C or C++. For interaction with my codes I use ipython (assuming I need command line interaction) or QT (assuming I need GUI interaction). For libraries written in FORTRAN I use f2py. For plotting I use matplotlib.
This setup works very well for me. It is fast and powerful, almost completely platform independent, and has excellent mathematical and scientific library support. It is extremely easy to integrate C/C++ or FORTRAN code into a Python project which can be extremely useful. It is also very straight forward to do basic multithreading and parallelization. Interactive debugging is very easy and can really help both in the development and in finding problems with scientific calculations. Plotting support is fantastic and easy.
I would say that the next best option is MATLAB. This has good support, an excellent mathematical and scientific library and good plotting tools. I don't particularly like the language for large and complicated projects, and it does require a license, which can make it difficult or impossible to share codes between institutions.
Working directly in C/C++ or FORTRAN is fine for certain kinds of large projects, but is inconvenient for working on lots of small projects or numerous related calculations. Doing something simple like creating a plot requires a significant amount of programming, and debugging can be very time consuming.
I would stay away from IDL; while a nice language in many respects, it is quite out of date at this time and is no longer well supported in terms of staying current. Ruby does not have sufficient support in terms of math/science/plotting libraries at this point to work well for scientific programming.
At the end though it does really matter what kinds of projects you will be working with and what your final goals are. It also matters who else you will be working with to make sure that code can be easily shared.