Content deleted Content added
Adding other early developers of IPython. |
m →Parallel computing: only linked later |
||
(35 intermediate revisions by 22 users not shown) | |||
Line 11:
| screenshot = IPython-6.x-screenshot-osx.png<!-- Image name is enough -->
| screenshot size = 220px
| screenshot alt = Screenshot of IPython 6.x on Mac OS, showing the computation of a
| caption = IPython Shell
| collapsible =
| author = [[Fernando Pérez (software developer)|Fernando Perez]]<ref name=history>{{cite web|url=http://blog.fperez.org/2012/01/ipython-notebook-historical.html|title=The IPython notebook: a historical retrospective|date=8 January 2012|publisher=Fernando Perez Blog}}</ref>
| developer = Brian E. Granger, Min Ragan-Kelley, Paul Ivanov, Thomas Kluyver, Matthias Bussonnier
| released = {{Start date and age|2001|df=yes}}<ref name=history />
| discontinued =
| latest_release_version = {{wikidata|property|reference|edit|Q2659957|P348}}
| latest_release_date = {{start date and age|{{wikidata|qualifier|Q2659957|P348|P577}}}}
| latest preview version =
| latest preview date =
| programming language = [[Python (programming language)|Python]], [[JavaScript]], [[Cascading Style Sheets|CSS]], [[HTML]]
| operating system = [[Cross-platform]]
Line 38 ⟶ 37:
'''IPython''' (Interactive Python) is a [[Shell (computing)|command shell]] for interactive computing in multiple programming languages, originally developed for the [[Python (programming language)|Python programming language]], that offers [[Introspection (computer science)|introspection]], [[rich media]], shell syntax, [[tab completion]], and history. IPython provides the following features:
* Interactive shells (terminal and [[Qt (
* A browser-based [[notebook interface]] with support for code, text, mathematical expressions, inline plots and other media.
* Support for interactive data visualization and use of GUI toolkits.
* Flexible, embeddable interpreters to load into one's own projects.
* Tools for [[parallel computing]].
IPython is a [[NumFOCUS]] fiscally sponsored project.<ref>{{cite web|title=NumFOCUS Sponsored Projects|url=https://numfocus.org/sponsored-projects|publisher=NumFOCUS|access-date=2021-10-25}}</ref>
== Parallel computing ==
[[File:IpythonArchitecture.png|thumbnail|Architectural View of IPython's parallel machinery]]
IPython is based on an architecture that provides parallel and distributed computing. IPython enables parallel applications to be developed, executed, debugged and monitored interactively, hence the I (Interactive) in IPython<!-- The 'I' in IPython refers to an 'interactive' command window that helps users to run code, access variables, call up data analysis packages and view plots, while the Python refers to the popular programming language that the notebook is based on. see, http://www.nature.com/news/interactive-notebooks-sharing-the-code-1.16261 -->.<ref>{{cite journal|last1=Helen|first1=Shen|title=Interactive notebooks: Sharing the code|journal=Nature|date=2014|volume=515|issue=7525|pages=151–152|doi=10.1038/515151a|pmid=25373681|bibcode=2014Natur.515..151S|doi-access=free}}</ref> This architecture abstracts out parallelism, enabling IPython to support many different styles of parallelism<ref>{{cite web|title=Using IPython for Parallel computing - IPython docs|url=https://ipython.org/ipython-doc/stable/parallel/parallel_intro.html}}</ref> including:
* Single program, multiple data ([[SPMD]]) parallelism
Line 56 ⟶ 57:
* Custom user defined approaches
With the release of IPython 4.0, the parallel computing capabilities were made optional and released under the [https://pypi.org/project/ipyparallel/ ipyparallel] python package. And most of the capabilities of ipyparallel are now covered by more mature libraries like [[Dask (software)|Dask]].
IPython frequently draws from SciPy stack<ref name="scipystack">{{cite web|url=http://www.scipy.org/install.html|title=SciPy Stack}}</ref> libraries like [[NumPy]] and [[SciPy]], often installed alongside one of many Scientific Python distributions.<ref name="scipystack" /> IPython provides integration with some libraries of the [[SciPy]] stack, notably [[matplotlib]], producing inline graphs when
== Other features ==
IPython allows non-blocking interaction with [[Tkinter]], [[PyGTK]], [[PyQt]]/[[PySide]] and [[wxPython]] (the standard Python shell only allows interaction with Tkinter). IPython can interactively manage parallel [[Computer cluster|computing clusters]] using asynchronous status callbacks and/or [[Message Passing Interface|MPI]]. IPython can also be used as a system shell replacement.<ref name="McKinney">{{cite book|chapter-url=http://shop.oreilly.com/product/0636920023784.do|last=McKinney|first=Wes|title=Python for Data Analysis|chapter=Chapter 3|year=2012|isbn=978-1-449-31979-3}}</ref> Its default behavior is largely similar to [[Unix shell]]s, but it allows customization and the flexibility of executing code in a live Python environment
== End of Python 2 support ==
IPython 5.x (Long Time Support) series
== Project Jupyter ==
{{Main|Project Jupyter}}
{{Third-party|section|date=October 2016}}
[[File:IPython-notebook.png|thumb|Old IPython Notebook interface]]
In 2014, IPython creator [[Fernando Pérez (software developer)|Fernando Pérez]] announced a spin-off project from IPython called [[Project Jupyter]].<ref>{{cite web|url=https://speakerdeck.com/fperez/project-jupyter|title=Project Jupyter // Speaker Deck}}</ref> IPython continued to exist as a Python shell and kernel for Jupyter, but the [[Notebook interface|notebook]] interface and other language-agnostic parts of IPython were moved under the Jupyter name.<ref>{{cite web|url=https://github.com/ipython/ipython|title=The Notebook, Qt console and a number of other pieces are now parts of Jupyter|website=[[GitHub]] |date=17 October 2021}}</ref><ref>{{cite web|url=https://blog.jupyter.org/the-big-split-9d7b88a031a7|title=The Big Split™|date=28 August 2017}}</ref> Jupyter is language agnostic and its name is a reference to core programming languages supported by Jupyter, which are [[Julia (programming language)|Julia]], [[Python (programming language)|Python]], and [[R (programming language)|R]].<ref>{{Cite web|url=https://github.com/jupyter/design/wiki/Jupyter-Logo|title=Jupyter Logo · jupyter/Design Wiki|website=[[GitHub]] }}</ref>
Jupyter [[Notebook interface|Notebook]] (formerly IPython
== In the media ==
IPython has been mentioned in the popular computing press and other popular media,<ref name="press2">{{cite web|title=Introducing IPython|date=12 September 2005|last=Koziol|first=Conrad|publisher=NewsForge|url=http://archive09.linux.com/feature/47635|access-date=14 June 2012|archive-date=7 June 2012|archive-url=https://web.archive.org/web/20120607065802/http://archive09.linux.com/feature/47635|url-status=dead}}</ref><ref name=Somers2018/> and it has a presence at scientific conferences.<ref name="press1">{{cite web|url=https://ipython.org/presentation.html|title=IPython Presentations}}</ref> For scientific and engineering work, it is often presented as a companion tool to [[matplotlib]].<ref name="cise">{{cite journal |last1=Pérez |first1=Fernando |last2=Granger |first2=Brian E. |title=IPython: A System for Interactive Scientific Computing |journal=Computing in Science & Engineering |volume=9 |pages=21–29 |number=3 |year=2007 |url=http://fperez.org/papers/ipython07_pe-gr_cise.pdf |url-status=dead |archive-url= https://web.archive.org/web/20100602042637/http://fperez.org/papers/ipython07_pe-gr_cise.pdf |archive-date= 2 June 2010 |access-date= 30 July 2015|doi=10.1109/MCSE.2007.53 |bibcode=2007CSE.....9c..21P |s2cid=16637923 }}</ref>
== Grants and awards ==
Beginning 1 January 2013, the [[Alfred P. Sloan Foundation]] announced that it would support IPython development for two years.<ref>{{cite web|url=http://mail.scipy.org/pipermail/ipython-dev/2012-December/010799.html|title=Announcement in scipy mailing list|access-date=12 December 2012|archive-date=5 March 2016|archive-url=https://web.archive.org/web/20160305020306/https://mail.scipy.org/pipermail/ipython-dev/2012-December/010799.html|url-status=dead}}</ref>
On 23 March 2013, [[Fernando Pérez (software developer)|Fernando Perez]] was awarded the Free Software Foundation [[Free Software Award for Projects of Social Benefit#Advancement of Free Software award|Advancement of Free Software award]] for IPython.
Line 85 ⟶ 86:
In August 2013, [[Microsoft]] made a donation of $100,000 to sponsor IPython's continued development.<ref>{{cite web|url=https://ipython.org/microsoft-donation-2013.html|title=IPython Announcement}}</ref>
In January 2014, it won the [[Jolt Awards|Jolt Productivity Award]]<ref>{{cite web|url=http://www.drdobbs.com/joltawards/jolt-awards-coding-tools/240165725?pgno=5|title=Jolt Productivity Award write-up in Dr. Dobb's}}</ref> from [[Dr. Dobb's]] in the category of coding tools. In July 2015, the project won a funding of $6 million from Gordon and Betty Moore Foundation, Alfred P. Sloan Foundation and Leona M. and Harry B. Helmsley Charitable Trust.<ref>{{Cite news|url = https://www.moore.org/newsroom/press-releases/2015/07/07/$6m-for-uc-berkeley-and-cal-poly-to-expand-and-enhance-open-source-software-for-scientific-computing-and-data-science|title = $6M for UC Berkeley and Cal Poly to expand and enhance open-source software for scientific computing and data science
In May 2018, it was awarded the 2017 ACM Software System Award.<ref>{{cite web|url=https://awards.acm.org/software-system|title=Recent Software System Award News}}</ref> It is the largest team to have won the award.<ref>{{cite news|url = https://blog.jupyter.org/jupyter-receives-the-acm-software-system-award-d433b0dfe3a2|title=Jupyter receives the ACM Software System Award}}</ref>
Line 97 ⟶ 98:
== References ==
{{Reflist
== External links ==
Line 105 ⟶ 106:
[[Category:Command shells]]
[[Category:Free mathematics software]]
[[Category:Free software programmed in Python]]
[[Category:
[[Category:Python (programming language) development tools]]
[[Category:Software using the BSD license]]
|