Tabla de contenidos
Perl, una idea es una introducción a Perl, el lenguaje y su cultura, orientada a programadores. Se trata de una presentación que escribí para mis colegas en iSOCO S.A.
Al asumirse que la audiencia está familiarizada con construcciones y conceptos comunes en los lenguajes de programación, como "cadena", "subrutina", "librería", "control de flujo", etc., y con estructuras de datos usuales como arrays, listas o tablas hash, por ejemplo, esta presentación tiene una aproximación no-lineal al lenguaje que permite ofrecer una perspectiva general con un buen nivel de detalle.
El contenido y la forma de Perl, una idea fueron pensados para comunicar, más que describir o enumerar. Por ejemplo, con ese propósito se escogió basar la presentación de lo que es estrictamente lenguaje en ejemplos: durante gran parte de la exposición se razona sobre unas pocas líneas de código que sirven de soporte al ponente. La mayoría de códigos de ejemplo constituyen programas completos y ejecutables en tiempo real, idea que copié de las charlas que Rasmus Lerdof dio en el pasado IV Congreso Hispalinux. En mi opinión, concluir o acompañar una transparencia con comprobaciones y ejecuciones in situ refuerza lo explicado de un modo difícilmente igualable en una presentación estática.
Si bien Perl, una idea se centra en Perl, el lenguaje, esta charla también intenta transmitir el pragmatismo que caracteriza a la cultura Perl y abordar temas relacionados como expresiones regulares, módulos o one-liners, entre otros.
El seminario está estructurado como sigue:
Ejemplos de código sencillos pero ilustrativos: Hello World!, paso de parámetros o lectura de ficheros de texto, por ejemplo.
TIMTOWTDI: Se presentan siete maneras distintas de implementar cat(1) en Perl, partiendo de estilos C/Java, pasando por soluciones idiomáticas, hasta llegar a soluciones mínimas más típicas del golfing.
Perl con más detalle: Tipos, identificadores, escalares, arrays, listas, tablas hash, slices, referencias, sentencias y subrutinas.
Expresiones regulares: Las introducimos vía ejemplos, en la tónica del resto del seminario. Usamos para ello una transparencia ejecutable con la que se pueden visualizar subcadenas de cierta cadena que hacen matching contra expresiones regulares dadas (ver captura de pantalla).
Benchmark: Se presentan resultados actuales de la comparativa que aparece en The Practice of Programming, en la que se implemetan soluciones a un problema no trivial (generación automática de texto usando cadenas de Markov) en C, C++, Perl, Java y Awk.
Módulos: Qué es CPAN, instalación, documentación, uso, listados con algunos módulos importantes (bases de datos, XML, programación web, etc.).
One-liners: Una sola transparencia con one-liners que ilustra el uso de Perl en línea de comandos.
Recursos: Algunos punteros y comentario sobre libros.
Con un número de interrupciones y de preguntas normal la duración aproximada del seminario es de tres horas, quizá un poco menos. El ritmo es vivo, la presentación es densa pero la ejecución de código pienso que la hace amena en cierto sentido, creo que ayuda a mantener la atención.
Perl, una idea está escrita en Perl, el motor de la presentación es un CGI que genera las transparencias vía Text::Template. De la versión HTML del código con colores se encarga perltidy. El diseño está expresado con hojas de estilo, si bien parece que sólo Konqueror interpreta el código adecuadamente a día de hoy, especialmente en lo que respecta a la ubicación del pie de las transparencias. Hay algunas capturas de pantalla en http://personal5.iddeo.es/ret007t5/perl-una-idea/.