PYTHON



Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible.
Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional.

 Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma.

Es administrado por la Python Software Foundation. Posee una licencia de código abierto, denominada Python Software Foundation License, que es compatible con la Licencia pública general de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores.




VENTAJAS

* Desarrollo más rápido : Puedes escribir un programa, salvarlo y ejecutarlo. En un lenguaje compilado tienes que pasar por los pasos de compilar y ligar el software, lo cual puede ser un proceso lento. 


* Multiplataforma : El mismo código funciona en cualquier arquitectura, la única condición es que disponga del intérprete del lenguaje. No es necesario compilar el código una vez para cada arquitectura. 







DESVENTAJAS

* Lentitud : Los programas interpretados son más lentos que los compilados. Sin embargo los programas interpretados suelen ser cortos, en los que la diferencia es inapreciable.






CARACTERÍSTICAS Y PARADIGMAS

Python es un lenguaje de programación multiparadigma.

 Esto significa que más que forzar a los programadores a adoptar un estilo particular de programación, permite varios estilos: programación orientada a objetosprogramación imperativa y programación funcional. Otros paradigmas están soportados mediante el uso de extensiones.

Python usa tipado dinámico y conteo de referencias para la administración de memoria.

Una característica importante de Python es la resolución dinámica de nombres; es decir, lo que enlaza un método y un nombre de variable durante la ejecución del programa (también llamado enlace dinámico de métodos).

Otro objetivo del diseño del lenguaje es la facilidad de extensión. Se pueden escribir nuevos módulos fácilmente en C o C++. Python puede incluirse en aplicaciones que necesitan una interfaz programable.

Aunque la programación en Python podría considerarse en algunas situaciones hostil a la programación funcional tradicional del Lisp, existen bastantes analogías entre Python y los lenguajes minimalistas de la familia Lisp como puede ser Scheme.



PRINCIPALES CARACTERÍSTICAS DEL LENGUAJE PYTHON


Python es un lenguaje de programación creado por Guido van Rossum a finales de los ochenta, y que gracias a sus características ha llegado a ser un lenguaje muy conocido en la actualidad. A continuación se listan las principales características que este lenguaje posee:

SIMPLE:

Python es un lenguaje muy simple, por lo que es muy fácil iniciarse en este lenguaje. El pseudo-código natural de Python es una de sus grandes fortalezas.

PROPÓSITO GENERAL:

Usando el lenguaje Python se puede crear todo tipo de programas; programas de propósito general y también se pueden desarrollar páginas Web.

OPEN SOURCE:

Débito a la naturaleza de Python de ser Open Suorce; ha sido modificado para que pueda funcionar en diversas plataformas (Linux, Windows, Macintosh, Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE y PocketPC).

Al ser Open Source es gratuito.

LENGUAJE ORIENTADO A OBJETOS:

Al ser un Lenguaje Orientado a Objetos es construido sobre objetos que combinan datos y funcionalidades.

LENGUAJE DE ALTO NIVEL:

Al programar en Python no nos debemos preocupar por detalles de bajo nivel, (como manejar la memoria empleada por el programa).

INCRUSTABLE:

Se puede insertar lenguaje Python dentro un programa C/C++ y de esta manera ofrecer las facilidades del scripting.

EXTENSAS LIBRERÍAS:

Python contiene una gran cantidad de librerías, tipos de datos y funciones incorporadas en el propio lenguaje, que ayudan a realizar muchas tareas comunes sin necesidad de tener que programarlas desde cero.

Las librerías pueden ayudar a hacer varias cosas como expresiones regulares, generación de documentos, evaluación de unidades, pruebas, procesos, bases de datos, navegadores web, CGI, ftp, correo electrónico, XML, XML-RPC, HTML, archivos WAV, criptografía, GUI, y también otras funciones dependientes del Sistema.

SINTAXIS CLARA:

