355 500 произведений, 25 200 авторов.

Электронная библиотека книг » Vikram Chandra » Geek Sublime: The Beauty of Code, the Code of Beauty » Текст книги (страница 1)
Geek Sublime: The Beauty of Code, the Code of Beauty
  • Текст добавлен: 17 октября 2016, 01:34

Текст книги "Geek Sublime: The Beauty of Code, the Code of Beauty"


Автор книги: Vikram Chandra



сообщить о нарушении

Текущая страница: 1 (всего у книги 15 страниц)

Vikram Chandra
Geek Sublime: The Beauty of Code, the Code of Beauty

For Melanie,

Sri Sri Sri


LIST OF FIGURES

Figure 3.1: CIL for “Hello, world!” program in C#

Figure 3.2: Machine code for “Hello, world!” program in C#

Figure 3.3: Addition operator

Figure 3.4: Addition operator with inputs “3” and “2”

Figure 3.5: Subtraction operator

Figure 3.6: Subtraction operator with inputs “4.2” and “2.2”

Figure 3.7: AND operator

Figure 3.8: AND operator with inputs “false” and “true”

Figure 3.9: AND operator with inputs “true” and “true”

Figure 3.10: OR operator with inputs “false” and “true”

Figure 3.11: OR operator with inputs “0” and “1”

Figure 3.12: XOR operator with inputs “1” and “1”

Figure 3.13: LEGO AND logic gate with inputs “0” and “0” (Martin Howard)

Figure 3.14: LEGO AND logic gate with inputs “1” and “1” (Martin Howard)

Figure 3.15: LEGO XOR logic gate with inputs “0” and “0” (Martin Howard)

Figure 3.16: LEGO XOR logic gate with inputs “0” and “1” (Martin Howard)

Figure 3.17: Schematic for half adder

Figure 3.18: LEGO half adder (Martin Howard)

Figure 3.19: “Hello, world!” in assembly language

Figure 3.20: “Hello, world!” in FORTRAN

Figure 4.1: Programming the ENIAC (US Army photo)

Figure 4.2: Programming the ENIAC (US Army photo)

Figure 4.3: “Installing IBM 1620 computer in 1963 when first laboratory building was under construction.” Photographer unknown. Tech Engineering NewsVol. XLIX, no. 3, April 1967. Institute Archives and Special Collections, MIT Libraries, Cambridge, MA

Figure 5.1: Rules from the Ashtadhyayi(Vedic Literature Collection, Maharishi University of Management)

Figure 6.1: Dependency diagram (TheDailyWTF, www.thedailywtf.com)

Figure 6.2: “Hello, world!” in brainfuck

Figure 6.3: “Hello, world!” in Malbolge

Figure 6.4: Gartner, Inc.’s Hype Cycle (Jeremy Kemp, Wikimedia Commons)

ACKNOWLEDGMENTS

This project has been supported by the University of California, Berkeley.

