|
What is exactly Python(x,y)? - Why Python? - Why a Python distribution for scientists? - Why Qt?
Foreword
 |
Python programming language |
|
 |
Qt Application Development Framework |
|
 |
Eclipse Integrated Development Environment |
Python(x,y) is a free scientific and engineering development software for numerical computations, data analysis and data visualization based on Python programming language, Qt graphical user interfaces (and development framework) and Eclipse integrated development environment.
With Python(x,y), one can do (Figure 1):
- interactive calculations including for example 2D and 3D plotting or symbolic maths,
- simple functionnal programming (with MATLAB*-like syntax) as well as powerful object-oriented programming,
- scientific projects development from the simplest script to the most sophisticated application thanks to Qt development framework and Eclipse platform,
- parallel computing on multicore/processors computers or even clusters (with Parallel Python),
...and a lot more!
What is exactly Python(x,y)?
Python(x,y) is a scientific-oriented Python Distribution based on Qt and Eclipse (Figure 2) - see the features page. Its purpose is to help scientific programmers used to interpreted languages (such as MATLAB* or IDL**) or compiled languages (C/C++ or Fortran) to switch to Python. C/C++ or Fortran programmers should appreciate to reuse their code "as is" by wrapping it so it can be called directly from Python scripts.
Figure 2 : Python(x,y) main components
Why Python?
In many ways, Python is far more superior to other scientific languages: it's a general-purpose language (e.g. with powerful GUI, I/O, internet, and database libraries), it's free and open-source, fundamentally object-oriented, very portable, extensible and embeddable, and so on. However, Python libraries generally suffer from a lack of documentation, even if the growing community contributes everyday with detailed tutorials on many topics.
Why a Python distribution for scientists?
Because testing all libraries, choosing the right one for the right usage, and grabbing all the free documentation on the internet takes time. Moreover, one needs some perspective to elaborate its own coherent development framework (i.e. Python libraries and development environment).
Python(x,y) was created for :
- rapid prototyping, using the enhanced Python shell known as IPython ;
- big projects (application-like) development, using Eclipse - a powerful cross-platform Integrated Development Environment (IDE) ;
- scientific purpose: scientific computing, numerical simulations, signal processing, image processing, physics (experiments and modeling), engineering, ...
Why Qt?
We strongly recommend using PyQt for Graphical User Interface (GUI) development, since it is a very powerful and easy-to-use library – Mark Summerfield’s book is the best way to get started with PyQt (it is also a very good, very effective introduction to the Python language). Moreover, in Python(x,y), Qt design tools are already integrated in Eclipse (with a complete html-like help), allowing for example to quickly modify GUI designs.
For scientific programs, note that matplotlib figures (mainly 2D graphics) can be embedded in PyQt applications window, almost as easily as in MATLAB.
I hope that this distribution can help people to better understand the inner advantages of Python for scientific computing.
Pierre Raybaut

(*) MATLAB® is a registered trademark of The MathWorks.
(**) IDL® is a registered trademark of ITT Visual Information Solutions.
|