I am Mathematician and I currently work mainly on Operations Research field, building algorithms for solving Mathematical Programming or Optimization problems.
I learnt Fortran, Pascal and C (oh, and Visual Basic) when I was a student, not very deeply, but in the case of C I managed quite well with pointers, structs and so on, for example.
Later, I've been using Visual C++ for my research, building algorithms for my problems and so on. I am not able to create any GUI and I don't use objects but a classical procedural perspective, so in fact I use C with some characteristics from C++.
There was a moment when I tried to learn Python. It seemed so friendly, fresh, interesting, simple but powerful... But at the end, I was a little bit confused, because of many different reasons, for example:
I was used to procedural languages, and Python is functional oriented, a little bit at least.
I was used to languages that can create
.exe
files (compiled), and Python is interpreted. Also, I learnt that for that reason C is ---generally speaking--- faster than Pyhton, when we talk about creating complex algorithms and so on.There are different versions of Python, all of them stable and up-to-date! I mean, there is Python 2.x, and Python 3.x. And there are things that work in version 3 but not in version 2, etc.
Maybe this is even more subjective than the previous reasons, but I find more, better and more stable or reliable libraries in C than in Python.
Also, I found it a bit difficult to choose between different GUIs for Python programming and different flavors, as Python IDE, Tkinter, IronPython...
I do think that Python is a powerful language despite being interpreted. And also I still think it is more beautiful than C. I like Python, but I would like that I liked more!
So, finally, my question is, how can I truly learn and master Python, in a sure way, so that I am able to use it as my main choice for programming mathematical algorithms?
When I say "sure", I mean, which are (in your opinion) the safest path and tools for learning and using Python in a reliable way?, which are the more mature and stable libraries, GUIs, and so on?
Sorry if this question is a little bit strange, but I guess there could be more people with the same kind of doubts about Python as me.