25 de abril de 2008

AZ 26: Lenguajes de programación. Parte 4/5: Python

Phyton es un lenguaje de programación poderoso y fácil de aprender. Contiene estructuras de datos altamente eficientes y un simple pero efectivo acercamiento a la programación orientada a objetos.

Si alguna ves has escrito un shell script muy argo, probablemente conoces este sentimiento; sería genial agregar alguna otra función, pero ya el script es demasiado lento, largo y complicado, o esta función que involucra alguna llamada al sistema o algún procedimiento que es únicamente accesible desde C. A menudo el problema a mano no es lo suficientemente serio como para reescribirel script en C; aunque el problema requiera de cadenas de longitud variable u otro tipo de datos (como listas o manejo de archivos), que son sencillos para el shell pero requieren de bastante trabajo al implementarlos en C, o incluso no estás suficientemente familiarizado con C.

Otra situación: quizás tienes que trabajar con varias librerías de C, y el ciclo escritura/compilación/prueba/recompilación es muy lento y necesitas desarrollar software con más velocidad. Posiblemente hallas escrito un programa que necesite una extensión del lenguaje y no quieres diseñar tu propio lenguaje, escribir y depurar un intérprete para él y enlazar tu aplicación.

En estos casos Python demuestra sus bondades pues es simple de usar, pero es un verdadero lenguaje de programación que ofrece mucho más estructura y soporte para programas grandes. Por otro lado, ofrece mucho más chequeo de errores que C y al ser un lenguaje de alto nivel contiene estructuras de datos de alto rendimiento, tales como arreglos flexibles y diccionarios que podrían costarle días para implementalos efectivamente en C. Debido a sus tipos de datos más generales, Python es aplicable a un número mayor de problemas que AWK e incluso Perl.

Python te permite fragmentar tus programas en módulos que puedes reutilizar para emplearlos en otros programas. Viene con una colección de módulos estándar para usar coo base para tus programas. Incluye además módulos construídos para proveer de entrada y salida para archivos, llamadas al sistema, sockets e incluso interfaces para herramientras gráficas como Tk.

Python es un lenguaje interpretado, lo que implica el ahorro de tiempo durante el desarrollo de un programa ya que no necesita de compilar y ligar. El intérprete puede usarse de modo interactivo, el cual hace fácil el experimentar con las características del lenguaje pàra probar funciones durante lña etapa inicial de desarrollo. Es además una calculadora de escritorio.

Permite escribir programas muy compactos y lejibles, además de que los programas en Python suelen ser mucho más pequeños que sus contrapartes en C por varias razones:

  • Los tipos de datos en Python permiten expresar operaciones más complejas en sentencias cortas.
  • El agrupamiento de sentencias se realiza por identación en lugar de llaves de principio y fin
  • No se necesita de la declaración de variables.
Python es extensible. Si sabes programar en C es sencillo agregarle nuevos módulos o funciones ak intérprete, así como ejecutar operaciones críticas a buena velocidad o ligar programas a librerías que pueden ser accesibles solamente en forma binaria. Una ves hechoe sto puede ligarse el intérprete en una aplicación escrita en C y usarse como una extensión de la aplicación.

Fuentes:

  • Python Tutorial. Release 1.5.2. Guido van Rossum. 1998. USA.

Artículo original