next up previous
Next: License Up: IPython An enhanced Interactive Previous: Reporting bugs

Subsections

Brief history

Origins

The current IPython system grew out of the following three projects:

When I found out (see sec. 16) about IPP and LazyPython I tried to join all three into a unified system. I thought this could provide a very nice working environment, both for regular programming and scientific computing: shell-like features, IDL/Matlab numerics, Mathematica-type prompt history and great object introspection and help facilities. I think it worked reasonably well, though it was a lot more work I had initially planned.

Current status

The above listed features work, and quite well for the most part. But until a major internal restructuring is done (see below), only bug fixing will be done, no other features will be added (unless very minor and well localized in the cleaner parts of the code).

IPython consists of almost 11000 lines of pure python code, of which roughly 50% are fairly clean. The other 50% are fragile, messy code which needs a massive restructuring before any further major work is done. Even the messy code is fairly well documented though, and most of the problems in the (non-existent) class design are well pointed to by a PyChecker run. So the rewriting work isn't that bad, it will just be time-consuming.

Future

See the separate new_design document for details. Ultimately, I would like to see IPython become part of the standard Python distribution as a `big brother with batteries' to the standard Python interactive interpreter. But that will never happen with the current state of the code, so all contributions are welcome.


next up previous
Next: License Up: IPython An enhanced Interactive Previous: Reporting bugs
Fernando Perez 2003-08-25