Universidad Nacional Autónoma de México
Dirección General de Servicios de Cómputo Académico
Año 7 Núm. 74, Publicación Mensual, 27 de Noviembre de 2008

ARTÍCULOS

 

Año 5, Número 48, Abril de 2006

PERL, un freeware de éxito

Carlos Mario Malagón Lazcano

 

PERL (Practical Extraction and Report Language) es un lenguaje de programación de alto nivel que surge a raíz del lenguaje de programación C, con la finalidad de desarrollar uno de menor extensión que cubriera las deficiencias del sed (1), awk (2), el Unix shell y muchos otros lenguajes y herramientas que tienen para la manipulación de textos y procesos. Una de las razones por la que es ampliamente aceptado en el mundo es porque la programación en alto nivel permite escribir de manera más familiar las instrucciones que desarrolla un equipo, las cuales son traducidas al código máquina mediante un intérprete.

Programar en PERL no es vistoso, pero sí funcional. La facilidad de manipulación de archivos y textos que otorga, permite que sea ampliamente empleado para actividades que incluyen el desarrollo rápido de prototipos, sistemas de utilerías, herramientas de software, actividades de administración de sistemas, acceso a bases de datos, programación gráfica, redes y programación de WWW.

Su funcionamiento

La versión número 1.0 de PERL fue liberada el 18 de diciembre de 1987; el core del programa escrito por Larry Wall, comprende una serie de funciones y módulos pequeños que le dan su esencia. Miles de personas han participado en el desarrollo de PERL, al hacer desarrollos, generar módulos, redactar documentación o participar en modificaciones al core: todos cooperan para que el programa funcione mejor y sea empleado ampliamente, lo cual ha provocado su impresionante utilización alrededor del mundo.

Originalmente ideado para la manipulación de textos, PERL busca ser un lenguaje fácil de usar, capaz de soportar la programación de procesos y la que va orientada a objetos, que es una técnica de programación basada en el uso de bloques donde se agrupan objetos, los cuales a su vez, son unidades de información que contienen datos, procesos u operaciones; su arreglo es más sencillo y con ello se puede resolver un problema específico de manera sencilla.

Basado en el programa de traducción del tipo intérprete para entregar el lenguaje de máquina, tiene como características principales la interfaz DBI, que es el módulo de PERL, en el cual se define una serie de métodos, variables y convenciones que permiten una interfaz independiente porque las aplicaciones de PERL se pueden conectar con diferentes tipos de bases de datos de manera múltiple al mismo tiempo y permiten mover los datos entre ellas. Además, tiene la capacidad de trabajar con lenguajes del tipo markup, que son códigos que dan formato a los textos que lee un explorador de Internet (como HTML, XML, entre otros). Asimismo, cuenta con un gran número de ampliaciones, por la capacidad que tiene de ser empleado en diversos sistemas operativos, por lo que está de moda entre desarrolladores, administradores de sistemas, autores de scripts CGI (3), matemáticos, reporteros e inclusive, en gerentes de empresas.

Larry Wall, autor de PERL, creía en la cultura original de compartir recursos por Internet y sus convicciones lo llevaron a apoyar la idea de que fuera de acceso libre para todos los interesados, quienes a su vez han aportado diversas mejoras al programa con la creación de catálogos y módulos compartidos de manera libre.

El mercado de programación

En el mercado existe una cantidad considerable de lenguajes de programación pero, probablemente, dos de los principales competidores de PERL son JAVA y PHP.

Un factor que ha influido para que PHP se convierta en una herramienta común entre programadores inexpertos es la facilidad que otorga, desde un punto de vista, en el diseño de página web. PHP es un lenguaje de propósito general especialmente empleado para el desarrollo de páginas web y puede ser embebido o incrustado (embedded), lo cual significa que es un lenguaje que se interpreta en un modelo de cliente-servidor, donde el servidor se encarga de ejecutar la programación que puede encontrarse incrustada dentro del lenguaje HTML, pero el control lo tiene el programa. Las páginas PHP están construidas de manera similar a las de HTML. Un código PHP se inserta en la página y se ejecuta cuando la página es solicitada desde Internet.

En el lado opuesto se encuentran los scripts desarrollados en PERL, que corren como programas aislados y crean páginas HTML cuando éste corre. Otro factor es la velocidad y la eficiencia que tiene la programación en PHP sobre PERL. Existen formas para hacer que PERL tenga un desempeño tan veloz como el de PHP, así que esto no es crucial para optar por PHP.

