Professional Documents
Culture Documents
Guido Van Rossum public la primera versin de Python (versin 0.9.0) en alt.sources en
febrero de 1991. Dicha versin ya inclua el manejo de excepciones, de funciones y los
tipos de datos bsicos de lista, dict, str y otros. Tambin era orientado a objetos y tena un
sistema de mdulos.
La version 1.0 de Python fue lanzada en enero de 1994. Las nuevas caractersticas
principales en esta versin fueron las herramientas de programacin funcional lambda,
map, filter y reduce. Seis aos y medio despus en Octubre del 2000, Python 2.0 fue
introducido e inclua comprensin de listas, un recolector de basura completo y
compatibilidad con Unicode.
Python floreci por otros 8 aos en las versiones 2.x antes del siguiente gran lanzamiento
de Python 3.0 (tambin conocido como Python 3000 y Py3k) fuera realizado. Python 3
no es compatible con Python 2.x. El nfasis en Python 3 fue la eliminacin de
construcciones de programacin y mdulos duplicados (Klein, B. & Mitchinson, D., 2016).
Python combina sintaxis sencilla, recursos en lnea abundantes y un rico ecosistema de
herramientas enfocadas cientficamente con un fuerte nfasis en la comunidad. (Perkel, J.
M., 2015). Adems es un lenguaje multiplaforma, libre y gratuito que est sustituyendo a
software comercial (como MATLAB, Mathematica, Maple) en universidades
norteamericanas tales como MIT, Stanford o Caltech, y que se utiliza ampliamente por
empresas como Google, Dropbox o la NASA. (Computer-aided Chemical Engineering,
2015)
Los archivos de procesamiento por lotes (scripts) en Python tienen la extensin .py
(Rossant, C., 2016).
Instalando Python
Instalar Python en Windows no supone mucho problema, el problema viene cuando
queremos instalar todas las bibliotecas que vamos a necesitar para clculo cientfico
porque suelen tener extensiones escritas en otros lenguajes compilados y ese proceso de
instalacion se puede complicar enormemente. Al final lo que funciona son una serie de
distribuciones que traen todos esos paquetes ya configurados (Departamento de
Ingeniera Qumica y la Escuela Politcnica Superior, Universidad de Alicante, 2014).
Asi tenemos a los entornos de desarrollo integrados (IDEs por sus siglas en ingls)
Canopy, Spider, WinPython, Pyzo y Anaconda. Canopy y Spider se caracterizan en primer
lugar, por el resaltado de sintaxis, que colorea las diferentes partes de la sintaxis de
Python, segn su funcin, volviendo ms fcil de leer el cdigo; y en segundo lugar, y ms
importante an, corre un programa en el background denominado pyflakes que
comprueba la validez de la sintaxis de Python al ir escribiendo cdigo. Es como un
corrector integrado de ortografa y gramtica, siendo extremadamente til, para
principiantes y expertos por igual. (Pine, D. J., 2015)
Canopy es un IDE ms sencillo que Spyder de aprender por los principiantes. Est escrito
y es mantenido y distribuido por la compaa de software Enthought. (Pine, D. J., 2015).
Spyder cuenta con opciones avanzadas en edicin, pruebas interactivas, depuracin,
caractersticas de introspeccin y un entorno de computacin numrica gracias al apoyo
de IPython (Raybaut, P., 2016). Toda la distribucin Spyder es gratuita. (Pine, D. J., 2015)
En el caso de WinPython y Pyzo no es necesaria la instalacin y pueden cargarse en una
memoria usb, siendo posible utilizarlas en cualquier ordenador porque todo se ejecuta
desde ah. La distribucion pyzo es gratuita y funciona en todas las plataformas, est
disponible tanto para python 2 como para python 3 e incluye un entorno fuerte de
desarrollo integrado. (Departamento de Ingeniera Qumica y la Escuela Politcnica
Superior, Universidad de Alicante, 2014)
Anaconda, desarrollada por Continuum Analytics, es un software multiplataforma de
cdigo abierto, basada en la tecnologa de Python para el anlisis de datos (Parker, E.,
2015). Anaconda agrupa alrededor de 200 de las bibliotecas ms populares de Python
para la ciencia, las matemticas, la ingeniera y el anlisis de datos (Van Noorden, R.,
2015) e incluye otras herramientas tiles como el cuaderno IPython y el IDE Spider.
La instalacin de libreras adicionales y de otras versiones de Python se logra a travs de
Conda, un gestor de paquetes, dependencia y entorno. Anaconda es de licencia BSD que
da permiso para el uso comercial y redistribucin de Anaconda (Continuum Analytics,
2015). Anaconda es fcilmente integrable dentro de entornos de Tecnologas Informticas
existentes (Parker, E., 2015).
Qu es IPython?
IPython fue creado por Fernando Prez en 2001 (Rossant, C., 2016) y funciona como un
intrprete del lenguaje de programacin Python (Ahmadia, A. & Cano Rodrguez, J. L.,
2016). IPython ofrece una rica arquitectura de computacin interactiva con shells
interactivos de gran alcance (Berkeley Institute for Data Science, 2015), permitiendo,
dentro un mismo sistema, una rpida exploracin de algoritmos, anlisis de datos y
visualizacin a travs de una lnea interactiva de comandos en la que el cdigo se puede
ejecutar de inmediato, sin tener que pasar a travs del ciclo tradicional de editar/
compilar/ejecutar (Perez & Granger, 2007).
IPython tambin brinda soporte para herramientas GUI, as como herramientas para la
computacin en paralelo (Caporaso, J. G. et al., 2013) y una interfaz web, para el
cuaderno electrnico (Gibiansky, A., 2013) que facilitan la colaboracin en lnea.
Los cuadernos electrnicos, como los de IPython, Sweave o de knitr, tienen como objetivo
captar todo el proceso cientfico desde el diseo del estudio hasta el anlisis de datos y
El propio servidor del cuaderno electrnico est escrito en Python, pero la interaccin
frontend / backend es independiente del lenguaje. Esto hace que Python slo otro
backend en lo que se refiere al cuaderno electrnico. (Pallas, J., 2015)
Actualmente el cuaderno Jupyter soporta la integracin multi-idioma, permitiendo, por
ejemplo, mezclar cdigo Python con Cython; R; Octave; y escribir scripts en Bash, Perl o
Ruby, Scala, JavaScript, Matlab. (Berkeley Institute for Data Science, 2015; Krill, P., 2015).
Conceptos tiles.
Front-end y Back-end
En trminos simples, cada programa escrito por lo general puede ser clasificado en dos
grandes partes: cdigo de front end y cdigo de back end. El sftware de front end es
lo que el usuario ve cuando se ejecuta el programa (o para el caso se abre una pgina
web, etc.). Por lo general, se ocupa de la interfaz. El software de front end se limita a
organizar los datos introducidos por el usuario y que luego los enva al servidor o software
de back end y/o muestra informacin procesada enviada por el back end.
El back end es donde se encuentra la lgica real que impulsa el programa, adems de
poseer bases de datos. (Sharma, S., 2014)
Kernel
El kernel es el centro esencial de un sistema operativo de la computadora, el ncleo que
proporciona servicios bsicos para todas las dems partes del sistema operativo. Un
sinnimo es ncleo. Debido a que el cdigo que conforma el ncleo se necesita de forma
continua, este por lo general se carga en almacenamiento de ordenador en un rea que
est protegida de modo que no se superpondr con otras partes de uso menos frecuente
del sistema operativo.(Rouse, M., 2016a)
Archivos de procesamiento por lotes o Scripts
Contiene una lista de comandos para ejecutar en orden. Se ejecuta de principio a fin y
presenta una cierta salida. (Rossant, C., 2016)
Referencias Bibliogrficas
Ahmadia, A., & Cano Rodrguez, J. L. (2016). Parte 1-Introduccin a Python e IPython.
Recuperado el 31 de julio de 2016, a partir de
https://github.com/CAChemE/curso_python_alicante/blob/master/01_intro-pythonipython.ipynb
Berkeley Institute for Data Science. (2015, marzo 18). IPython. Recuperado el 31 de julio
de 2016, a partir de https://bids.berkeley.edu/research/ipython
Caporaso, J. G., Gonzalez, A., Granger, B. E., Knight, Rob, McDonald, D., Perez, F.,
Walters, W. A. (2013). Collaborative cloud-enabled tools allow rapid, reproducible
biological insights. International Society for Microbial Ecology, 7, 461464.
http://doi.org/10.1038/ismej.2012.123
Computer-aided Chemical Engineering. (2015). Charla Cuando Nature se toma el
software libre en serio: Python como alternativa real a MATLAB, Mathematica y
otros programas comerciales. Recuperado el 30 de julio de 2016, a partir de
http://cacheme.org/charla-nature-software-libre-python-alternativa-matlabmathematica/
Continuum Analytics. (2015, septiembre 21). Download Anaconda now! Recuperado el 31
de julio de 2016, a partir de https://www.continuum.io/downloads
Departamento de Ingeniera Qumica y la Escuela Politcnica Superior, Universidad de
Alicante. (2014). Instalacin de Python en Windows (y otros sistemas operativos)
[MP4]. Recuperado a partir de https://www.youtube.com/watch?
v=kLuwGhvWJzE&list=PLoGFizEtm_6iheDXw2-8onKClyxgstBO1&index=16
Perez, F., & Granger, B. E. (2007). IPython: A System for Interactive Scientific Computing.
Computing in Science & Engineering, 9(3), 2129.
http://doi.org/10.1109/MCSE.2007.53
Perkel, J. M. (2015). Programming: Pick up Python. Nature, 518(7537), 125126.
http://doi.org/10.1038/518125a
Pine, D. J. (2015). 10. Installing Python. Recuperado el 31 de julio de 2016, a partir de
http://www.physics.nyu.edu/pine/pymanual/html/apdx1/apdx1_install.html
Raybaut, P. (2016). Spyder - Documentation Spyder 2.3 documentation. Recuperado el
31 de julio de 2016, a partir de http://pythonhosted.org/spyder/index.html
Rebooting review. (2015). Nature Biotechnology, 33(4), 319319.
http://doi.org/10.1038/nbt.3202
Rossant, C. (2016, julio 29). IPython vs Python. Recuperado el 31 de julio de 2016, a
partir de https://plot.ly/python/ipython-vs-python/
Rouse, M. (2016a). What is kernel? Recuperado el 31 de julio de 2016, a partir de
http://searchenterpriselinux.techtarget.com/definition/kernel
Rouse, M. (2016b). What is shell? Recuperado el 31 de julio de 2016, a partir de
http://searchenterpriselinux.techtarget.com/definition/shell
Sharma, S. (2014, noviembre 27). What is back end programming? Quora. [Comentario
de Forum en lnea]. Recuperado a partir de https://www.quora.com/What-is-backend-programming
Shell (informtica). (2016, marzo 29). En Wikipedia, la enciclopedia libre. Recuperado a
partir de https://es.wikipedia.org/w/index.php?title=Shell_(inform
%C3%A1tica)&oldid=90126064
Shen, H. (2014). Interactive notebooks: Sharing the code. Nature, 515(7525), 151152.
http://doi.org/10.1038/515151a
The IPython Development Team. (2015). Making kernels for IPython IPython 3.2.1
documentation. Recuperado el 31 de julio de 2016, a partir de
https://ipython.org/ipython-doc/3/development/kernels.html
Van Noorden, R. (2014). My digital toolbox: Ecologist Ethan White on interactive
notebooks. Recuperado el 30 de julio de 2016, a partir de
http://www.nature.com/news/my-digital-toolbox-ecologist-ethan-white-oninteractive-notebooks-1.16015
Van Noorden, R. (2015). My digital toolbox: Climate scientist Damien Irving on Python
libraries. Nature. http://doi.org/10.1038/nature.2015.16805