Python tiene una sintaxis muy visual, gracias a que maneja una sintaxis identada (con márgenes), que es de carácter obligatorio. Para separar los bloques de código en Python se debe tabular hacia dentro. Esto ayuda a que todos los programadores adopten las mismas notaciones y que los programas hechos en Python tengan un aspecto muy similar.

Versiones

Cronología de Python


* Comienzo de la implementación - December, 1989

*  Publicación interna en CWI - 1990

*  Python 0.9 - 20 de febrero de 1991 (publicado en alt.sources)



*  Python 0.9.1 - Febrero de 1991



 Python 0.9.2 - Otoño de 1991


*  Python 0.9.4 - 24 de diciembre de 1991


*  Python 0.9.5 - 2 de enero de 1992 (solo para Macintosh)


*  Python 0.9.6 - 6 de abril de 1992


  Python 0.9.7 beta - 1992


*  Python 0.9.8 - 9 de enero de 1993


*  Python 0.9.9 - 29 de julio de 1993


*  Python 1.0 - Enero de 1994


*   Python 1.5 - 31 de diciembre de 1997


* Python 1.6 - 5 de septiembre de 2000


*  Python 2.0 - 16 de octubre de 2000


  Python 2.1 - 17 de abril de 2001


*   Python 2.2 - 21 de diciembre de 2001


* Python 2.3 - 29 de julio de 2003


*  Python 2.4 - 30 de noviembre de 2004


*   Python 2.5 - 19 de septiembre de 2006


*    Python 2.6 - 1 de octubre de 2008


*   Python 2.7 - 3 de julio de 2010


*    Python 3.0 - 3 de diciembre de 2008


Python 3.1 - 27 de junio de 2009


* Python 3.2 - 20 de febrero de 2011


*  Python 3.3 - 29 de septiembre de 2012


* Python 3.4 - 16 de marzo de 2014









PRIMERA PUBLICACIÓN


En 1991, Van Rossum publicó el código de la versión 0.9.0 en alt.sources.

 En esta etapa del desarrollo ya estaban presentes clases con herencia, manejo de excepciones,funciones y los tipos modulares, como: str, list, dict, entre otros.

 Además en este lanzamiento inicial aparecía un sistema de módulos adoptado de Modula-; Van Rossum describe el módulo como “una de las mayores unidades de programación de Python. El modelo de excepciones en Python es parecido al de Modula-3, con la adición de una cláusula else. En el año 1994 se formó comp.lang.python, el foro de discusión principal de Python, marcando un hito en el crecimiento del grupo de usuarios de este lenguaje.

VERSIÓN 1.0


Python llega a la versión 1.0 en enero de 1994.

 Las características más importantes incluidas en esta publicación fueron las herramientas de la programación funcionallambda, reduce, filter y map

Van Rossum ha comentado que "Python adquiere lambda, reduce(), filter() and map(), cortesía de un hacker de Lisp que las extrañaba y envió parches que funcionaban".

La última versión liberada proveniente de CWI fue Python 1.2. En 1995, van Rossum continuó su trabajo en Python en la Corporation for National Research Initiatives (CNRI) en Reston, Virginia, donde lanzó varias versiones del software.

Para la versión 1.4, Python adquirió varias características nuevas. Es notable entre estas los argumentos por nombre inspirados por Modula-3  y soporte "built-in" para los números complejos.

Durante su estancia en CNRI, Van Rossum lanzó la iniciativa Computer Programming for Everybody (CP4E), con el fin de hacer la programación más accesible a más gente, con un nivel de 'alfabetización' básico en lenguajes de programación, similar a las habilidades básicas en inglés y matemáticas necesarias por muchos empleadores.

 Python tuvo un papel crucial en este proceso: debido a su orientación hacia una sintaxis limpia, ya era idóneo, y las metas de CP4E presentaban similitudes con su predecesor, ABC.

 El proyecto fue patrocinado por DARPA. El proyecto CP4E está inactivo, y mientras tanto Python intenta ser fácil de aprender y no muy arcano en su sintaxis y semántica, pero alcanzar a los no-programadores ya no es una preocupación activa.

