Living for the Revel (catvalente) wrote,
Living for the Revel

  • Mood:

Programming Languages Are To Literary Schools As...

The writer/programmer pairing is more popular in geek circles than any astrological hook-up. My own household is certainly one of these--which means we both make with the clickety-clackety of little keys all day long whilst staring at glowing white or blue or black and green screens. It also means that we are continually explaining to each other the technical aspects and terminology of what we do, and trying to teach the other the rudiments of our very hard-won skills, since we both enjoy the fruits of the other's labor (books, software) but are not always entirely aware of how one actually does that.

My programmer and I are additionally alike in that we both adore obscure languages. We both chose unorthodox paths in our fields because of our love for non-mainstream language, and we could both make a lot more money than we do if we were willing (and we are both becoming increasingly sluttier with regards to the market as the ecopalypse descends) to just do as everyone else does and quit our loves like lonely Wyoming cowboys.

This sort of thing leads to a lot of _____ is to ______ style SAT comparisons over clam chowder and beer. And now, you can play along at home. Without further ado, here is your guide to how a raven is like a writing desk How Programming Languages Are Like Literary Styles, brought to you by the Valente-Zagidulin household, also known as the House of Too Many Letters.

Smalltalk: This is his preferred language, so naturally, I compare it to mine--experimental literary non-realism (mythpunk for you long-time readers). Though its roots squirrel down to the dawn of time (in computing terms, the 1970s, in literary terms, classical linguistics), it is still a dynamic, fascinating language that can be quite versatile while remaining idiosynratic. Look at Greer Gilman or DabbleDB. So we both insist loudly to people who wrinkle their nose at us and say "what the hell is that supposed to be?"

But come on. It's pretty. It's got a pedigree. True, big projects, like doorstopper fantasy or operating systems, don't use it, and people might make fun of you for your sad devotion to that ancient religion. People might pay you a lot more money if you were to write in, say, Java or media-tie ins. But it is enjoying a small renaissance in the form of Squeak, an open-source version of Smalltalk, and/or Kelly Link.

C/C++: This is the academic/legalese writing of the programming world. It's everywhere, it's boring, it's dense, it's totally incomprehensible to anyone but the elite initiated, who usually have attitudes about the rarified air they snort down on the rest of us. But the world does run on it, and everyone needs it sooner or later. Hopefully later.

Like Lawyer, C and C++ underlie things you use all the time, even though you don't realize how precious it is until Windows crashes and/or you need someone to bail you out of a Ugandan prison. Even so, that probably won't keep you from cracking lawyer jokes later on. Much later on.

Occasionally, someone will try to use C++ or Academese in a creative project. This usually ends in tears, and the occasional Jonathan Strange and Mr. Norrell.

Python: Enter speculative fiction! Hey, it's not real literature, it's just for fun! A silly scripting language with ray guns and no semi-colons. Despite its sophistication and roots in medieval fiction and classical drama, critics view it as a relatively new genre, even though there's plenty of LISP, C and Haskell in there so shut up! Voltaire did too write about Saturn!

Nevertheless, it can be used for profound awesome. Google uses it, YouTube uses it, and those bastard magical realist bullshit artists are always nicking our toys. You don't even realize that your precious Captain BitTorrent, pirate of the high seas, was originally written in Python, and now brings you illegal copies of Doctor Who and Isaac Asimov, much to the chagrin and impotent rage of SFWA.

Anger it at your peril. The girl may look slow, but she can digest an elephant in less than a month. And can only be defeated by an equally large boa.

Ok, I'm done with the snake jokes now.