Los programadores con experiencia deben poder manejar ambos programas, sin embargo, el vasto arreglo de opciones con que cuenta PERL lo hace más poderoso y robusto, inclusive, con un poco más de historia dentro del campo de los lenguajes de programación, lo cual es otro punto a su favor debido a que su eficiencia ha sido probada y mejorada, comparado con el reciente PHP disponible desde el año 1995, cuando fue creado a raíz de un conjunto de scripts de PERL empleados para controlar accesos a su trabajo online.

Si se piensa simplemente en el desarrollo de sitios web, PERL está sobrado en capacidad y esto puede ser un plus ya que permitirá el desarrollo de nuevas herramientas para los portales o servidores, mientras que PHP (Personal Home Page Tools) se encuentra limitado debido a que originalmente se pensó para aplicaciones pequeñas.

Otro de los grandes competidores de PERL es Java, un lenguaje de programación orientado a objetos, desarrollado por James Gosling junto con colegas de Sun Microsystems, a principios de 1990. Es una derivación de C++ con una sintaxis más sencilla que la de éste, en un ambiente de aplicación más robusto, lo que simplifica la administración de la memoria requerida para su desempeño. Fue concebido para funcionar como una plataforma independiente, es decir, puede operar sin importar el sistema operativo del que se trate; además de que busca ejecutar el código desde fuentes remotas de manera que permita hacerlo en modo seguro.

Probablemente, existan muchas personas que prefieran Java, sin embargo en el siguiente cuadro comparativo se puede observar la longitud necesaria para desarrollar un pequeño programa que realiza un listado en los lenguajes de PERL y de Java. A pesar de su poder de aplicación en múltiples plataformas de Java, el primero sigue siendo más sencillo.

Figura 1. Listado: en esta prueba se observa el tamaño del código comparado entre PERL y Java. Al ejecutar el programa ambos programas corrieron a velocidad lenta.

Los beneficios de PERL

PERL es un software del tipo Open Source o de código abierto, es decir, los programadores pueden leer, redistribuir y modificar el código fuente de una pieza del software para que la misma evolucione, de esta manera, las personas lo emplean, lo adaptan y reparan los errores o bugs que pudiera tener la programación. Esto ha permitido que en comparación con el software cuyo código se encuentre oculto a los usuarios, se desarrolle a una gran velocidad y sea muy confiable en su desempeño. PERL se encuentra bajo una General Public License, lo cual asegura que se tiene la libertad para distribuir copias de software libre y realizar los cambios que fueran necesarios; se cuenta asimismo, con el código fuente o puede solicitarse, de forma tal, que se pueden realizar las modificaciones en el software o usar piezas de éste en programas nuevos que también sean gratuitos.

En http://www.PERL.com/download.csp y http://www.activestate.com/Products/ActivePERL/?_x=1 es posible descargar las versiones más recientes de PERL; si uno comienza a interesarse por este programa o bien, tiene conocimientos intermedios puede descargar la versión 5.8.7, que además, es la más estable hasta el momento (la versión 6.0 se encuentra en prueba y su desempeño no puede ser del todo adecuado). Si se cuenta ya con experiencia, se puede descargar la versión para desarrolladores 5.9.2.

Afortunadamente, la utilización de PERL no está restringida para una plataforma en particular, gracias a la flexibilidad intrínseca del programa y a la importante participación de los usuarios; este lenguaje puede emplearse en sistemas Unix, Windows, Macintosh, VMS, Sun, Solaris, etcétera.

Muchos de los beneficios que tienen los desarrolladores que emplean este lenguaje se deben a la utilización del intérprete o interpreter, programa que traduce una línea de código fuente a la vez y una vez que la traduce, la ejecuta.

Tal vez ésta sea la razón por la que se ha confiado este lenguaje al desarrollo de proyectos de misión crítica en sectores públicos y privados, entre los que se pueden mencionar la generación de reportes en tiempo real para tableros de mando de múltiples industrias, sistemas para transacciones bancarias y sistemas de autenticación y registro único de usuarios.

"PERL interpreta una instrucción dentro de un contexto, por ello el resultado puede o no ser lo que se buscaba, si no se realiza dentro del contexto adecuado", comenta el Ing. Enzo Molino, director de Informática del Instituto Nacional para la Evaluación de la Educación (INEE), "no es tan fácil entrarle" puntualiza después de indicar que el desarrollador de este lenguaje tenía como profesión la de lingüista. Continua diciendo: "pero tiene grandes ventajas: es elegante, es eficiente y tiene una gran fuente de bibliotecas desarrolladas por otras personas con anterioridad. Si se consulta la página de CPAN (Comprehensive PERL Archive Network), la página de Internet para consulta de módulos, documentos, distribuciones y de IDs para PERL-, es muy probable que encuentre cualquier cosa que se necesite; pueden emplearse para desarrollar CGIs (Common Gateway Interface), mecanismo que permite invocar una aplicación ejecutada en un servidor desde una página HTML que está consultando una persona y que recoge información que envió el usuario, dBi's (módulos que permiten que las aplicaciones de PERL tengan acceso a múltiples tipos de bases de datos de manera transparente, entre otras tareas)".