BeOpen


En el año 2000, el equipo principal de desarrolladores de Python se cambió a BeOpen.com para formar el equipo BeOpen PythonLabs.

 CNRI pidió que la versión 1.6 fuera publicada hasta el punto de desarrollo en que el equipo abandonó CNRI. Consecuentemente su agenda de lanzamiento para la versión 1.6 y la versión 2.0 tenían una significativa cantidad de solapamiento.

 Python 2.0 fue el primer y único lanzamiento de BeOpen.com. Después que Python 2.0 fuera publicado por BeOpen.com, Guido van Rossum y los otros desarrolladores de PythonLabs se unieron a Digital Creations.

La publicación de Python 1.6 incluía una nueva licencia de CNRI que era substancialmente más larga que la licencia de CWI que había sido usada en las publicaciones anteriores.

 La nueva licencia incluía una cláusula estipulando que la licencia estaba gobernada por las leyes del estado de Virginia.

 La Free Software Foundation (FSF) argumento la cláusula era incompatible con GNU GPL. Entonces BeOpen, CNRI, y FSF acordaron cambiar Python hacia una licencia de software libre que lo haría compatible con GPL. Python 1.6.1 es básicamente el mismo que Python 1.6, con unos arreglos de bugs, y con la nueva licencia compatible con GPL.

VERSIÓN 2.0


Python 2.0 tomó una importante característica del lenguaje de programación funcional Haskell: generación de listas.

 La sintaxis de Python para esta construcción es muy similar a la de Haskell, salvo por la preferencia de los caracteres de puntuación en Haskell, y la preferencia de Python por palabras claves.

 Python 2.0 introdujo además un sistema de recolección de basura capaz de recolectar referencias cíclicas.
Python 2.1 fue un trabajo derivado de Python 1.6.1, así como también de Python 2.0. Su licencia fue renombrada a: Python Software Foundation License.

 Todo el código, documentación y especificaciones añadidas, desde la fecha del lanzamiento de la versión alfa de Python 2.1, pertenece a Python Software Foundation (PSF), una organización sin ánimo de lucro fundada en el año 2001, tomando como modelo la Apache Software Foundation.

 Este lanzamiento incluyó un cambio en el lenguaje para soportar ámbitos anidados (más conocido en programación como "nested scopes") como lo soportan otros lenguajes de "static scoping" (del cual Scheme es el originador). (Esta características fue deshabilitada por defecto, y no requerida, hasta Python 2.2.)

Una gran innovación en Python 2.2 fue la unificación de los tipos en Python (tipos escritos en C), y clases (tipos escritos en Python) dentro de una jerarquía. Esa unificación logró un modelo orientado a objetos de Python puro y consistente. También fueron agregados los generadores que fueron inspirados por el lenguaje Icon.

VERSIÓN 3.0


Python 3.0 (también conocido como "Python 3000" o "Py3K") fue diseñado para rectificar ciertas fallas fundamentales en el diseño del lenguaje (los cambios requeridos no podían ser implementados mientras se mantuviera compatibilidad hacia atrás con la serie 2.x).

 El principio que guía Python 3 es: "reducir la duplicación de características eliminando viejas formas de hacer las cosas ".

FILOSOFÍA


Python 3.0 fue desarrollado con la misma filosofía que en las versiones anteriores.

 Sin embargo, como Python ha acumulado nuevas y redundantes formas de programar la misma tarea, Python 3.0 ha hecho énfasis en eliminar constructores duplicados y módulos, en consecuencia con "Debe haber un— y preferiblemente solo un —modo obvio de hacerlo".

A pesar de esto, Python 3.0 se mantiene como un lenguaje de programación multiparadigma.

 Los programadores todavía tienen opciones entre orientación a objetos,programación estructurada, programación funcional y otros paradigmas, pero dentro de estas amplias opciones, los detalles intentan ser más obvios en Python 3.0 que como eran en Python 2.x.