Thanks to Martin Howard for the images of the LEGO logic gates (http://www.randomwraith.com/logic.html); and to Alex Papadimoulis of TheDailyWTF.com for the dependency diagram.

For inspiration, aid, and insight, I’m grateful to Jennie Durant; Janet Miller; Maura Finklestein; Wendy James, for the loan of that PCjr; Margo True; David Harvey, with fond memories of “the rapture of the freeways” and AH&AJ Computing; Balaji Venkateswaran; Jeff Kowalski; Sumeet Shetty; S. Sadagopan; Eric Simonoff; Julian Loose; Ethan Nosowsky; Alok Aggarwal; Telle Whitney; Maria Klawe; Roli Varma; Dominik Wujastyk; Arati Gerdes; Ida Mayer; Avnish Bhatnagar; Balajee Vamanan; Dipankar Bajpai; Raka Ray; and Kapil Kapoor, for his help and his invaluable books about the Indian literary tradition.

Luther Obrock translated all the poems from the Dhvanyaloka, and was unstintingly generous with his knowledge and ideas. He provided essential guidance through the subtleties of the dhvanikaras.

The translation of “I will tell you a funny story” from the Bhaver Gitawas a collaborative effort: thanks to Dilip Misra, Rakesh Mishra, and Monidipa Mondal for their help.

Thanks to Chiki Sarkar for helping me discover the shape of this book; and to Tanvi Kapoor and her team at Penguin India for their heroic efforts at bringing the project to fruition.

As always, I couldn’t have started or finished the book without support from my parents, Navin and Kamna; my sisters, Tanuja and Anupama; Vidhu Vinod Chopra; Anuradha Tandon; S. Hussain Zaidi.

I’m especially grateful to the two irrepressible shaktis, Leela and Darshana, for their timely interruptions and revivifying hugs.

NOTE ON TRANSLITERATION

Sanskrit words in this book have been rendered phonetically, without the use of diacritical marks: “Shakti,” not “Śakti.” Diacritics have been retained in direct quotations and the titles of cited works.

1 HELLO, WORLD!

class Program

{

public static void Main()

{

System.Console.WriteLine(“Hello, world!”);

}

}

Even if you’re the kind of person who tells new acquaintances at dinner parties that you hate e-mail and e-books, you probably recognize the words above as being some kind of computer code. You may even be able to work out, more or less, what this little “Program” does: it writes to the console of some system the line “Hello, world!”

A geek hunched over a laptop tapping frantically at the keyboard, neon-bright lines of green code sliding up the screen – the programmer at work is now a familiar staple of popular entertainment. The clipped shorthand and digits of programming languages are familiar even to civilians, if only as runic incantations charged with world-changing power. Computing has transformed all our lives, but the processes and cultures that produce software remain largely opaque, alien, unknown. This is certainly true within my own professional community of fiction writers – whenever I tell one of my fellow authors that I supported myself through the writing of my first novel by working as a programmer and a computer consultant, I evoke a response that mixes bemusement, bafflement, and a touch of awe, as if I’d just said that I could levitate. Most of the artists I know – painters, filmmakers, actors, poets – seem to regard programming as an esoteric scientific discipline; they are keenly aware of its cultural mystique, envious of its potential profitability, and eager to extract metaphors, imagery, and dramatic possibility from its history, but coding may as well be nuclear physics as far as relevance to their own daily practice is concerned.

Many programmers, on the other hand, regard themselves as artists. Since programmers create complex objects, and care not just about function but also about beauty, they are just like painters or sculptors. The best-known assertion of this notion is the essay “Hackers and Painters” by programmer and venture capitalist Paul Graham. “Of all the different types of people I’ve known, hackers and painters are among the most alike,” writes Graham. “What hackers and painters have in common is that they’re both makers. Along with composers, architects, and writers, what hackers and painters are trying to do is make good things.” 1

According to Graham, the iterative processes of programming – write, debug (discover and remove bugs, which are coding errors, mistakes), rewrite, experiment, debug, rewrite – exactly duplicate the methods of artists: “The way to create something beautiful is often to make subtle tweaks to something that already exists, or to combine existing ideas in a slightly new way … You should figure out programs as you’re writing them, just as writers and painters and architects do.” 2Attention to detail further marks good hackers with artist-like passion:

All those unseen details [in a Leonardo da Vinci painting] combine to produce something that’s just stunning, like a thousand barely audible voices all singing in tune.

Great software, likewise, requires a fanatical devotion to beauty. If you look inside good software, you find that parts no one is ever supposed to see are beautiful too. 3

This desire to equate art and programming has a lengthy pedigree. In 1972, the famed computer scientist Butler Lampson published an editorial titled “Programmers as Authors” that began:

Creative endeavour varies greatly in the amount of overhead (i.e. money, manpower and organization) associated with a project which calls for a given amount of creative work. At one extreme is the activity of an aircraft designer, at the other that of a poet. The art of programming currently falls much closer to the former than the latter. I believe, however, that this situation is likely to change considerably in the next decade. 4

Lampson’s argument was that hardware would become so cheap that “almost everyone who uses a pencil will use a computer,” and that these users would be able to use “reliable software components” to put together complex programs. “As a result, millions of people will write non-trivial programs, and hundreds of thousands will try to sell them.” 5

A poet, however, might wonder why Lampson would place poetry making on the same spectrum of complexity as aircraft design, how the two disciplines – besides being “creative”—are in any way similar. After all, if Lampson’s intent is to point toward the future reduction of technological overhead and the democratization of programming, there are plenty of other technical and scientific fields in which the employment of pencil and paper by individuals might produce substantial results. Architecture, perhaps, or carpentry, or mathematics. One thinks of Einstein in the patent office at Bern. But even the title of Lampson’s essay hints at a desire for kinship with writers, an identification that aligns what programmers and authors do and makes them – somehow, eventually – the same.

Both writers and programmers struggle with language. The code at the beginning of this chapter is in Microsoft’s C#, one of thousands of high-level programming languages invented over the last century. Each of these is a “formal language,” a language “with explicit and precise rules for its syntax and semantics,” as the Oxford Dictionary of Computingputs it. Formal languages “contrast with natural languages such as English whose rules, evolving as they do with use, fall short of being either a complete or a precise definition of the syntax, much less the semantics, of the language.” 6So these formal dialects may be less flexible and less forgiving of ambiguity than natural languages, but coders – like poets – manipulate linguistic structures and tropes, search for expressivity and clarity. While a piece of code may pass instructions to a computer, its real audience, its readers, are the programmers who will add features and remove bugs in the days and years after the code is first created. Donald Knuth is the author of the revered magnum opus on computer algorithms and data structures, The Art of Computer Programming.Volume 3 of the Artwas published in 1973; the first part of Volume 4 appeared in 2011, the next part is “under preparation.” If ever there was a person who fluently spoke the native idiom of machines, it is Knuth, computing’s great living sage. More than anyone else, he understands the paradox that programmers write code for other humans, notfor machines: “Let us change our traditional attitude to the construction of programs: Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.” 7In 1984, therefore, he famously formalized the notion of “literate programming”:

The practitioner of literate programming can be regarded as an essayist, whose main concern is with exposition and excellence of style. Such an author, with thesaurus in hand, chooses the names of variables carefully and explains what each variable means. He or she strives for a program that is comprehensible because its concepts have been introduced in an order that is best for human understanding, using a mixture of formal and informal methods that reinforce each other. 8

Good code, then, is marked by qualities that go beyond the purely practical; like equations in physics or mathematics, code can aspire to elegance. Knuth remarked about the code of a compiler that it was “plodding and excruciating to read, because it just didn’t possess any wit whatsoever. It got the job done, but its use of the computer was very disappointing.” 9

To get the job done – a novice may imagine that this is what code is supposed to do. Code is, after all, a series of commands issued to a dumb hunk of metal and silicon and plastic animated by electricity. What more could you want it to do, to be? Knuth answers: code must be “absolutely beautiful.” 10He once said about a program called SOAP (Symbolic Optimal Assembly Program) that “reading it was just like hearing a symphony, because every instruction was sort of doing two things and everything came together gracefully.” 11

We are now unmistakably in the realm of human perception, taste, and pleasure, and therefore of aesthetics. Can code itself – as opposed to the programs that are constructed with code – be beautiful? Programmers certainly think so. Greg Wilson, the editor of Beautiful Code, an anthology of essays by programmers about “the most beautiful piece of code they knew,” 12writes in his foreword to that book:

I got my first job as a programmer in the summer of 1982. Two weeks after I started, one of the system administrators loaned me Kernighan and Plauger’s The Elements of Programming Style… and Wirth’s Algorithms + Data Structures = Programs… [These books] were a revelation – for the first time, I saw that programs could be more than just instructions for computers. They could be as elegant as well-made kitchen cabinets, as graceful as a suspension bridge, or as eloquent as one of George Orwell’s essays. 13

Knuth himself is careful to limit the scope of his aesthetic claims: “I do think issues of style do come through and make certain programs a genuine pleasure to read. Probably not, however, to the extent that they would give me any transcendental emotions.” 14But in the many discussions that programmers have about craftsmanship, elegance, and beauty, there is an unmistakable tendency to assert – as Wilson does – that code is as “eloquent” as literature.

“Hackers and Painters” provoked an equally famous takedown titled “Dabblers and Blowhards” by the painter and programmer Maciej Ceglowski:

It is true that both painters and programmers make things, just like a pastry chef makes a wedding cake, or a chicken makes an egg. But nothing about what they make, the purposes it serves, or how they go about doing it is in any way similar …

With the exception of art software projects (which I don’t believe Graham has in mind here) all computer programs are designed to accomplish some kind of task. Even the most elegant of computer programs, in order to be considered a program, has to compile and run. So just like mechanical engineers and architects, computer programmers create artefacts that have to stand up to an objective reality. No one cares how pretty the code is if the program won’t work. The only objective constraint a painter has is making sure the paint physically stays on the canvas (something that has proven surprisingly challenging). Everything beyond that is aesthetics – arranging coloured blobs in a way that best tickles the mind of the viewer. 15

Paul Graham has been hugely successful as a programmer and venture capitalist, and his essays about technology and business are sometimes thought-provoking and insightful. But his writings about art are full of majestically fatuous statements delivered with oracular certainty: “One of the reasons Jane Austen’s novels are so good is that she read them out loud to her family. That’s why she never sinks into self-indulgently arty descriptions of landscapes, or pretentious philosophizing.” 16And, “The paintings made between 1430 and 1500 are still unsurpassed.” 17But for Graham’s primary readership of programmers, these pronouncements are the foundational caissons on which his grand art-hacking equivalence rests. Ceglowski the painter is skeptical:

You can safely replace “painters”… with “poets,” “composers,” “pastry chefs” or “auto mechanics” with no loss of meaning or insight … The reason Graham’s essay isn’t entitled “Hackers and Pastry Chefs” is not because there is something that unites painters and programmers into a secret brotherhood, but because Paul Graham likes to cultivate the arty aura that comes from working in the visual arts. 18

My first response to Graham’s programmers-as-artists maneuver was as exasperated as Ceglowski’s, but after the initial irritation had passed I began to think about the specific aesthetic claims Graham was making for code, about what kind of beauty code might possess, and why Graham would want to claim the mantle of artistry. Programmers already are famous, rich, influential. Why do they need any other auras? Ceglowski has a theory:

Great paintings … get you laid in a way that great computer programs never do. Even not-so-great paintings – in fact, any slapdash attempt at splashing paint onto a surface – will get you laid more than writing software, especially if you have the slightest hint of being a tortured, brooding soul about you …

Also remark that in painting, many of the women whose pants you are trying to get into aren’t even wearing pants to begin with … Not even rock musicians have been as successful in reducing the process to its fundamental, exhilarating essence.

It’s no surprise, then, that a computer programmer would want to bask in some of the peripheral coolness that comes with painting, especially when he has an axe to grind about his own work being “mere engineering.” 19

Ceglowski’s evocation of the Picasso swagger natural to artists of course assumes that painters and rock-stars are charismatically male and women are (ideally) pants-less; that programmers are all men is such an obvious assumption that neither he nor Graham feels the need to qualify their assertions with a reference to gender. So it turns out – as always – that formulations of the aesthetic are embedded in specific histories and cultures of power, privilege, gender, and “cool.” This particular landscape of American programming is one to which I am a foreigner twice over; I am a writer from India, but I’ve worked professionally as a programmer in the United States. Fiction has been my vocation, and code my obsession.

2 LEARNING TO WRITE

I came to computers while trying to run away from literature. I first published fiction – a plotty little sci-fi story heavily influenced by Isaac Asimov – when I was twelve, in a student-run magazine at my boarding school in India. Until then, reading stories and telling them (mainly to myself) had been a reliable, profound pleasure and a desperately needed comfort. The shock of seeing my secret life made public, in print, thrilled into my awkward, nerdy soul. I was a stereotypically budding writer, thickly bespectacled, shy, bad at cricket, worse at field hockey. When fellow students – even some of the remote, godlike athletes who were the heroes of my school – stopped me in the corridors to talk about the story and praise it and ask for more, I knew I had found a way to be in the world, to be of it.

So I kept writing. I read and, in various classrooms, imbibed a strange mix of Victorian classics, the great twentieth-century fictions produced by the stalwarts of Hindi literature, and fragments of Sanskrit from the epics. The only American texts we were prescribed were abridged, bowdlerized editions of Tom Sawyerand Huckleberry Finn.But in our dormitories, in the school-wide trading system for leisure-time reading, the most avidly sought prizes were the now-forgotten Nick Carter novels, featuring an eponymous “Killmaster” for AXE, “the smallest and most deadly arm of American global [intelligence].” 1Nick Carter exuded a particularly American glamour. The riches of America gave him an endless supply of killing devices, to which he gave cool names: “Hugo,” a pearl-handled stiletto made by Benvenuto Cellini; “Pierre,” a minuscule gas bomb; and my favorite, “Tiny Tim,” a low-yield nuclear grenade. Nick Carter’s exploits with beautiful women were lingered over every thirty pages or so, in counterpoint to the killing, with a level of explicit detail that made James Bond seem fusty and prudish and, well, British. And our home-grown spies, who adventured chastely in Hindi on the pulpy gray paper of the jasoosis available at railway stations, were too unspeakably Third World-ish and provincial to pay even cursory attention to.

During one long summer vacation at home in Bombay, I dug through the stacks at a commercial lending library. I had already exhausted their stock of thrillers (at a rupee per book), then held off book drought for a couple of weeks with science fiction and westerns, before finding Hemingway at the back of a shelf. I was fourteen, had read some smatterings of what I didn’t know then was called “literary fiction”—Conrad, Heller, Tolstoy – but I wouldn’t have bothered with Hemingway if not for the charging lion on the cover of the paperback. That, and the décolletage of a distressed damsel and the very large rifle wielded by a hunter promised excitement, so I paid up and went home and read “The Short Happy Life of Francis Macomber.” Then “The Capital of the World.” And “The Snows of Kilimanjaro.” I felt something extraordinary, the dread and clipped despair of the stories, a complete concentration of my own attention, and somehow also a flowing wonder and delight. I’d known this feeling before, during performances of the RamayanaI’d seen as a child perched on my father’s shoulders, in moments of high Hindi-movie drama in darkened theaters, but I was now experiencing concentrated waves which I felt in my mind and my body: prickles on my forearms, a tingling at the back of my neck. I knew, even in that moment, that I didn’t understand everything the stories were doing, what they were about.I had no idea who this Hemingway was. And yet, here I was at our kitchen table in Bombay, entranced.

Thus began my encounter with American modernists. Through Hemingway, I found Fitzgerald, and Faulkner, and Hurston, and Wharton, and Eliot. After I left my boarding school and joined a college in Bombay, I switched to the “arts stream” and was able to study English literature, which comprised both British and American traditions. I wrote fiction, seriously and self-consciously, trying to work out what literature was and what it was meant to do. And I knew I wanted to go to America. That was where Gatsbyhad been written, and somehow that meant I needed to go there to be a writer. For my parents, I had more elaborate justifications, reasons that included the sheer ineptitude of many of the teachers who were supposed to be teaching me about literature, and the stupidity of the Indian educational system’s obsession with rote learning and exams. But really, at the root of it all was this inchoate love for a literature that was not mine. In those days, from inside the socialist bubble of the Indian economy, America was ineffably far away and glamorous and rich, and many of us wanted to go there. But usually people went as graduate students, and studied engineering or medicine. What I wanted was pretty much unheard of and unaffordable, but because of my parents’ astonishing generosity, and happenstance – my corporate-executive father was posted to Hong Kong and was suddenly being paid in dollars instead of rupees – I found myself in the promised land as a sophomore. I was a little dazed and very happy. This was the adventure I had dreamed about. I read, and I wrote.

I successfully avoided the question of how I was going to make a living until the summer after I finished my undergraduate degree (with a major in English, a concentration in creative writing, and a novella for an honors thesis). When I was forced to come up with an answer, it was film school: if I couldn’t sell screenplays, at least there was a thriving Indian film industry I could get a job in. I applied to the film department at Columbia University, and showed up a few months later on the fifth floor of Dodge Hall, driven not so much by clarity about what cinema could offer me, but by a profound uneasiness about what was on offer just a floor below in the writing program: a commitment to a life as a writer of fiction. It wasn’t just the paucity of money in the profession; I knew most writers had day jobs. But writing was difficult. Grueling in a different way from making movies, from having to deal with dozens of egos and schedules and weather fluctuations to get a single shot. Making fiction with resonance, with that endless, echoing depth of feeling I had found in Hemingway was very, very hard. Writing sentences felt like construction, and, also, simultaneously, a steady, slow excavation. You put each word in place, brick upon brick, with a shimmery sense of what the whole edifice would look like, the shape of the final thing. But each phrase was also a digging inward, an uncovering. You tunneled, dug, dug. On good days, you emerged from your labors tired but happy. On bad days you were left quivery, stupefied. There was risk and danger involved in this work. You always got strung out, ground down, strained thin. Ended up a little sad, maybe a little mad. Not a way to spend a life.

So, there I was in 1986, at film school, with the first semester’s tuition paid for and two hundred dollars in my bank account. On my second day in New York, I went looking for employment to Columbia’s job board and found a listing for “scribes.” Of course this was providential, I thought. I called from the first pay phone I could find, set up an interview, and didn’t ask what kind of scrivening they needed. No matter how dead-letterish the situation was, I wasn’t going to prefer not to.

The job, it turned out, was not mere copying – the company provided specialized secretarial services for doctors hired by medical insurance companies. We, the scribes, took the handwritten notes from doctors’ examinations and typed them up under their letterheads so that they could be submitted as legal statements when insurance claims were taken to court. We deciphered the handwriting, constructed full sentences out of the doctors’ telegraphese, inserted a lot of boilerplate text, and sent it off to the respective doctor to review and sign and submit. The work paid well over minimum wage, and I found I could do it in an automated haze which required almost no mental effort.

Three months after I began working, the company acquired its first personal computers (PCs) for us to work on. I had typed my papers and stories on a terminal attached to the huge mainframe computer at college, and had taken a couple of programming classes, which I thought were tepidly interesting – I was good at writing bubble sorts for lists of words, but it all seemed quite abstract, of no immediate practical purpose. The mainframe was controlled by a specialized cadre of tech-heads, and my access to it was distanced and narrow. Now, though, at my scrivener job, I had a computer I could play with.

I blazed through my assigned work (no more worrying about typos and omissions), propped up stacks of paper to signal that I was busy, and dove into the arcane depths of DOS. Here was a complete world, systems and rules I could discover and control. I could write little batch files to run commands to change directories and copy files. And the software we used to write the reports, WordPerfect, I could control that too, write clever macros to put in the date, to recognize my abbreviations for the medical jargon, to pop in whole paragraphs of text. And now any repetition of effort seemed like an insult. Spend half an hour writing a report that didn’t quite fit the standard format? No way. Screw that. I’d rather spend six hours tinkering with if-then-else routines in my report macro so it would support this specialized format too.

Soon I was the de facto tech-support guy for our little office, and was advising on future purchases of hardware and software. I bought computer magazines on the way home, and lusted after the monster PCs in the double-page photo spreads: more speed, bigger memory, huge hard disks. I wanted all these, but even on the decidedly low-end machines I had access to, there was an entire universe to explore. There were mysteries, things I didn’t understand, but there were always answers. If I tried hard, there was always a logic to discover, an internal order and consistency that was beautiful. And I could produce these harmonies, test them, see them work. When a program broke, when it did something unexpected, I could step through the code, watch the variables change, discover where I had made unwarranted assumptions, where the user had done something I didn’t expect, and then I could change, adapt, and run the code again. And when I fixed the code, when it ran, the victory coursed through my brain and body. I wanted to do it again.

I left New York with a taste for this wizardry and an idea for a novel. I’d figured out in fairly short order that the collaborative, cash-intensive business of filmmaking wasn’t a good fit for me. Being around people all day tired me out, not writing fiction made me ferociously cranky, and the ideas I had for screenplays required gargantuan budgets. The novel I wanted to write moved back and forth between the nineteenth and twentieth centuries, featured cavalry battles, a typing monkey, a character dismembering himself, and many other special effects that I could pull off myself, without a crew or funding. So I finally accepted my fate: a lifetime of fiction-making anxiety and possible poverty was what I was built for, and running about on a film set wouldn’t rescue me from writers’ demons. There was a fortifying relief in knowing this, and I went off to a couple of graduate writing programs to get on with the work. I did a year at the Writing Seminars at Johns Hopkins, and then moved on to the University of Houston.

I wrote my novel and lived the life of the itinerant graduate teaching assistant (TA), which meant many wonderfully tipsy, passionate highbrow conversations in low-end bars during post-paycheck fortnights and a steady decline in the quality and quantity of food thereafter. I was with my tribe, happy, writing steadily and hard, but clearly my revenue streams needed some new tributaries. Most of my fellow TAs had second teaching jobs, but these were poorly paid, and biweekly confrontations with towering stacks of freshman composition papers had engendered in me a bitter hatred for all students. I looked around for other writing work, and requested information from publishers of porn and romance novels. I was quite willing to do this honest, easy labor, but found that literary-novel-writing apparently exhausted my creative resources, which ran to about four hundred words a day and were subsequently incapable of delivering even formulaically heaving bosoms and thrusting rods.


    Ваша оценка произведения:

Популярные книги за неделю