PERL es una herramienta muy poderosa impulsada por el interés de los usuarios para proponer mejoras y tener de esta forma software gratuito de calidad y ajustable a las necesidades particulares de cada usuario pero, por otro lado, dada esa complejidad que maneja, se requiere bastante tiempo para hacer desarrollos en este lenguaje cuando uno es principiante, en ese sentido, se traduce muchas veces en un rechazo por parte de los programadores con experiencia en otros lenguajes.

Las ventajas de PERL

  • Reduce el ciclo de programación. No tiene que compilar su aplicación, PERL es interpretado y por ello, sus programas pueden ser corridos en muchas plataformas sin necesidad de ser recompilado.
  • Es portable, ya que hay un interpretador de PERL para cada variedad de Unix y Windows, por lo que los cambios que debe hacer a su aplicación son mínimos o nulos.
  • Puede hacer mejor muchas cosas que serían más difíciles en otros lenguajes como C o Shell, como la manipulación de archivos de texto.
  • La sintaxis de otros lenguajes como Shell, Sed, AWK o C es muy similar a la de PERL. Inclusive cuenta con herramientas para traducir código de Sed y AWK a PERL de manera automática.
  • Es extensible. En Internet puede conseguir una enorme cantidad de módulos, los cuales pueden ser incluidos en sus programas sin ninguna dificultad. Si lo desea, puede desarrollar sus propias extensiones.
  • No cuesta nada. PERL tiene una distribución libre.
  • Es confiable y robusto.

Referencias

Apéndice A. Historia de PHP y proyectos relacionados. (9 de agosto, 2003). PHP: Historia de PHP y proyectos relacionados. Consultado en
http://mx.php.net/history

Ashton, Elaine; "The timeline of PERL and its culture" (1999-2001). The Timeline of PERL and its Culture v3.0_0505, de Ç http://history. PERL.
org/PERLTimeline.html

Castagneto, Jesús; Ragwat, Harish; Schumann, Sascha; Scollo, Christopher; Veliath, Deepak (1999). Professional PHP Programming (edición electrónica). pág. 68.

Connell, Mike. “Pitón VS Perl VS Java VS C++ Runtimes.” (septiembre 9, 2002). Consultado en: http://furryland.org/~mikec/bench/

Christiansen, Tom. “Downloading the latest version of PERL” (N. d.) Stable Production Release (Current Version), de:
http://www.PERL.com/download.csp

Download PERL Dev Kit (2005). Active State – Product to Download, de: http://www.activestate.com/Products/
Download/Download.plex?id=PERLDevKit

Frequently Asked Questions (2005). FAQ – search.cpan.org, de: http://search.cpan.org/

Hietaniem, Jarkko. PERL Ports (Binary Distributions) (1995-2005). CPAN/ports. (Encabezado, para. 1), de la página http://www.cpan.org/
ports/index.html

Java programming language (n. d.). Java programming language – Wikipedia, the free encyclopedia. Consultado el 13 de marzo de 2006.

URL:http://en.wikipedia.org/wiki/Java_
programming_language

Kirrily, Robert (N. d.) PERL 5.8.7 documentation. PERLintro – PERLdoc.PERL.org, de: http://PERLdoc.PERL.org/PERLintro.
html#What-is-PERL%3f

Molino, Enzo (plática entablada el día 27 de enero de 2006). Director de Informática del Instituto Nacional para la Evaluación de la Educación.

Núñez Zuleta, José Vicente. “Introducción a la programación en PERL, CGI y Javascript” (n. d.). Consultado el 15 de Diciembre de 2006. URL:
http://es.tldp.org/Tutoriales/PERL-
CGI/perl-cgi-javascript/

Prentice Hall, Inc. (2006) Material para el alumno. Presentación del capítulo 11: daley8_ppt_11.ppt. de: http://wps.prenhall.com/bp_daley_ciyf_8

PERL vs PHP. (n. d.) PERL vs PHP. Consultado el 14 de marzo de 2006. URL: http://www.mediacollege.com/internet/
perl/perl-vs-php.html

The PERL directory: about PERL. (N. d.). About PERL – PERL.org, de: http://www.PERL.org/about.html

Inicio | Contacto |