CRONOLOGÍA Y COMPATIBILIDAD


Python 3.0 fue liberado el 3 de diciembre de 2008.

 Las series Python 2.x y Python 3.x estaban planeadas para coexistir por varias publicaciones lanzándolas en paralelo, con la serie 2.x existente mayormente por compatibilidad y con algunas nuevas características siendo importadas hacia atrás de la serie 3.x. Python 2.6 fue liberado para coincidir con Python 3.0, e incluye algunas características de esa publicación, así como un modo de "alertas (warnings)" que resalta el uso de características que han sido eliminadas en Python 3.0.

 Similarmente, Python 2.7 coincide e incluye características de Python 3.1, que fue publicado el 26 de junio de 2009. Python 2.7 fue la última publicación en la serie 2.x; las publicaciones en paralelo terminaron con Python 3.2.

Python 3.0 rompe la compatibilidad hacia atrás. El código de Python 2.x no necesariamente debe "correr" en Python 3.0 sin modificarlo.

Hay cambios básicos tales como el cambio de print en una función (por lo tanto cualquier uso como print "Hello Python" provocará un error en Python 3.x), y el cambio a Unicode para todos los textos "strings".

 El tipado dinámico de Python combinado con los planes para cambiar la semántica de ciertos métodos de los diccionarios, por ejemplo, hacen que convertir perfectamente de Python 2.x a Python 3.0 sea muy difícil de manera automática.

 Sin embargo, una herramiento llamada "2to3" puede hacer la mayoría del trabajo de "traducción", señalando áreas que confusas para ella usando comentarios o alertas. Incluso en la etapa "alpha", 2to3 se mostraba claramente satisfactoria para ejecutar las traducciones del código.

 For projects requiring compatibility with both the 2.x and 3.x series, the Python development team recommended keeping one source (for the 2.x series), and producing releases for the Python 3.x platform using 2to3. Edits to the Python 3.x code were discouraged for so long as the code needed to run on Python 2.x.

CARACTERÍSTICAS


Algunos de los mayores cambios anunciados para Python 3.0 fueron:

* Cambiar la instrucción print de modo que sea una función "built-in", no una instrucción. Esto ha hecho que sea más fácil cambiar un módulo para usar una función print diferente, así como hacer la sintaxis más regular. En Python 2.6 y 2.7 esta característica puede ser habilitada usando from-future-port print-unction.

 Moviendo reduce (pero no map o filter) fuera del espacio de nombres "built-in" dentro de "functools".

* Adicionar soporte para anotación opcional en funciones que pueda ser usar para la declaración informal de tipos u otros propósitos.

* Unificar los tipos str/unicode, representando texto, e introduciendo un tipo immutable bytes; y un más correspondiente tipo mutable bytearray, ambos de los cuales representas "arrays" de bytes;

*  Eliminar compatibilidad hacia atrás, incluidas clases "old-style", excepciones "string", e implícitos "imports" relativos.

Las subsecuentes publicaciones de la serie Python 3.x han incluido sustanciales nuevas características; todas al corriente del desarrollo que el lenguaje ha tenido en la serie 3.x.

ESPECIFICACIONES


Python es un lenguaje de scripting independiente de plataforma y orientado a objetos, preparado para realizar cualquier tipo de programa, desde aplicaciones Windows a servidores de red o incluso, páginas web. Es un lenguaje interpretado, lo que significa que no se necesita compilar el código fuente para poder ejecutarlo, lo que ofrece ventajas como la rapidez de desarrollo e inconvenientes como una menor velocidad. 

En los últimos años el lenguaje se ha hecho muy popular, gracias a varias razones como:


*    La cantidad de librerías que contiene, tipos de datos y funciones incorporadas en el propio lenguaje, que ayudan a realizar muchas tareas habituales sin necesidad de tener que programarlas desde cero.

