post

Python sp-ar:Introduccion

Contents

Introducción

Python es uno de esos raros lenguajes que puede arrogarse a la vez ser simple y poderoso. Te encontrarás gratamente sorprendido de lo fácil que es concentrarse en la solución del problema en vez de en la sintaxis y la estructura del lenguaje con el que se está programando.

La introducción oficial a Python es:

Python es un lenguaje de programación fácil de aprender y porderoso. Tiene eficientes estructuras de datos de alto nivel y un simple pero efectivo abordaje de la programación orientada a objetos. La elegante sintaxis de Python y el tipado dinámico, en conjunto con el hecho de ser un lenguaje interpretado, lo hacen un lenguaje ideal para escribir scripts y el desarrollo rápido de aplicaciones en muchas áreas y sobre la mayoría de las plataformas.

Discutiré la mayor parte de estas características con más detalle en la sección siguiente.

Nota
Guido van Rossum, el creador del leguaje Python, nombró el lenguaje despues de ver el show de la BBC “Monty Python’s Flying Circus”. El no aprecia particularmente las serpientes que matan otros animales para comérselos enroscando sus largos cuerpos a su alrededor y extrangulándolos.

Características de Python

Simple
Python un lenguaje simple y minimalista. Leer un buen programa en Python es casi como leer Inglés, ¡aunque un Inglés muy estricto! Esta naturaleza de seudo-codigo de Python es una de sus más grandes fortalezas. Permite que te concentres en la solución del problema en lugar de en el propio lenguaje.
Fácil de Aprender
Como podrás observar, es extremadamente fácil iniciarse en Python. Python tiene una sintaxis extraordinariamente simple como ya he mencionado.
Libre y Open Source
Python es un ejemplo de FLOSS (Free/Libre y Open Source Software). En palabras sencillas, podés distribuir libremente copias de este software, leer su código fuente, modificarlo, y usar partes en nuevos programas libres. FLOSS está basado en el concepto de una comunidad que comparte su conocimiento. Esta es una de las razones por la cual Python es tan bueno – ha sido creado y es constantemente mejorado por una comunidad que solo quiere ver un Python mejor.
Lenguaje de Alto Nivel
Cuando escribís programas en Python, nunca necesitás preocuparte por detalles de bajo nivel como el manejo de la memoria usada por tu programa, etc.
Portable
Debido a su naturaleza open source, Python ha sido portado a (esto es, modificado para que funcione sobre) muchas plataformas. Todos tus programas Python pueden funcionar en cualquiera de estas plataformas sin que requieran ninguna modificación si tenés el cuidado necesario para evitar cualquier funcionalidad dependiente del sistema operativo.
¡Podés usar Python sobre Linux, Windows, FreeBSD, 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 aun PocketPC!
Interpretado
Esto requiere un poco de explicación.
Un programa escrito en un lenguaje compilado como C o C++ es convertido de lenguaje fuente p.ej: C o C++ a un lenguaje que es hablado por tu computadora (código binario esto es 0s y 1s) usando un compilador con varias banderas y opciones. Cuando ejecutas el programa, el linker/loader copia el programa desde el disco rígido a la memoria y comienza a ejecutarlo.
Python, alternativamente, no necesita la compilación a binario. Solamente ejecutas el programa directamente desde el código fuente. Internamente, Python convierte el código fuente a una forma intermedia llamada bytecodes y luego traduce esto al lenguaje nativo de tu computadora y lo ejecuta. Todo esto, realmente, hace que usar Python sea más fácil ya que no te tenés que preocupar por compilar el programa, asegurándote de que las librerías correspondientes hayan sido enlazadas y cargadas, etc, etc. Esto hace tus programas Python mucho más portables, ya que podés solo copiar tu programa Python en otra computadora y ¡sencillamente funciona!
Orientado a Objetos
Python soporta tanto la programación procedural como la programación orientada a objetos. En los lenguajes procedurales, el programa está construido basado en procedimientos o funciones que no son sino partes reusables de programas. En los lenguajes orientados a objetos el programa está basado en objetos que combinan datos y funcionalidad. Python tiene una forma muy poderosa aunque simple de hacer POO, especialmente si se la comprara con grandes lenguajes como C++ o Java.
Extensible
Si necesitás una porción de código crítica para que corra rápidamente o querés implementar una parte de un algoritmo para que no sea abierto, podés codificar esa parte de tu programa en C o C++ y luego usarla desde tu programa Python.
Embebible
Podés embeber Python en tus programas C/C++ para ofrecer capacidades de scripting a los usuarios de tus programas.
Librerías Amplias
La Librería Estándar de Python es enorme. Puede ayudarte a hacer varias cosas incluyendo expresiones regulares, generación de documentación, testing unitario, threading, bases de datos, exploradores web, CGI, FTP, email, XML, XML-RPC, HTML, archivos WAV, criptografía, GUI (interfaz gráfica de usuario), Tk, y otras cosas dependientes del sistema operativo. Recordá que todo esto está siempre disponible donde quiera que Python está instalado. Esto es lo que se llama la filosofía de ‘Pilas Incluidas’ de Python.
Además de la librería estándar, hay varias librerías más de alta calidad como wxPython , Twisted, Python Imaging Library y muchas más.

