IPython
From Wikipedia, the free encyclopedia
Remove ads
IPython (de l'anglès Interactive Python, Python Interactiu) és un intèrpret d'ordres interactiu que afegeix funcionalitats addicionals a la manera interactiva d'interactuar amb Python, com per exemple el ressaltat de línies i d'errors mitjançant colors, una sintaxi addicional per a l'intèrpret d'ordres i autocompleció mitjançant un tabulador de variables, mòduls i atributs, entre altres funcionalitats. És un component del paquet SciPy.
Remove ads
Història
IPython és un intèrpret de comandes per al llenguatge de programació Python, on s'ha potenciat la component iterativa (d'aquí la lletra I). IPython és software lliure desenvolupat per múltiples programadors, destacant Fernando Pérez de la Universitat de Berkeley (California, EUA).[1]
IPython, tal com el coneixem avui, va sorgir dels tres projectes següents:
- IPython va començar com a resultat del desig de Fernando Pérez de coses com les indicacions de l'estil de Mathematica, l'accés a resultats anteriors (novament com el % de sintaxi de Mathematica) i un sistema de configuració flexible.
- IPP de Janko Hauser. Molt ben organitzat, gran usabilitat. Tenia un antic sistema d'ajuda. L'IPP es va utilitzar com a codi "contenidor" al qual Fernando va afegir la funcionalitat d'IPython i LazyPython.
- LazyPython de Nathan Gray. Senzill però molt potent, D'aquí es va agafar la sintaxi ràpida (parèntesis automàtics, cometes automàtiques, etc.) i traçades detallades de colors es van agafar d'aquí.
Fernando Pérez descriu la història d'IPython com:
"Quan vaig conèixer IPP i LazyPython vaig intentar unir els tres en un sistema unificat. Vaig pensar que això podria proporcionar un entorn de treball molt bonic, tant per la programació regular com per a la computació científica: funcions similars a les closques, numèrics IDL / Matlab, historial ràpid del tipus Mathematica i gran facilitat d'introspecció i ajuda. Crec que va funcionar raonablement bé, tot i que era molta més feina de la que tenia previst inicialment".[2]
Remove ads
Computació en paral·lel
IPython es basa en una arquitectura que subministra computació distribuïda i en paral·lel. IPython permet l'execució d'aplicacions en paral·lel, deixant a aquestes desenvolupar-se, executar-se, depurar-se i ser monitorades interactivament. L'arquitectura abstreu situacions en paral·lel, cosa que permet a IPython donar suport a múltiples tipus de computació en paral·lel. Entre aquests s'inclouen:
- Paral·lelisme SPMD (Single Program, Multiple Data).
- Paral·lelisme MIMD (Multiple Program, Multiple Data).
- Message Passing utilitzant MPI.
- Task Parallelism o paral·lelisme de tasques.
- Data Parallelism o paral·lelisme de dades.
- Combinació de les anteriors.
- Protocols personalitzats.
Amb el llançament d' IPython 4.0, les capacitats de paral·lelització varen passar a ser optatives sota la sortida d'un paquet de Python ipyparallel.[3]
Amb freqüència es basa en biblioteques de la “Scipy Stack" [4] com Numpy i Scipy. IPython proporciona integracions amb algunes biblioteques de “Scipy Stack”,[4] com per exemple matplotlib, produint gràfics en línia quan s'utilitza amb el Jupyter Notebook.
Remove ads
Projecte Jupyter
L'any 2014 Fernando Pérez anuncià el projecte ‘spin-off’ Projecte Jupyter [5]. En aquest projecte IPython serveix com a intèrpret o ‘shell' sota Jupyter però l'interfície i altres parts del llenguatge fou sobreescrites sota el nom de Jupyter.[6][7] El nom és un acrònim dels llenguatges Julia, Python i R, tots tres llenguatges interpretats amb suport a Jupyter.[8]
Jupyter Notebook és un entorn interactiu basat en web per crear, executar, i visualitzar codi interpretat amb IPython.
És similar a altres entorns a altres interfícies ‘notebook’ com les de Mapple, Mathematica o SageMath; un estil d'entorn originat als anys vuitanta.[9] Dona suport a entorns d'execució (kernels) en diversos llenguatges però per defecte s'utilitza IPython com a kernel.
Altres característiques
A més, IPython inclou una versió en GNU/Linux per a ser executat en X i usant la biblioteca WX. En l'ús de biblioteques d'interfície gràfica d'usuari, l'IPython no permet el bloqueig en la interacció amb Tkinter, GTK+, Qt ni WX; solament permet la interacció amb Tkinter. L'IPython pot gestionar de forma interactiva l'ús en paral·lel de diversos clústers. També es pot utilitzar per a reemplaçar l'intèrpret d'ordres de sistema gràcies a la flexibilitat d'ús i la capacitat de modificar-lo que permet el seu arxiu de configuració, especialment en Windows. L'IPython recorda un intèrpret d'ordres Unix i, fins i tot, permet utilitzar ordres Bash durant el seu ús per a, per exemple, canviar de directori de treball.
IPython no només permet executar directament codi Python i depurar-lo, també, des del mateix intèrpret podrem executar qualsevol comanda del sistema operatiu o scripts escrits en altres llenguatges (Bash, Perl, Ruby, etc.), sense necessitat d'iniciar altres consoles.
Remove ads
Notebook
El quadern estén l'enfocament basat en consoles a la informàtica interactiva en una direcció qualitativament nova, proporcionant una aplicació basada en web adequada per capturar tot el procés de càlcul: desenvolupar, documentar i executar codi, així com comunicar els resultats. IPython Notebook combina dos components:
- Una aplicació web: una eina basada en un navegador per l'autorització interactiva de documents que combinen text explicatiu, càlculs i la seva rica producció multimèdia.
- Característiques principals:
- Edició al navegador de codi, amb ressaltat automàtic de sintaxi, sagnat i finalització / introspecció de pestanyes
- La possibilitat d'executar codi des del navegador, amb els resultats de les computacions adjuntes al codi que els ha generat.
- Es mostra el resultat de la computació amb representacions multimèdia riques, com ara HTML, LaTeX, PNG, SVG, etc.
- Característiques principals:
- Documents del notebook: una representació de tot el contingut visible a l'aplicació, incloent-hi: entrades i sortides de les computacions, text explicatiu, matemàtiques, imatges i representacions en suports rics d'objectes. Els documents de notebook contenen les entrades i sortides d'una sessió interactiva, així com un text addicional que acompanya el codi però no està pensat per a l'execució. D'aquesta manera, els fitxers de quaderns poden servir com a registre informàtic complet d'una sessió, entrellaçant codi executable amb text explicatiu, matemàtiques i representacions riques d'objectes resultants. Aquests documents són fitxers JSON interns i es desen amb l'ipyn extensió. Com que JSON és un format de text senzill, es poden controlar en versió i compartir-los amb els companys. El notebook es pot exportar a diversos formats estàtics, HTML, LaTeX, PDF, etc., mitjançant la nova comanda nbconvert.[10]
Remove ads
Fi de la compatibilitat amb Python 2
Les versions IPython 5.x, anomenades Long Term Support (LTS) o suport a llarg termini, seran les últimes versions d'IPython amb suport per Python 2. El projecte d'IPython es va comprometre a no donar suport a Python 2 més enllà del 2020[11] sent un dels primers projectes a adscriure-se’n a la declaració de Python 3. Les versions més enllà de les 6.x són sols compatible amb Python 3 o superior.
En els mitjans de comunicació
L'IPython ha tingut repercussió en la premsa especialitzada de l'àmbit informàtic,[12] i se'n parla en conferències del món científic.[13] Se'l considera una eina per al treball científic[14] i freqüentment s'ha presentat conjuntament amb Matplotlib.[15]
Ajuts i reconeixements
L'1 de gener de 2013, l'Alfred P. Sloan Foundation va anunciar que donaria suport al desenvolupament d'IPython durant els següents dos anys.[16]
El 23 de març de 2013, Fernando Pérez va estar guardonat amb el premi Free Software Foundation Advancement of Free Software per IPython.
L'agost de 2013, Microsoft va fer una donació de 100.000 dòlars per patrocinar el desenvolupament continuat d'IPython.[17]
El gener de 2014, va guanyar el premi Jolt Productivity Award [18] del Dr. Dobb's en la categoria d'eines de codificació.
El juliol de 2015, el projecte va obtenir un finançament de 6 milions de dòlars de la Gordon and Betty Moore Foundation, Alfred P. Sloan Foundation i Leona M. i Harry B. Helmsley Charitable Trust.[19]
El maig de 2018, va ser guardonat amb el premi ACM Software System Award 2017.[20] L'equip d'IPython és l'equip amb més membres en haver guanyat el premi.[21]
Remove ads
Referències
Enllaços externs
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads