open-discussion
open-discussion > RE: Python?
Jul 3, 2007 11:07 PM | Jarrod Millman
RE: Python?
I am excited to hear that you are considering moving your
development to Python. Python is an ideal choice for a scientific
project; it is a mature, robust, widely-used, and open source
language that is freely distributable for both academic and
commercial use. It has a simple, expressive, and accessible syntax.
It does not impose a single programming paradigm on scientists but
allows one to code at many levels of sophistication, including
Matlab style procedural programming familiar to many scientists.
Python is available in an easily installable form for almost every
software platform, including Windows, Macintosh, Linux, Solaris,
FreeBSD and many others. It is therefore well suited to a
heterogeneous computing environment. Python is also powerful enough
to manage the complexity of large applications, supporting
functional programming, object-oriented programming, generic
programming, and metaprogramming. In contrast, commercial languages
like Matlab and IDL, which also support a simple syntax, do not
scale well to many complex programming tasks. Lastly, Python offers
strong support for parallel computing. Because it is freely
available,
and installed by default on most Unix machines, Python is an excellent parallel computing client.
Using Python allows us to build on scientific programming technologies that have been under active development and use for 10 or more years; while, at the same time, it allows us to use mixed language programming (primarily C, C++, FORTRAN, and Matlab) integrated under a unified Python interface. IPython (ipython.scipy.org) is the de facto standard interactive shell in the scientific computing community. It has many features for object introspection, system shell access, and its own special command system for adding functionality when working interactively. It is a very efficient environment both for Python code development and for exploration of problems using Python objects (in situations like data analysis). Furthermore, the IPython developers are rewriting it to support interactive parallel computing. Matplotlib (matplotlib.sourceforge.net) is a tool for 2D plots and graphs, which has become the standard tool for scientific visualization in Python. It was originally developed to support Pbrain (pbrain.sourceforge.net), a Python application for the analysis of EEG and medical image data, including tools for relating EEG and structural brain images. NumPy (numpy.scipy.org) is a high-quality, fast, stable package for matrix mathematics. SciPy (scipy.org) is a collection of Python tools providing an assortment of basic scientific programming algorithms (e.g., statistics, optimization, genetic algorithms, etc.). The combination of IPython, matplotlib, NumPy, and SciPy forms the basis of a Matlab-like environment that provides the strengths of Matlab (platform independence, simple syntax, high level algorithms, and visualization routines) without its limitations (proprietary, closed source with a weak object model and limited networking capabilities).
If you are interested you should join the NIPY developer's list: http://projects.scipy.org/mailman/listin...
I am currently in the process of hiring 2 full-time programmers to work on NIPY, so the development pace should pick-up over the next few months. You may also be interested in attending this year's SciPy conference: http://www.scipy.org/SciPy2007
I will be there and so will several other people from Berkeley. One of the AFNI developers will be attending as well.
and installed by default on most Unix machines, Python is an excellent parallel computing client.
Using Python allows us to build on scientific programming technologies that have been under active development and use for 10 or more years; while, at the same time, it allows us to use mixed language programming (primarily C, C++, FORTRAN, and Matlab) integrated under a unified Python interface. IPython (ipython.scipy.org) is the de facto standard interactive shell in the scientific computing community. It has many features for object introspection, system shell access, and its own special command system for adding functionality when working interactively. It is a very efficient environment both for Python code development and for exploration of problems using Python objects (in situations like data analysis). Furthermore, the IPython developers are rewriting it to support interactive parallel computing. Matplotlib (matplotlib.sourceforge.net) is a tool for 2D plots and graphs, which has become the standard tool for scientific visualization in Python. It was originally developed to support Pbrain (pbrain.sourceforge.net), a Python application for the analysis of EEG and medical image data, including tools for relating EEG and structural brain images. NumPy (numpy.scipy.org) is a high-quality, fast, stable package for matrix mathematics. SciPy (scipy.org) is a collection of Python tools providing an assortment of basic scientific programming algorithms (e.g., statistics, optimization, genetic algorithms, etc.). The combination of IPython, matplotlib, NumPy, and SciPy forms the basis of a Matlab-like environment that provides the strengths of Matlab (platform independence, simple syntax, high level algorithms, and visualization routines) without its limitations (proprietary, closed source with a weak object model and limited networking capabilities).
If you are interested you should join the NIPY developer's list: http://projects.scipy.org/mailman/listin...
I am currently in the process of hiring 2 full-time programmers to work on NIPY, so the development pace should pick-up over the next few months. You may also be interested in attending this year's SciPy conference: http://www.scipy.org/SciPy2007
I will be there and so will several other people from Berkeley. One of the AFNI developers will be attending as well.
Threaded View
Title | Author | Date |
---|---|---|
Arno Klein | Jun 25, 2007 | |
lee diara | Apr 9, 2015 | |
Jarrod Millman | Jul 3, 2007 | |
Arno Klein | Jul 6, 2007 | |
Steve Pieper | Aug 17, 2007 | |