Literate Programming

Donald E. Knuth
Literate Programming
Series: Center for the Study of Language and Information – Lecture Notes 1992
384 pàgs.

Què és la programació d’ordinadors ? Un art o una ciència? Fer un programa és com fer una casa o com escriure un llibre? És una pregunta complicada i no hi ha una resposta única.

En Donald Knuth es conegut per ser l’autor d’una sèrie de llibres anomenada “The Art of Computing Programming“, i per ser l’autor d’un programa anomenat TeX escrit als anys 80 i que es continua usant actualment en l’edició de texts científics. La majoria de científics no fan anar Word, sinò que fan anar TeX o LaTeX. TeX va ser el primer programa informàtic escrit com una obra de literatura, és a dir d’un sol codi escrit van aparèixer dos codis: un per l’ordinador, i un altre pels lectors per ser publicat : TeX: The Program.

La programació literària que va proposar Knuth, consisteix en escriure programes no per les màquines, sinò pels lectors. És a dir, fer que sigui igual d’interessant llegir una bona obra de literatura que un bon programa informàtic. Això requereix de molt esforç per part de qui escriu els programes. No ha tingut molt èxit, ja que la programació literària no s’usa molt. A casa nostra, tenim alguna mostra en Gabriel Valiente que ha escrit “Algorithms on Trees and Graphs“, un excel.lent llibre que és llibre de text però al mateix temps és un programa informàtic.

Altres exemples de programes escrits en format programació literària es poden trobar en :

http://en.literateprograms.org

Knuth creu que la programació informàtica és un Art. Molta gent no hi està d’acord. És molt difícil ser un bon informàtic, sense ser un bon matemàtic. Els programes no només han de ser bonics, sinó que han de ser correctes. Per mi personalment, m’atrau més com a Art, i reconec que l’experiència més semblant a programar ha estat escriure poesia.

Una altra de les analogies més usades és la de l’arquitectura. Segons aquesta analogia, els programadors informàtics serien els paletes i a les Universitats s’ensenyaria Arquitectura i no feina de paleta. Llavors quedaria clar que la programació no pot ser un art, i seria la part més fàcil de fer i més desprestigiada. Però també es podria considerar que el fet de que els arquitectes no siguin artistes (com ho va ser Gaudí) és un problema i no una virtut.

Tenim una analogia més: la cuina. Escriure programes és com fer receptes. Es pot fer cuina, com Ferran Adrià, o com en un MacDonald’s. Sembla tenir sentit considerar la cuina un art.

Per acabar, l’explicació del mateix Knuth de per què programar ordinadors és un art:

…computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better. Therefore we can be glad that people who lecture at computer conferences speak about the state of the Art.

Anuncis

Deixa un comentari

Fill in your details below or click an icon to log in:

WordPress.com Logo

Esteu comentant fent servir el compte WordPress.com. Log Out / Canvia )

Twitter picture

Esteu comentant fent servir el compte Twitter. Log Out / Canvia )

Facebook photo

Esteu comentant fent servir el compte Facebook. Log Out / Canvia )

Google+ photo

Esteu comentant fent servir el compte Google+. Log Out / Canvia )

Connecting to %s