Java: Divorce in the suburbs, cancer of the miscarriage, and how God will punish you for having sex. That's right, it's the big, predictable Literary Fiction Gorilla, coming to destroy a gated community near you. Java is the mainstream of the mainstream, it gets all the critical hand jobs, they teach it at universities, and the support base is vast--though not as vast as thrillers and mysteries (we'll get to that in a bit.)

The language itself is often a mess--Ruby and Python were invented by brilliant people on a mission, but Java was written by committee, James Gosling notwithstanding. The rules are agreed upon and dissenters will be punished. Tenure denied, my friends. It's in conversation with itself, writers talking to writers in an echo chamber that manages to convince itself it's the world. The syntax is clunky, not nearly as edgy as all those professors told you it was, and hilariously, New York Times Crossword Puzzle style verbose. But they do make some nice projects out of it, don't they? Big, strong, muscular, proper masculine stuff like banking software, military applications, OpenOffice, and Papa Hemingway's Encyclopedia of Impotence Anxieties.

At least in theory, you should be able to make a lot more money writing in this language than in Smalltalk or Python. But in practice, the big splashes get all the press, while most people will never get those contracts. They'll labor in cubicles under fluorescent lights and post to forums complaining that the big presses just didn't understand their genius. And most often, they'll make their living, not writing it, but teaching it and editing it.

Also, many robots are written in Java. Keep that in mind the next time Cormac McCarthy tells you he's not writing science fiction.

PHP: Journalistic integrity, baby. It is all around you. It's, in fact, entirely corrupt and insecure. It pays the bills, but it's your first job out of college, working for a local newspaper, whether in New York City or Ducksplat, Maine. Populist, accessible language that allows for enormous distribution. And shopping carts.  Sure, it's really only one step above HTML/letters to the editor. Your mother keeps calling and asking why you can't get a nice, respectable job coding Java or finish the goddamn Great American Novel, for god's sake. But you soldier on, reporting on the new puppies down at Mrs. Henderson's place, hoping to be the next Hunter S. Thompson or Jorge Luis Borges, but usually, you're coing your friends' homepages for beer money.

And the fact is, ain't nobody's above it. Every town does need a messageboard newspaper. All those WordPress blogs aren't going to write themselves. And we'd all love to get paid mainstream magazine rates, even if it means writing about Asiatic frog migrations.

But at parties, we all talk about the cool new Ruby project we're working on/that brilliant Great American Novel.

You don't want to shame your mother. She only wants you to be happy.

Perl: This is a tough one, but I'm gonna call it for poetry. It's a vastly flexible language, with five and seven and twelve ways to say one thing. It began humbly, as scripting language used by Solon to deliver the laws of Athens. Well, sort of humbly. But now, it's developed its own arcane communities, rules, punctuation, and clothing styles (black). With Python, what you see on the page is more or less what you get--with Perl, there are hundreds of special codes and characters that can only be understood with years of study. 

Most of all, reading someone else's Perl program is often excruciating and boring, yet one must pretend to see the genius inherent in the system. One's own Perl? Beyond price, brilliant, a laser-cut diamond of highest worth. I don't actually think I need to explicate the connection to poetry there. Perl, at its best, can move mountains, drive the most complex of scientific projects, epic Trojan hexameters, even operating systems. It can be powerful, moving, and expressive.

But these days, it's mostly used to write limericks.

Ruby: Hey, kids, have you asked your employer about steampunk yet? 

Ruby is the reason this post exists, because we were laughing in a cafe and calling it steampunk. Ruby is a combination of the old and the new, C and Perl and Smalltalk and Renaissance Faire and Goth and Neo-Victoriana, and new design sensibilities--rational, minimalist, goggle-tastic. It's fashionable as all hell, even your mom is coding Ruby on Rails and blathering about her new airship model. Old school goths stand in the corners and snottily dismiss the brass rivets and bustle skirts as young and slow, with insufficient tool support. Ruby is DIY, encourages you to dive in and tinker around with irradiated watch pieces without worrying about it looking perfect. It's easy to get started--slap on a leather coat, a pair of goggles, and watch the same 15-minute Ruby on Rails demo everyone else did and you're on your way.

Now literary steampunk and costume steampunk are not the same thing, but just like our publishers, we're going to pretend they are, for marketing purposes.

But many, many people, employers and programmers alike, talk about it constantly while having no idea what it's really all about. It was all cool and underground until the last couple of years, when every awkward kid showed up waving a spray-painted Nerf gun and slapping Ruby on Rails on their resumes. Ruby on Rails, by the way, is the programmer equivalent of scrounging up a pair of cheap goggles, calling them Phenomen-Aether Scopes, and claiming you were into steampunk before it was cool. It's database front-ends by the numbers, no creativity required. That said, the minute you take up actual blowtorch and step beyond the standard usage scenarios, it can get incredibly difficult to do well.

But it's still fun as hell and damn pretty. Not everyone can build a giant clockwork automaton in their garage. But some people will build an airship. It's all ok. And all that black eyeliner was starting to feel done.

Welcome to the new world. Same as the old world. But with gears.

ASP: It's old, it's derivative, it has resulted in acres of extruded product that's a nightmare to edit. Mosey on down to your nearest Komputer Kollege, my friends, and cozy up to James Patterson. ASP is the mass-market thriller/mystery/thinly-veiled inspirational self-help "novel" of the programming world. Sure, it's popular and everybody reads at least a little of it sooner or later, but you feel bad afterwards, and have to wash your hands. Microsoft Industry pressure forces poor young idealists to write it if they want to make money, and their silent tears stain a million keyboards.

It mixes all the worst parts of the other genres/languages. Hey! Serial killers are awesome! What about a vampire serial killer? What about a vampire werewolf serial killer with a heart of gold? What about a vampire werewolf serial killer with a heart of gold who mixes row result processing, business logic, and layout code ALL ON ONE PAGE??!

Sold, to your corporate overlords. After all, if you put the strength of an entire company behind it, it'll be a success, even if it leaks memory and ends with  and then I woke up. Hey, we can lash it to a pole Internet Explorer and get it on Oprah, and it won't matter how crappy it is! Rejoice! The world is just a little less awesome than it was before we woke up this morning.

And there you have it. There's one or two missing, but THIS LIST IS UNRELIABLY NARRATED AND POSTMODERN MWA HA HA.

I hope that those of you out there in a writer/programmer coupling will take some time this Valentine's Day to cuddle up by a fire and discuss the relative merits of your respective genres, and have hot, speculative, rapid development sex afterwards.

Think of it as a gift, from our house to yours.

  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

← Ctrl ← Alt
Ctrl → Alt →
← Ctrl ← Alt
Ctrl → Alt →