¿Cómo sería si Hemingway, Shakespeare, Breton y Bolaño hubieran escrito en JavaScript?
Con cierto ánimo que recuerda los “Ejercicios de Estilo” de Raymond Quenau, programador imagina cómo serían los textos de 4 grandes escritores si estos hubieran optado por JavaScript, un lenguaje de programación que ejerce una singular fascinación en las personas que gustan de la literatura.
Son famosos aquellos exercices de style de Raymond Quenau, una de las cumbres del Oulipo en la que una anécdota común y corriente se cuenta de 99 maneras distintas, los estilos de igual número de escritores, corrientes, escuelas y movimientos literarios, destinatario del texto, formas textuales y otras distinciones que de alguna manera juegan tanto con las casi infinitas probabilidades para escribir una sola línea, como con el estimulante íncipit “¿Qué pasaría si…?” que alimenta las también infinitas posibilidades de que un mismo hecho ocurra.
Se trata, en suma, de una voluntad lúdica y combinatoria que pone a rotar en un inmenso e ingenioso mecanismo los muchos códigos existentes en este mundo, las múltiples capas que cohabitan en ese recurso que solo por comodidad llamamos unitariamente “lenguaje”.
En nuestra época y ya desde hace algunas décadas, este amplia familia se ha visto enriquecida por los nuevos miembros surgidos a la sombra de los transistores y los dispositivos de computación. Los códigos de programación son también lenguaje en la medida en que crean y sustentan un fragmento de realidad que antes de ellos no existía. Y si es posible “decir” lo mismo en cantonés que en español, en lenguaje culinario que en científico, en poético que en prosaico, ¿los códigos de programación tienen menos derecho a participar del juego?
Angus Croll, programador él mismo, ideó un ingenioso juego en el que se pregunta qué pasaría si grandes escritores hubieran escrito sus obras en lenguaje JavaScript.
Amé la literatura mucho antes de que escribiera una sola línea de código. Ahora escribo JavaScript, mucho, y estoy escribiendo un libro sobre ello.
¿Qué hay en JavaScript que atrae a tantos devotos de la literatura? Tengo unas teorías medio hechas relacionadas con el potencial expresivo de una sintaxis limitada, pero eso será para otra ocasión. ¿Y los grandes escritores? ¿Qué habrían hecho ellos con JavaScript? Incluso como un maniático de tiempo completo por Hemingway, fui el primero en admitir que Papa probablemente detestaría programar (y a los programadores). Sin embargo, apuesto a que entre todo ese despreció acecharía una debilidad por JavaScript, porque es su tipo de lenguaje, ¿no? Una superficie libre y plana, enmascarando debajo la sustancia y el drama.
Croll, evidentemente, hace alusión a la conocida sentencia de Hemingway según la cual un cuento debía ser como un iceberg en el que solo asomara lo esencial, mientras que el verdadero conflicto se escondía bajo las aguas.
Su juego, como antes Quenau, consistió en imaginar cómo resolverían cuatro grandes escritores un problema en que una función regresara una serie Fibonacci de determinada extensión. Y estos fueron los resultados.
Ernest Hemingway
function fibonacci(size) {
var first = 0, second = 1, next, count = 2, result = [first, second];
if(size < 2)
return “the request was made but it was not good”
while(count++ < size) {
next = first + second;
first = second;
second = next;
result.push(next);
}
return result;
}
“Sin sorpresas. El código se reduce a lo esencial con ninguna palabra o variable desperdiciada”.
William Shakespeare
function theSeriesOfFIBONACCI(theSize) {
//a CALCKULATION in two acts.
//employ’ng the humourous logick of JAVA-SCRIPTE
//Dramatis Personae
var theResult; //an ARRAY to contain THE NUMBERS
var theCounter; //a NUMBER, serv’nt to the FOR LOOP
//ACT I: in which a ZERO is added for INITIATION
//[ENTER: theResult]
//Upon the noble list bestow a zero
var theResult = [0];
//ACT II: a LOOP in which the final TWO NUMBERS are QUEREED and SUMM’D
//[ENTER: theCounter]
//Commence at one and venture o’er the numbers
for (theCounter = 1; theCounter < theSize; theCounter++) {
//By divination set adjoining members
theResult[theCounter] = (theResult[theCounter-1]||1) + theResult[Math.max(0, theCounter-2)];
}
//’Tis done, and here’s the answer.
return theResult;
//[Exuent]
}
“El Bardo se vuelve un poco palabrero, pero no podría ser de otro modo. Noten cómo los comentarios (además de los títulos y las indicaciones de escena) están escrito en pentámetro yámbico —un metro de diez sílabas pareadas con la tónica cayendo en la segunda sílaba de cada par (o pie). En sus obras Shakespeare frecuentemente añade énfasis dramático al desviarse del estricto pentámetro yámbico […]“.
André Breton
function Colette(umbrella) {
var staircase = 0, galleons = 0, brigantines = 1, armada = [galleons, brigantines], bassoon;
Array.prototype.embrace = [].push;
while(2 + staircase++ < umbrella) {
bassoon = galleons + brigantines;
armada.embrace(brigantines = (galleons = brigantines, bassoon));
}
return armada;
}
“Breton encontró más probable nombrar su ejercicio Fibonacci a partir de un viejo amor, al tiempo que imagina la colección resultante como una flota de antiguos navíos. La solución está subrayada con una lógica característicamente elegante: usa un operador coma para simultáneamente cambiar los elementos entre los galeones, los bergantines y los basones”.
Roberto Bolaño
function LeonardoPisanoBigollo(l) {
if(l < 0) {
return “I’d prefer not to respond. (Although several replies occur to me)”
}
/**/
//Everything is getting complicated.
for (var i=2,r=[0,1].slice(0,l);i
/**/
//Here are some other mathematicians. Mostly it’s just nonsense.
rationalTheorists = [«Archimedes of Syracuse», «Pierre de Fermat (such margins, boys!)», «Srinivasa Ramanujan», «Rene Descartes», «Leonhard Euler», «Carl Gauss», «Johann Bernoulli», «Jacob Bernoulli», «Aryabhata», «Brahmagupta», «Bhaskara II», «Nilakantha Somayaji», «Omar Khayyám», «Muhammad ibn Mūsā al-Khwārizmī», «Bernhard Riemann», «Gottfried Leibniz», «Andrey Kolmogorov», «Euclid of Alexandria», «Jules Henri Poincaré», «Srinivasa Ramanujan», «Alexander Grothendieck (who could forget?)», «David Hilbert», «Alan Turing», «von Neumann», «Kurt Gödel», «Joseph-Louis Lagrange», «Georg Cantor», «William Rowan Hamilton», «Carl Jacobi», «Évariste Galois», «Nikolay Lobachevsky», «Rene Descartes», «Joseph Fourier», «Pierre-Simon Laplace», «Alonzo Church», «Nikolay Bogolyubov»]
/**/
//I didn’t understand any of this, but here it is anyway.
return r
/**/
//Nothing happens here and if it does I’d rather not talk about it.
}
“Fiel a su estilo, el ejercicio de Roberto está salpicado de alusiones a la inseguridad, la vergüenza y la ignorancia. La solución, aunque no es brillante, se presenta como una especie de idea de último momento. Siempre obsesivo, siempre tangencial, es mucho más feliz ofreciéndonos una lista medianamente interesante, pero en última instancia inútil, de los genios matemáticos.
“Hay otros rasgos Bolaño aquí: la yuxtaposición de párrafos largos y cortos, la ausencia de un punto y coma (reflejo de la ausencia de comillas en sus novelas), y el uso de variables globales implícitas —lo que sugiere que cada variable está destinada a hacer más apariciones en los capítulos siguientes”.
[FAT XXX]