*     La sencillez y velocidad con la que se crean los programas. Un programa en Python puede tener de 3 a 5 líneas de código menos que su equivalente en Java o C.

*   La cantidad de plataformas en las que podemos desarrollar, como Unix, Windows, OS/2, Mac, Amiga y otros.

*     Además, Python es gratuito, incluso para propósitos empresariales.

DE DÓNDE VIENE PYTHON 


El creador del lenguaje es un europeo llamado Guido Van Rossum. Hace ya más de una década que diseño Python, ayudado y motivado por su experiencia en la creación de otro lenguaje llamado ABC.


 El objetivo de Guido era cubrir la necesidad de un lenguaje orientado a objetos de sencillo uso que sirviese para tratar diversas tareas dentro de la programación que habitualmente se hacía en Unix usando C. 

El desarrollo de Python duró varios años, durante los que trabajó en diversas compañías de Estados Unidos. En el 2000 ya disponía de un producto bastante completo y un equipo de desarrollo con el que se había asociado incluso en proyectos empresariales.


 Actualmente trabaja en Zope, una plataforma de gestión de contenidos y servidor de aplicaciones para el web, por supuesto, programada por completo en Python. 

CARACTERÍSTICAS DEL LENGUAJE 

PROPÓSITO GENERAL 

Se pueden crear todo tipo de programas. No es un lenguaje creado específicamente para la web, aunque entre sus posibilidades sí se encuentra el desarrollo de páginas. 

MULTIPLATAFORMA 

Hay versiones disponibles de Python en muchos sistemas informáticos distintos. Originalmente se desarrolló para Unix, aunque cualquier sistema es compatible con el lenguaje siempre y cuando exista un intérprete programado para él. 

INTERPRETADO 

Quiere decir que no se debe compilar el código antes de su ejecución. En realidad sí que se realiza una compilación, pero esta se realiza de manera transparente para el programador. En ciertos casos, cuando se ejecuta por primera vez un código, se producen unos bytecodes que se guardan en el sistema y que sirven para acelerar la compilación implícita que realiza el intérprete cada vez que se ejecuta el mismo código. 

INTERACTIVO 

Python dispone de un intérprete por línea de comandos en el que se pueden introducir sentencias. Cada sentencia se ejecuta y produce un resultado visible, que puede ayudarnos a entender mejor el lenguaje y probar los resultados de la ejecución de porciones de código rápidamente. 

ORIENTADO A OBJETOS 

La programación orientada a objetos está soportada en Python y ofrece en muchos casos una manera sencilla de crear programas con componentes reutilizables. 

FUNCIONES Y LIBRERÍAS 

Dispone de muchas funciones incorporadas en el propio lenguaje, para el tratamiento de strings, números, archivos, etc. Además, existen muchas librerías que podemos importar en los programas para tratar temas específicos como la programación de ventanas o sistemas en red o cosas tan interesantes como crear archivos comprimidos en .zip. 

SINTAXIS CLARA 

Por último, destacar que Python tiene una sintaxis muy visual, gracias a una notación identada (con márgenes) de obligado cumplimiento.


 En muchos lenguajes, para separar porciones de código, se utilizan elementos como las llaves o las palabras clave begin y end.

 Para separar las porciones de código en Python se debe tabular hacia dentro, colocando un margen al código que iría dentro de una función o un bucle.

 Esto ayuda a que todos los programadores adopten unas mismas notaciones y que los programas de cualquier persona tengan un aspecto muy similar. 

CONCLUSIÓN 

Python está en movimiento y en pleno desarrollo, pero ya es una realidad y una interesante opción para realizar todo tipo de programas que se ejecuten en cualquier máquina. El equipo de desarrollo está trabajando de manera cada vez más organizada y cuentan con el apoyo de una comunidad que está creciendo rápidamente. 




No hay comentarios:

Publicar un comentario