Best programming language for solving numerical PDEs I have been using matlab to write my finite difference, finite volume and level set codes when solving PDEs. The codes become even complicated hence taking longer to run when I go to 3D cases. This causes the temperature of the laptop to be high (about 71 degree celcius measured by Sensor) and surfing internet while running the codes to be difficult, due to its slow speed. I like matlab since I have been using it since 5 years ago, and there are functions that I think are simple that I can easily remember. On the other hand, I have previously and occasionally used (although not an expert) R (through Rstudio), Python (through Spyder/Anaconda) and C++ (for example using CodeBlocks). Is it worth to change from matlab to other languange/software since that would need me to convert all my codes and find appropriate functions that are equivalent to those from matlab? What I meant by functions here are not the simple ones like ode45 (which I could write on my own), but rather the complicated ones such as isosurface, patch etc.
Edit: I am using ubuntu 16.04 LTS, Memory: 3.7 GiB, Processor: Intel Core i7-4500U CPU @ 1.80GHz x 4, Graphics: Intel Haswell Mobile, Disk: 343.9 GB. It is a dual boot laptop (Asus F550L).
 A: In reality, this is more of a question of data structuring/algorithmic development than it is of the most efficient language. In my experience in dealing with people in your situation the most common issue I observe is that the user is relying on built in packages (say the LU function in matlab) and that they are either not calling it correctly for the matrix(/ces) they are working with AND/OR are using a built in package that is inefficient for the situation they are in (i.e. you have a matrix of a certain structure in which many of the operations in the built in package are superfluous). 
If you want to go 'hardcore' and build everything yourself then I personally recommend C/C++. If you want to really boost your performance you can run a stack of GPU's together in parallel with CUDA. There are also a number of incredibly amazing C++ Boost libraries that have been built that serve (not exclusively) in solving PDE's numerically. 
There are other 'mathsy' languages out there that are great to use. I've been using Julia (on and off) over the past few years and it's great - very much written for ease of maths coding. 
Addition 
My recommendation is that before you move to another dev environment/language have a good read into the matlab packages you use to make sure they are not 'over working' the data you are working with. By 'over working' I mean performing unnecessary operations. For example performing a LU decomposition on a sparse matrix in which the overwhelming operations are meaningless (converting 0's to 0's is the most common). 
There is also a CUDA package for Matlab too. I've not personally used it, but might be worth investigating. 
A: I would use C/C++. In any interpreted language (Matlab, Python, etc), writing for loops is extremely inefficient. That's why in Matlab for example you can write an external library in C. The speed up is at least one order of magnitude. The advantage of C++ is that you can also (with some effort) write nice parallel code, to use more than one core in the processor.