Python es, de hecho un lenguaje poderoso y atractivo. Posée la combinación justa de funcionalidad y desempeño que hace que escribir programas en Python sea a la vez fácil y divertido.

¿Porqué no Perl?

Por si aun no lo sabías, Perl es otro lenguaje de programación open source interpretado extremadamente popular.

¡Si alguna vez intentaste escribir un programa de gran tamaño en Perl, , te habrías respondido esta pregunta vos mismo! En otras palabras los programas en Perl son fáciles cuando son cortos y se destaca por los pequeños hacks y scripts que ayudan a ‘tener el trabajo hecho’. De todos modos, se vuelven difíciles de manejar en la medida que escribís programas más largos y estoy hablando desde mi experiencia escribiendo programas largos en Perl en Yahoo!

En comparación con Perl, los programas en Python son definitivamente más simples, más claros, fáciles de escribir y por lo tanto más entendibles y mantenibles. Admiro Perl y lo uso diariamente para varias cosas, pero cuando escribo un programa, siempre comienzo pensándolo en terminos de Python porque se ha vuelto natural para mi. Perl ha experimentado muchos hacks y modificaciones, que te hacen sentir que se trata de un gran (un infierno de) hack. Desafortunadamente, la próxima versión Perl 6 no parece estar mejorando mucho al respecto.

La única y muy significativa ventaja que siento que tiene Perl es la enorme librería CPAN – la Comprehensive Perl Archive Network. Como el nombre lo sugiere, esta es una inmensa colección de modulos Perl y es simplemente impresionante por su gran tamaño y profundidad – podés hacer virtualmente cualquier cosa que se pueda hacer con una computadora usando esos módulos. Una de las razones por las que Perl tiene más librerías que Python es que ha estado por ahí por mucho mas tiempo que Python. De todos modos eso parece estar cambiando con el creciente Indice de Paquetes Python.

¿Porqué no Ruby?

Si todavía no lo sabías, Ruby es otro lenguaje open source interpretado muy popular.

Si vos ya usas Ruby y te gusta, definitivamente te recomendaría que continúes usándolo.

Para la gente que no lo ha usado y está tratando de decidir si aprender Python o Ruby, les recomendaría Python, solamente desde la perspectiva de que es más fácil de aprender. Personalmente encuentro el lenguaje Ruby dificil de entender, pero toda la gente que entiende Ruby alaba la belleza del lenguaje. Desafortunadamente, no tengo esa suerte.

Qué Dicen los Programadores

Te puede resultar de interés leer lo que los grandes hackers como ESR tienen para decir sobre Python:

  • Eric S. Raymond es el autor de “La Catedral y el Bazar” y es también la persona que acuñó el término Open Source. El dice que Python se ha convertido en su lenguaje de programación favorito. Este artículo fue el que inspiró mi primer contacto con Python.
  • Bruce Eckel es el autor de los famosos libros Pensando en Java y Pensando en C++. El dice que ningún lenguaje lo ha hecho más productivo que Python. Dice que Python es, quizá el único lenguaje que se concentra en hacer las cosas fáciles para el programador. Lee la entrevista completa para más detalles.
  • Peter Norvig es un conocidísimo autor de Lisp y el Director de Calidad de Búsqueda en Google (gracias a Guido van Rossum por señalarme esto). El dice que Python siempre ha sido una parte integral de Google. Podés verificar estas afirmaciones pegando una mirada a la página de Google Jobs que lista conocimiento de Python como requerimiento para los ingenieros en software.

Acerca de Python 3.0

Python 3.0 es la próxima versión de el lenguaje. A veces es mencionada como Python 3000 o Py3K.

La razón principal para una versión mayor de Python es remover todos los pequeños problemas y detallitos que ha acumulado a lo largo de estos años y hacer un lenguaje aun más limpio.

Si tenés mucho código Python 2.x, hay una utilidad que te ayuda a convertir código fuente 2.x a 3.x.

Más detalles en:


Advertisements