Entre otras cosas interesantes, Perl provee de un archivo de miles de paquetes preparados para funcionalidades diversas llamado CPAN que nos permiten programar un servidor web o un reproductor mp3+vorbis en no más de 15 líneas. También existen el CTAN (para cosas de (La)TeX), el RAA para Ruby, supongo que habrá algo simular para Python...
Pero hoy quiero concentrarme en paquetes singulares, que nos serán imprescindibles para el resto de nuestras vidas:
¿Hemos tenido alguna vez problemas con los paquetes? ¿se nos olvidan cargarlos en nuestros fuentes? Con Acme::Everything Se cargarán TODOS los paquetes disponibles del CPAN: "Acme::Everything is the ultimate run-time loader. With one 'use' line, you effectively load all 750,000,000 odd lines of code in CPAN."
¿Eres demasiado artista para utilizar referencias de color estándar? Acme::Colour es la solución:
# light
$c = Acme::Colour->new("black");
$colour = $c->colour; # black
$c->add("red"); # $c->colour now red
$c->add("green"); # $c->colour now yellow
# pigment
$c = Acme::Colour->new("white");
$c->mix("cyan"); # $c->colour now cyan
$c->mix("magenta"); # $c->colour now blue
Ahora bien, tenemos uno similar para exclusivamente colores importantes: Acme::Orange
$c = Acme::Orange->new();
$colour = $c->colour; # orange
$c->add("orange"); # $c->colour still orange
$c->add("blue"); # $c->colour still orange.
$c = Acme::Orange->new("pink");
$colour = $c->colour; # orange.
o incluso Acme::Octarine que garantiza que se presentarán efectos secundarios mágicos.
Aumentando en el grado de dificultad, en un segundo grupo tenemos los Parsers interesantes:
¿quién no ha tenido problemas al confundir un 1 con una l y un 0 con un O? con Math::Roman puedes escribir todos los números en romano. Hablando de romano y puesto que está de ultimamente de moda con la pelicula de Mel Gibson, si quieres programar en Latín puedes.
Parece que una de las grandes virtudes (frente a Perl) expresadas por los seguidores de la serpiente es su claro sangrado eliminando así la necesidad de usar puntos y coma, apertura o cerrado de llaves y otros. El Pythonero que dice eso es que desconoce Perl porque tenemos nuestro: Acme::Pythonic que nos permite escribir Perl con forma de Python. MHAHAHAHAA!!!
Tambien se puede cifrar los programas en Morse o para no confundirse con los distintos operadores se puede usar el nuevo operador DWIM (uno para gobernarlos a todos; que se pronuncia:"yadda yadda yadda"), si te gusta la Simetria o simplemente te gusta la magia y quieres hacer desaparecer el código fuente de tu programa tambien puedes. Lo impresionante es que en todos estos casos el código aún se ejecuta...
Y todo esto para decir que Perl me parece divertido. Recuerden que el objetivo del lenguaje es crear programadores:
"laziness (vagos), impacience (impacientes) and hubris (orgullosos de su trabajo)" (leer los últimos 4 párrafos). Indudablemente el sentido del humor debe ser parte importante de esto.
Y ahora la pregunta para la participación: ¿alguna librería (para cualquier lenguaje) que sea especialmente gracioso, estupido, inútil, ...?
Su turno.