# Difference between revisions of "Open writing projects/Sage and cython a brief introduction"

(New page: == Abstract == This is a quick introduction to http://www.sagemath.org/index.html Sage, a powerful new computational platform that builds on the strengths of Python. This article was...) |
|||

Line 3: | Line 3: | ||

This is a quick introduction to [[http://www.sagemath.org/index.html Sage]], a powerful new computational platform that builds on the strengths of Python. This article was directly inspired by Julius B. Lucks' [[http://openwetware.org/wiki/Julius_B._Lucks/Projects/Python_All_A_Scientist_Needs "Python: All A Scientist Needs"]]; I recommend reading it first as it explains some of the attractions of Python and biopython. | This is a quick introduction to [[http://www.sagemath.org/index.html Sage]], a powerful new computational platform that builds on the strengths of Python. This article was directly inspired by Julius B. Lucks' [[http://openwetware.org/wiki/Julius_B._Lucks/Projects/Python_All_A_Scientist_Needs "Python: All A Scientist Needs"]]; I recommend reading it first as it explains some of the attractions of Python and biopython. | ||

− | Sage () is a free and open-source project for computation of all sorts that uses Python as its primary language and "glue". One of the goals of Sage is to provide a viable free and open-source alternative to Matlab, Maple, and Mathematica. | + | Sage () is a free and open-source project for computation of all sorts that uses Python as its primary language and "glue". One of the goals of Sage is to provide a viable free and open-source alternative to Matlab, Maple, and Mathematica. Sage unifies a great deal of open-source mathematical and statistical software; it includes biopython as an optional package and the statistics language R by default. |

+ | |||

+ | == Sage notebook interface == | ||

(TODO: notebook interface screenshots, different computers, good 2-d graphics) | (TODO: notebook interface screenshots, different computers, good 2-d graphics) | ||

− | Cython | + | == Cython == |

Sage initially used an alternative to SWIG (described in Julius's article) called Pyrex to compile Python code to C when performance concerns demanded it. Because they needed to extend Pyrex in various ways, they created a friendly fork of Pyrex called "Cython". I believe it is fair to say that Cython is the easiest way to create C code in Python. | Sage initially used an alternative to SWIG (described in Julius's article) called Pyrex to compile Python code to C when performance concerns demanded it. Because they needed to extend Pyrex in various ways, they created a friendly fork of Pyrex called "Cython". I believe it is fair to say that Cython is the easiest way to create C code in Python. | ||

(TODO: example of Cython usage) | (TODO: example of Cython usage) |

## Revision as of 11:16, 1 May 2008

## Abstract

This is a quick introduction to [Sage], a powerful new computational platform that builds on the strengths of Python. This article was directly inspired by Julius B. Lucks' ["Python: All A Scientist Needs"]; I recommend reading it first as it explains some of the attractions of Python and biopython.

Sage () is a free and open-source project for computation of all sorts that uses Python as its primary language and "glue". One of the goals of Sage is to provide a viable free and open-source alternative to Matlab, Maple, and Mathematica. Sage unifies a great deal of open-source mathematical and statistical software; it includes biopython as an optional package and the statistics language R by default.

## Sage notebook interface

(TODO: notebook interface screenshots, different computers, good 2-d graphics)

## Cython

Sage initially used an alternative to SWIG (described in Julius's article) called Pyrex to compile Python code to C when performance concerns demanded it. Because they needed to extend Pyrex in various ways, they created a friendly fork of Pyrex called "Cython". I believe it is fair to say that Cython is the easiest way to create C code in Python.

(TODO: example of Cython usage)