association-list

20 May, 2007

Short reviews, ’cause I can’t think of a better title.

Filed under: reviews, bookshelf, writing — Evan @ 2:35 pm

Not quite an exhaustive listing of the fiction that I’ve been reading recently, but for the most part it’s been re-reads lately, in addition to a lot of writing. Coming up on the first draft of the book and knocked out a good third of a new story yesterday. Near term schedule for writing, for the truly bored amongst you:

  • Finish the first draft before my brother’s wedding in late June. This is ambitious, but I think that I can get it done, and I’d like to have nothing hanging over my head for that.
  • Let the book sit for a month before revising. In that time period, I’m going to work more on the supporting stories and start polishing them for publication and then sending them out. I plan on starting to send these out in July.
  • One all of the supporting stories are ready for market and making the rounds, revision starts on the novel. Hoping to have this hitting agent’s desks around late September, but we’ll see how long it takes. I’ve never been an expert at revision, nor have I ever revised something this long before. We’ll see how long it takes.
  • Once it’s polished and ready to go, more supporting stories and a start on the next book, which I’m sure that I’ll talk about more when the writing starts.

Now, to the books.

Brasyl by Ian McDonald.

Every time I read something by McDonald, I’m kind of shocked that he isn’t better known. That said, River of Gods was a huge, dense book, and that might have scared a lot of people off. Brasyl, however, is not nearly so long, and every bit as good, if not better. Not being Brazilian, I can’t tell you how close he’s gotten to the feeling of the place, but as a reader I now feel like I’ve been there. The sense of atmosphere is incredible and the pacing and characterization in the book are spot on.

Now, I rarely say things like this, being a fan of brevity, but I really felt that the book would have benefitted from being just a bit longer. This is only partially because the rest of it is so good that I didn’t want it to end. We’re well set up for a sequel of some sort, but another ten thousand words could easily have dispensed with the need for one, I think. McDonald is a writer who’s heavily influenced by music, I think, and one thing that he’s taken home from that influence is the concept of dynamics. He’s more than capable, I feel, of stuffing every page with pyrotechnics, but he refrains, making parts of the novel quiet, other parts loud, some fast, some slow, and he does this quite intentionally and to wonderful effect.

Although I’ve been somewhat underwhelmed by Pyr’s efforts so far, they’ve at least earned by admiration by bringing McDonald back to the U.S., and I think that this is possibly the best book that they’ve put out so far. I’ll be looking to see this one on the award ballots next year, and I’ll be very disappointed if it isn’t there, but with the way that they’ve been going lately, it’s almost hard to take them seriously.

The Last Colony by John Scalzi.

The last book in his series concerning John ‘Competent’ Perry, The Last Colony follows up reasonably quickly after the conclusion of the other two, but not so closely that I’ll be incomprehensible to someone who hasn’t read either of the others. Like his hero, Scalzi is competent, charming, and funny. Unfortunately, that’s about all there is to the book. As much as I applaud his concept of ‘gateway SF’, I can’t help but think that this isn’t quite it, or at least isn’t the gateway that isn’t originally meant. Instead of bringing new readers to the table, I think that these books are more likely to serve as a entree to those readers who haven’t read anything published by an author who wasn’t writing prior to the New Wave.

I’m not sure what I think about that, really. I’m not sure more backwards-looking SF is really what we need from someone new. We have enough extant genre mandarins doing that already, and I’d be nice to see people trying to take things in a new direction. Especially American authors. It isn’t for nothing that three of the books on this list are from the UK. What I would really like to see is something from Scalzi that is forward looking but retains his energy, optimism, and humor. Scalzi is well on his way to making a name for himself, and I’d like to see him stretch a little, rather than continuing to address the established base. To write some true gateway SF.

The Execution Channel by Ken MacLeod.

I only finished this a couple of days ago, and I’m still not sure what to think about it. For the most part it’s a fascinating read, full of MacLeod’s usual assurance and poise, and then at the end it yanks the rug out from under the characters and the reader so violently that no one is quite sure what happened. And then it ends. I have to admit that I felt a little bit like I’d been mugged after I turned the final page. I might have to revisit this one, after some time to think it over and re-read it. Fascinating work, but I’m still not sure what the point was, and if the author was telling us the right story.

Bone Song by John Meaney.

I have to admit that I’m still a bit confused by John Meaney. The books that he writes are interesting, sometimes even compelling, but all too often are crippled by his reliance on stale genre tropes and otaku-style interest in certain topics. If he writes one more scene about his characters going running, I think that I’m going to scream. At least in this one he mostly abstains from the dull martial arts stuff and orientophilia. What we get in it’s place is a more or less standard hard-boiled science fiction novel that’s been search and replaced into a somewhat more ornate and dark fantasy novel.

There are some good spots, some effectively written scenes of fantasy and horror, but ultimately the novel is hamstrung by two glaring flaws, in addition to a host of irritants that otherwise could be glossed over. The first is the entirely unbelievable romance at the core of the story. It honestly has no legs and adds absolutely nothing to the story other than a hook with which the author can, quite unsuccessfully, tug at our heartstrings at the very end of the book. It should have been cut, full stop. It’s fine to have those characters sleep with one another and then deal with the weird fallout of that.

The other is the irritating assumption that all polities, everywhere, are going to be too corrupt for Good Cops On The Side of Right and Good to do their jobs without taking the law into their own hands. I’m generally annoyed by tough-guy characters like the protagonist of this book, but to use them in this day and age with scarcely a nod to the long and unglamorous history of them in genre literature is a mistake. To his credit, Meaney makes most of the things that they do in this vein mistakes, but it still detracts from the supposedly moral center of the novel.

This looks to be the start of a series. I’m not sure that I’ll read the next one, unless the premise is more intriguing than that of this novel. I was hoping that the shift in genre might jar something interesting loose, but it’s more or less like the old stuff with a differently colored coat of paint.

11 April, 2007

More progress.

Filed under: writing — Evan @ 11:27 pm

Nothing interesting going on.

49 days, 40000 words, give or take. The original goal was 100000, just to have a number to aim for, but I don’t think that the first draft is going to be that long. I know how it ends now, or at least how it might end, because I’ve written an ending. Perhaps not the ending, but something.

Also, Kurt Vonnegut has died. Upsetting. There’s still a part of me that believes that cultural heroes should endure forever, although they might not want it, just for my piece of mind.

13 March, 2007

Progress.

Filed under: writing — Evan @ 12:06 am

Twenty thousand (and some) words. Alternately one fifth or one quarter of the way through, depending on the final word count. Fifteen writing days over the course of nineteen days, modulo some cheating to start. At this rate, my trusty spreadsheet tells me that I’ll be done on 29th May, which at this moment seems unimaginably far away (check here if you want to follow along at home). We’ll see what happens.

Section two, which is a little short, seems to be going pretty well, and has almost reached its climax, which is going to take some heavy thinking before I get it right. Section one is damaged, and I’m not sure at the moment how to fix it. Diagramming and more detailed outlining might be in order, if I get the time this weekend. I’m not sure that I want to launch into the third section without getting the first one done (nor am I entirely sold on the four section format that I had originally intended. It might work better with two long sections and one final short section). I’m worried about the amount of revision that the initial stuff written here is going to require, too.

So, since it’s well past time I should have been asleep, I’ll lay out some plans and call it a night.

  • Going to call it done as soon as I have a draft that doesn’t make me ill to think of it and is in the neighborhood of 100k words. This is subject to change, of course, but will serve as a rough guide.

  • After I finish, I’m going to take at least a month off of writing anything new or looking at the book and get some short stories polished and out the door.

  • Going to take three weeks or a month off this summer and go somewhere where I don’t know anyone and get some serious revising and relaxing done.

  • I’ll start writing exploratory shorts for whatever comes next as soon as I’m happy enough with this one to start shopping it around (or when the mood strikes, you never know).

I’ve been leaving a couple of books half-finished for a while, I need to finish those off and find some time to write another of my over-critical updates before I forget what I’ve read.

28 February, 2007

Birthday Update.

Filed under: bookshelf, writing — Evan @ 10:44 am

I am twenty-nine today.

Whee.

So, not dead, just busy. In lieu of providing an update on things that I’ve been reading recently, as is traditional, I’ll gloss over that and give a detailed update on things that I’ve been writing. The reading is not going so well, due to busyness and the lack of notable books published over the winter season. I’ll update eventually, but it’s more likely to happen once I’ve gotten through a few recently acquired books. Mostly, I’ve been chewing my way through short story collections, which I find hard to comment upon cogently. Mostly, talking about them ends up as snarky attacks on the taste of the editor, which is something that I’d rather avoid (not that that preference is something that has stopped me much prior to this).

Anyway:

Novel in progress:

Tracking spreadsheet is here. Feel free to heckle and prod if you see the numbers starting to slip. Note that the title is going to go. I really love the quote, but it doesn’t fit the book. Haven’t thought of anything better yet, however.

Short stories:

There are a couple, and, because I am a slacker, none have been sent out yet. Three of them tie in with the novel.

Mage-get.

The first tie in, detailing some interesting events in the history of two of the primary characters. The closest to being sent out, it just wants one or two more serious revisions, which I promise I’ll get around to soon.

Cast up by the sea.

Second tie in, more history and some hints as to what, exactly, is really going on. This needs some serious revision, to the point that I’m hesitating to even call it done. No idea when I’ll be done with it.

Untitled/The Screw.

The third, and the most difficult of the three. I’m happier with it, structurally, than Cast up, but it’s missing something that I can’t quite put my finger on, and will stay around here until I get that worked out.

MTBF

SF story that I’m pretty happy with. I lost a draft that I really liked, and am going to have to try again. It lacks a real ending, but fairly well captures what I was going for. It’s been shelved for quite a while now, so I really should pick it up again.

Leave Home

This is an ancient post-singularity story, and I’m not quite sure that it’s worth the rework. Will have to steel myself one of these weekends and give it a better read through, rather than gasping in distaste at the first couple of lines and closing the file. If nothing else, there are some interesting bits of color from my time in Brno that might be reusable elsewhere.

1 January, 2007

Book Binge.

Filed under: reviews, bookshelf, short sf — Evan @ 10:25 pm

Since I stayed home over the holidays, I got a lot of quiet time alone to read, which was nice. I also got to spend a lot of quality time with the cat, since just about no one else was in town or available. Oh well. Three books over the four day weekend, and one the week before, plus some commentary on Battlestar Galactica. Or at least that was the plan before a lack of time caused me to put this off for another week. So, add four books to the total, and since I’m cleaning the house today, I’ll inventory the to-read counts. Had I my camera, there would be pictures of the looming piles.

In other news, I’ve finished a couple of stories in the last two months, and the revision of said stories, while slow, is continuing, and I expect to start sending them off soon. Once they’re done, I intend to start on the book that they sketch the edges of, and will post some of the more interesting portions of it here, most likely.

Bookshelf Update:

Unread:

  • Hardcover: 6

  • Trade Paper: 22

  • Mass Market: 15

  • Total: 42

Partially Read:

  • Hardcover: 3

  • Trade Paper: 16

  • Mass Market: 9

  • Total: 28

Grand Total: 71

Ouch. Looking at the books in the pile, and at the turnover, I realize that for the most part a lot of these are books that I thought that I should read, but that never really captured my imagination. There has been plenty of time for me to read more of these (although not so much lately), but some of them just aren’t getting read because for all that they seemed interesting when I bought them, they are continually supplanted by other books that I’m more interested in reading.

I find that most books that I buy are read within a week or two of getting them. If they are not read by then there is fairly little chance that I’ll get to them anytime soon. Or at least, that’s the overall pattern, although there are notable exceptions. Since I’m bored and wondering how many I’ve read and desperately avoiding doing the housework, I’m going to count up the books that I have here and have read. Note that this isn’t the entirety of the books that I’ve read, since I’ve lost and sold and given some away or read it at the library, of course, nor could I bring all the books that I own out here to SF. It’s a lot of them, though, including almost all of the books that I’ve read in the last three years. The count is rough because there are a few (less than 20) books in there that I have not read and don’t really intend to read, at least not in the conventional sense. They’re mostly reference, and a few things from school.

Read:

  • Hardcover: 62

  • Trade Paper: 93

  • Mass Market: 180

  • Total: 335

Grand, Grand Total: 406

Read Percentage: 82.3%

Short Reviews:

Nova Swing by M. John Harrison.

I think that either you love Harrison or you hate him. He’s all about losers, people that you hate a lot, or at least don’t care about much, but at least they’re intriguing, in some way. One day I will find the right words to describe Harrison’s prose style, but I’m not really up to the task right now. Regardless, the writing here is achingly good. I am not entirely sure that I would want to write like Harrison, but I am certainly glad that he is there to do it.

You should likely start with his novel Light before you read this one, or you might be totally lost. Which might be the point, or maybe not. A good deal of the novel is about uncertainty in any case, and there are no characters carried over. If you like this one you should read Light, in any case.

The Ordinary by Jim Grimsley.

I am not certain what I think of this book now, since I just lately finished it. It’s certainly well written but the prose is short of exceptional. While the plotting is certainly intriguing, there are some deep structural problems that I had a hard time getting over. Most of the second half of the book is taken up with what might be called ‘revelation time, where the author spends a lot of space spelling out a lot of facts about the universe that he’s constructed and moving the plot forward almost not at all. This might have been a more forgivable flaw in a longer book, or one with more languid initial pacing, but unfortunately this is a short book that starts quickly and expects a good deal of figuring out from the reader. That is pauses so long for even a quite crucial scene is irritating at the least, and that he does is twice (the scene is done from two sides, but not identically), even more so.

That he then couples this with a pulled punch ending, adds the injury to it. I liked the book, but the point at which he leaves the story off is almost unforgivable. A sequel has just come out, and it might be easier to recommend them as a pair. We’ll have to see. For all of its flaws, it’s an engaging book, and the extra time that he spends at the expense of the plot is spent in well done character building. I’ll pick the new one up one of these days and let you know.

Also, in light of the furore over the fact that Bear’s Carnival contained even a tiny bit of it, I feel that I must inform some of my more faint-hearted readers that this book contains tiny bits of ‘teh gay’ and that if you read it it might get all over you. However, it primarily concerns lesbians, so I’m sure that people will be much less bothered.

The Mark of Ran by Paul Kearney.

This short little fantasy suffers from some of the same problems as the above, but at least you get a good sea battle at the end, something that’s been seemingly promised from the first couple of chapters. There are some good things and bad things about it, but it’s mostly good. Much in the same vein as but sadly somewhat inferior to the work of Steven Erikson. That said, it’s a quick, light book to read, and I’m hoping that the second volume of the story picks it up a lot. As this, this first of a trilogy, as I understand it, suffers a but from first child syndrome, over-heavy with world-building and character development and just finally gets into the plot right before it ends. This will be something that I’ll have to revisit once I’ve read the second volume (I’m honestly tempted to call it the second section).

Polity Agent by Neal Asher.

I’ve just noticed that of the four books that I’m talking about here, only one of them could possibly stand alone. It is not this book. Asher is essentially writing one novel that’s about two million words long. I have no problems with this, as it’s incredibly entertaining, and I think that you should read them all, as much as that is possible, since Tor skipped publishing Line of Polity and may or may not publish this one. I would recommend either going to amazon.ca or to your local specialty store, assuming that you have one.

One thing that bothers me these days, though, is that certain lengths are considered uncommercial. It’s no real secret that short fiction is a slow way to starve. Unfortunately, if you’re truly gifted at the form of the short novel, you’d better have a day job, because you’re going to starve quickly, as you’re too long for the magazines and too short for the main publishers, unless you’re a huge, huge name and people will publish anything that you write just because they know people would buy your spit on paper. Unfortunately this leads to a lot of weird things happening. The worst of it, I think, is that novels that are uncommercially short are padded out, often to great diminution of their effect. But then there are the longer novels that are, at the other end of the scale, cut into smaller parts so that that they can physically be published.

Majestrum by Matthew Hughes

Those of you who are fans of Matt Hughes’ work from F&SF no doubt will already be familiar with Hengis Hapthorne, the Holmes-like ‘freelance discriminator’ who features heavily within what is the more interesting thread of those stories. In this, the first full-length book featuring that character, we get to see that Hughes and his characters, who can seem cartoonish at times, are capable of holding forth at greater length and still maintaining the light tone and humor of the stories, while infusing the characters and their environment with additional depth and interest. Nor, it seems, is Hughes limited only to humor, for we get to see this deeply self-absorbed character confronted by his limitations and faced by a strange form of his own mortality. It’s well handled, and it’s nice to see that the character has more than one note.

Zima Blue by Alastair Reynolds

Reynolds, in my opinion, is one of the more interesting writers of short fiction around, and I find that, despite his claims that he doesn’t work well at shorter lengths, that his short fiction is more effective, at least in terms of my enjoyment of his work, than his longer work. That holds true especially here, in a collection of much of his strongest short work that doesn’t take place in the Revelation Space universe. Highlights include “Spirey and the Queen”, “Hideaway”, and “Beyond the Aquila Rift”. This book just gives us all the more reason to lament the fact that an author can make no more than a tiny fraction of their living from writing short fiction. If it paid a little more, we might see more books like this one.

Child of Fortune by Norman Spinrad

I’m not entirely sure what to think of th this one. I’m a huge fan of Bug Jack Barron, and Spinrad is one of the most interesting stylists that SF has yet produced. That said, I think that this book was meant to be shocking, and unfortunately it fails at this today, although it may not have when the book was first released. For the most part, the book focuses on sex, almost exclusively heteronormative, and it does so at the expense of its setting. The language used is quite interesting and inventive, and some of the set-pieces are pretty magnificent, but the characters and the plot suffer a bit in comparison. There’s just not all that much going on there, and the additional difficulty imposed by the stylistic experimentation and visualizing some quite strange environments ends up being tiring rather than fascinating, because you don’t have the engine of a strong plot to propel you along.

The Man from the Diogenes Club by Kim Newman

I have to admit, I was a little doubtful coming in to this one. First off, the cover is, well, more than a little bit gaudy, and I’d never read anything else by Newman (although I have met him, and he’s quite a nice and good humored person, from what I could tell). But it’s from MonkeyBrain, and I trust Chris’ taste, generally. Thankfully, any apprehensions that I might have had were entirely unfounded. This is a great book and it’s a whole lot of fun. It’s also carried off with a great deal more stylistic panache than one would infer from the seeming wonkyness of the conceit. A collection of short stories revolving around psychic and disco fashion maven Richard Jepeson, the whole thing could be shallow and played for laughs, but Newman infuses the characters with feeling and depth that could easily have been left out if these stories had been written simply as a lark. The only issue that I had with these stories was that, as an American reader, with no deep knowledge of British popular culture, I constantly had the nagging feeling that I was missing quite a bit of the cultural references being made. I did not discover until after I had finished half the book that there was a generous glossary and explication of many of these references at the end of the book, which I found helpful and would recommend reading through first, if only so you don’t have to go to the back every time you get the feeling that you’re lost. Overall, this stuff was incredibly enjoyable and I’ll certainly be seeking out more of Newman’s work in the future.

Battlestar Galactica Start to ep 2×08

I’ve stopped watching this show. I don’t know whether it’s the Star Trek science, the hot topcism, or the irritatingly inconsistent way the characters seem to be written, but this show just doesn’t seem to be very good. The Gaius Baltar character is especially annoying. I think that the show might have worked better with some more serious constraints, like a statement at the outset that said the producers of the show would see the characters on Earth or dead in three seasons. That way you might get less of the sense of meandering that this series gives off. I don’t hate it, and there are many good moments, but I just can’t keep watching a show that has me stopping a few times an episode to cringe at how astoundingly bad the last couple of minutes were. Also, I know that they’re not going to give it the ending that I want already, so… meh (I don’t say that selfishly, as in I only want endings that I like or can predict, but I can already see it ending like so many of the other genre shows, drawing it out too long and slowly losing viewers until they have to finish the show in an unsatisfying hurry).

7 December, 2006

An excellent Blindsight review.

Filed under: bookshelf, link-following — Evan @ 9:32 am

Niall Harrison’s review of Blindsight is the best that I have seen thus far. You should read the book first, perhaps, as there are many spoilers, but you should read it in any case because it’s one of the best SF books to have come out this year. Pass the link around, because more people should see it.

5 December, 2006

A few more books down.

Filed under: reviews, bookshelf — Evan @ 10:21 pm

So. I’ve been working on other things lately, hence the scarcity of blogging, and this bookshelf update will be a short one. I’ve just finished a couple of books, and I thought that I would mention them, just to get the fingers moving

Carnival by Elizabeth Bear.

I liked Blood and Iron and The Chains That you Refuse, but I have to admit that I stalled out on Worldwired. I’ll finish it eventually, but in the meantime, I decided to pick up Carnival, to see what Bear can do in a more free-wheeling science-fictional mode. The setting is in a pretty grim far future, where AI overlords unleashed by the far left have turned Earth into a pretty nasty place to live, where the unfit are Assessed, which is to say, instantly killed and recycled by their implants. All of this is somewhat peripheral to the action, though, at least as it concerns the story as it happens. It speaks pretty deeply to the character’s motivations, but it isn’t really the interesting part of the story, so I won’t much discuss it here.

The meat of the action involves two long-separated lovers, two homosexual males with names so distressingly long that I imagine Bear just typed VK and MKJ and searched and replaced them when it was time to submit the manuscript. They’re sent there on a mission by the powers that be on Earth to the deeply self-consciously named New-Amazonia, where women rule, men are chattel, etc. The world-building is pretty intense in places, but it’s somewhat uneven. Since our perspective is mostly (there’s a third, native, viewpoint character, but she doesn’t get as much time at the fore) outsider, we don’t get a whole lot of a feel as for what it’s like to be one of these people, with their starkly different mores and strange culture, and the carnival that names the book is strangely distant, essentially Mardi-Gras, and we never really get a feel for it. Those caveats aside, the main characters and what they’re doing are richly drawn and sharply plotted, and the sex scenes are lightly handled enough that they won’t squick anyone who doesn’t already have deeply seated issues. I thought that the ending was a little rushed, but overall I would recommend the book, and continue to look forward to Bear’s forthcoming work.

The Android’s Dream, by John Scalzi.

I enjoy Scalzi’s work, to an extent, although I think that his main line of novels lack some of the moral heft that I feel they should have, considering their subject matter. Also, I admit to some bigotry for SF that’s over-focused on planets, as Scalzi’s tends to be. But that’s neither here nor there. They’re quick and fun and breezily written with a sharp eye for human foibles and the humor inherent even in dark moments, of which there is no lack.

This book was lighter even than most of his others, though, and I came away a little bit unsatisfied. There were a few reasons, one of which is that the book hinges pretty strongly on some unlikely elements, like a race that relies on top down computer control of every little thing allowing another species entirely to design them a computer system to help do that work, and no one ever trying to hack or subvert it, or even get overly familiar with it. I didn’t really ring true. Also, the idea that in hundreds of thousands of years of galactic history, the idea that no one, ever, before humanity, would bother to try simulating a brain on a computer, it kind of absurd. Most of this takes place off-screen, so it doesn’t directly detract from the book, but they subtly undermine the impact of the resolution, which counts against it in the end.

The book is short, which I applaud in a non-snarky way, and it stands alone, which is also admirable. The characters are fun and interesting, although the main character is too much the self-effacing competent man to ever really come into his own as a character. The book moves along briskly, touching lightly on the emotional resonances of war and people’s general inability to deal with it after the fact. Overall, it’s more fun than anything else, and it doesn’t strive to be much else than fun. You could fault it for that lack of striving, I guess, but it would make you ill tempered and blind to many things.

The Jennifer Morgue, by Charlie Stross.

Another one in the tradition of The Atrocity Archives, this time a take of Ian Fleming’s James Bond books. Unfortunately, perhaps since the Fleming books are worse than the source material for the books that inspired Archives, this book, while interesting, hews perhaps too close, and gets too self-referential, which takes something out of the enjoyment, in the end. If you’ve read Archives (I suggest that you do, if you haven’t), you might be disappointed by this one, as I was, a little. Still fun, but I have the feeling that Charlie has a crackerjack book in this series that will out-shine these first two entries by an order of magnitude. Charlie is pretty good at his worst, and astonishing at his best. This is a pretty good book, which means that I enjoyed it, but it doesn’t really live up to the unfiltered Stross experience which I’ve come to expect.

Latro in the Mist & Soldier of Sidon, by Gene Wolfe.

Oh wow. I don’t know if I’ve mentioned it, but Gene Wolfe is far and away one of my favorite authors. It is unlikely that I will ever escape from his influence in my own writing, although I could never hope to produce things as powerful. In these books, Wolfe follows a Roman soldier in Greece and later, Egypt, who has suffered a head wound and cannot remember for more than twenty four hours at a time. Thus he must write down everything in order that he might remember. The metafictional conceit here is that Wolfe has been given the scrolls by a friend to translate them, something similar to the metanarrative that enclosed the Book of the New Sun, although in those books, the narrator, Severian, has eidetic memory. There are a great many things that I would like to say here, but there’s so much to unpack, just from the one set of books, much less the two of them taken together. I might be here all night, and there are other things that I need to do. Just go out any buy them. Wolfe is our greatest author. You should have read them already. I should have read them already, but it’s better late than never. You might hold off on Sidon if you’re averse to a story left unfinished. The writing is brutally beautiful, no one makes it felt like Wolfe.

24 November, 2006

Logic and Implementation.

Filed under: geekery, lisp, haskell — Evan @ 1:28 pm

Thesis

Lately, in addition to spending more time writing fiction than reading it, I’ve been studying Haskell, a programming language. Familiarity with Haskell in this case is not really necessary, as the theory that that I’ve been formulating while comparing Haskell and Lisp has little to do with the practice of programming. This might be old hat to old time programmers, but I’ve never seen it formulated in quite this manner before. People often talk about ‘power’ and ‘expressiveness’, when talking of high-level languages like Haskell and Lisp, but I wonder if this isn’t missing the point, or expressing the correct point in a way that obscures what’s really going on. I’ve begun to think about programming as having two parts, Logic and Implementation. This could be extended to have a third level, Runtime System, but even then, I’m thinking of the Runtime as parts of the Implementation that are so popular and useful to users of a given language that they’ve calcified into the substrate of that language; there is a level at which this distinction is important, however, and that is compatibility. The thrust of the argument that I’m putting forward is this: The looser the coupling between the Logic and Implementation in a particular programming language, the more powerful and expressive that programming language is. Which is to say, for those of you who abhor semi-circular definitions, the looser this coupling is, the easier the language is to use for truly wizardtastic (technical term) uses of computing power.

DWIM, ye beastie!

At its most basic level, programming is the task of telling a computer what to do. Ideally we’d be able to tell a computer to ‘log all the incoming connections to port 1337 and sue the sender’ or ‘reply to all the wfm postings on craigslist with that picture of Brad Pitt with my face’ or just ‘fix that shit!’. It doesn’t work that way, fortunately, which is why the rest of you pay those of us who can so very much money. So in getting a computer to do something, you have to tell it what to do (Logic) and how to do it (Implementation). In most languages, telling the machine these things are so entangled that they’re essentially the same step. In C, programming is the process of telling the machine in really fucking small, fiddly steps, do a then do b then do c with a and b.blerg. I make it sound horrible, but it isn’t. C is a great implementation language. It’s a terrible language for expressing high level program logic in a modular way, though, because there is no clean separation between what you’re doing and how you’re doing it. In C, you are what you do. This is fine for prototyping, but it’s a pain in the ass when it comes to refactoring and maintenance. If, in a C program, something that we’re doing is too slow, we actually have to visibly change what we’re doing to alter what should rightly be an implementation detail.

This is not to say that you cannot create this separation in C or any of the other languages out there. They’re all Turing complete and can all do the same things. The problem is that you have to think about it all the time, which means that you’re spending less time thinking about more important things, like how that obscure corner case on multi-core machines could really bite you when a switch port starts to flap, or whether the attractive person in the office across the hall is available this weekend for a date. Not having to think about the separation between what and how means it’s easier to design the system in a way that the Implementation is as orthogonal as possible to the Logic, meaning that it’s easier to chunk it up and give different parts to other people, or to improve performance without having to alter your understanding of how the entire system works. The ultimate expression of this is moving to a compiler that’s smarter about how it does things, and then turns out faster code without any effort on your part, but it functions on the applications level as well.

I would argue that it also makes it easier to reason about parts of your program as well. Not in the high level, formal correctness reasoning type of way, but just to break it into chunks and move them around in your head, thinking of new ways to solve problems, or better ways to do what you’re already doing. There’s nothing magic about this. The brain (oh, here he goes, appealing to science…) can only hold so many parts of a complicated problem at any one time. So the coarser chunks you can break a problem up into, while still being able to usefully think about the way that they interact and interrelate, the better off you are.

Additionally, I would like to put forward that OO-type implementation hiding isn’t really a useful exemplar of this strategy all on its own. This may have nothing to do with what it’s capable of and more to do with the way that it is used, which seems to me to be overly focused upon code sharing and ‘defining good APIs’. I am an OO skeptic in general and I don’t think much of code sharing as a target in and of itself (’First, order within. Second, order within the familiy…’).

How I think it works.

In Lisp, you have macros. Not like crappy C preprocessor macros that take code as input and return text to be parsed, but functions that take ASTs and then can manipulate them in arbitrary ways. A trivial example is something like with-mutex which you pass a chunk of code, presumably containing stuff that pertains to the mutex that you’ve grabbed. The macro then grabs the mutex that you’ve specified, executes the code that you’ve passed in, and releases the mutex. More complex uses loop a deeply complex mini-language within Lisp having to do with simply expressing really hairy looping constructs. It’s code that writes other code.

In Haskell, you have monads. Disregarding their category theory use, monads are a really clever way of abstracting away state changes in a purely functional language, which otherwise does not allow the mutation of values. A monad returns actions which then can be taken by a program, which may then alter the program’s state. Examples include IO, parser state, and most of the other interesting things that you want to do with a program. It’s code that expresses actions in a packagable, cleanly reusable way.

Although their implementation could not be more different, I say that these two mechanisms are doing more or less the same thing, which is enabling the separation of what you’re doing from how you’re doing it. They’re both often cited as things in these languages that are hard to wrap your head around, which I think stems from the fact that this separation isn’t always an easy one to make, at least on the level of thinking about a program. Once you get it, though, they seem almost like magical tools, allowing you to act as if your language arbitrarily powerful primitives. You can define things that act like new control constructs or operators. This is a huge win because once you have them right you don’t have to think about them anymore. On the flip side, if I need to change something about how something is done, either for robustness or efficiency, I can change it in one place, without having to worry about the rest of the program. We, as programmers, like to think of ourselves as smart people, perhaps uniquely skilled, but it all comes back to our limitations. The smaller bits of the program that we can work with, the better we are at it.

This, I would argue, is why more excellent programmers are drawn to languages with these properties (lest I be accused of arrogance, I am explicitly not an excellent programmer. I am, however, quite good at learning from the mistakes that other, smarter people make). It allows them to elide away the niggling details of the huge problems that they’re hacking away at, building a structure for reasoning more effectively about the problem that they are trying to solve. Paul Graham has talked about bottom up programming, which, I suppose is the root of the ideas that I’m trying to express here, but I think that it’s useful to re-express the process as defining what you’re trying to do, then defining how to do it, which sounds top down, but which has a lot of bottom-up parts, mostly because if you find that the way that what you’re doing is wrong, you can often re-use parts of the implementation of the previous strategy without having to change them. Instead of spending a lot of time defining a spec and interfaces and objects, you just write a quick spec right there in the code, then write the code that implements that code right under it.

This method of programming, I think, eludes a quick, visual metaphor like an arch or a lintel or a blueprint, mostly because its consequences are so subtle. Most of the work is done in the bottom-up style, but there are many top-down aspects, as they allow you to better reason about which bits at the base are important to get to first. Perhaps a good metaphor would be found in Haskell’s default of lazy evaluation. The top level spec defines a massive solution space comprised of all of the possible programs that you could write to do the thing that you’re trying to do, and then you only write just the bits that you need to write to get it working, much as Haskell can define a list or matrix of theoretically infinite extent and then pluck out just the values it actually needs, rather than precomputing the entire thing. By exposing the shape of this solution space, the high level spec allows us to better reason about what low level chunks of the program we need to attack first.

29 October, 2006

More maundering on about Lisp.

Filed under: geekery, lisp — Evan @ 2:14 pm

One of the thing that makes CL a pain in the ass sometimes is that there are a lot of strangely named functions specialized for different types of objects. The language has a trillion keywords and a lot of them don’t really help the language learner get comfortable with the language. As an example, iteration:

In the language standard there are a couple of different iteration constructs, do, dolist, docount, and loop. Strangely, there is no doarray. It’s easy enough to write one:


(defmacro do-svect ((counter array) &rest body)
  (let ((ctr (gensym)))
    `(dotimes (,ctr (fill-pointer ,array)) 
       (let ((,counter (aref ,array ,ctr)))
     ,@body))))

That’s all well and good, but it’s a pain to have to write a macro for each and every sequence type of thing that you have to deal with, and while I understand why it isn’t there, I don’t understand why there isn’t some general foreach type of function. It would be easy enough to write, just a macro that detects the type of the sequence type the function was called on that writes out the appropriate thing. There are a number of situations where this would help a lot, to the beginner. Just layer them as macros over the normal syntax and keywords, which, of course, would all still be there if you needed to do something more complicated.

Syntax, I think, makes things easier to remember, because (and I’m theorizing here) it calls in some other part of the brain than the part that we use to remember vocabulary, which is what we’re being asked to do with Lisp. I’ve never in my life written a line of Smalltalk, but I can remember that their lambda syntax is something like [ x y | x * y ]. I know very little Erlang, but I know that their binary pattern matching syntax is << x/integer, y/float >> = val. I’ve been reading about lisp for years and staring at it for ten of the last sixteen hours and I’ll be damned if I can remember how to pass multiple values back from a function.

Perhaps Arc will fix all of this, but I think that it would be of no little value to the Lisp community, and to those who want to learn lisp, if people started working on a package that everyone agreed to include and use with their distributions (hah!) that made some things a little easier. It could be something like the modern package that comes with ACL. Hell, everyone could make their own and then we could give them six months, then put them all in a ring and make them fight and then make something more or less agreeable to everyone with the parts that are left over.

Lisp is famed for it’s ability to quickly generate Domain Specific Languages, so perhaps it’s time that we bent that ability towards a different kind of domain, that of learning the language itself. It might also point to the kinds of things that would be interesting to put into the next version of the spec, in the far-off, misty future when that fabled document is actually generated.

28 October, 2006

Yet another bookshelf update.

Filed under: reviews, bookshelf — Evan @ 4:32 pm

Quiet lately. Rather busy at work, plus trips home and being busy with other writing projects.

In other news, a few words on books that I’ve finished recently.

Mistborn, by Brandon Sanderson.

Though Elantris was a promising debut, this novel doesn’t step it up as much as one might wish. Although it’s pretty nice in that it is another stand-alone book, for which I think Mr. Sanderson should be applauded, the writing hasn’t grown quite as much as one might wish, and there is also second degree abuse of the word ‘maladroit’. It also doesn’t properly address my complaints about the exceptionalism inherent in modern fantasy. My big gripe with the book is that, although it has its heart in the right place, with the people and all, it doesn’t really interact with them very much. Even the main character, supposedly drawn from the lowest of the low, seems exceptionally clever and not beaten down as the skaa, the proles of this particular word are called, would seem to be, and they’re more or less disposable and interchangeable throughout the course of the narrative. There is a touch of the revolutionary vanguard party ideology going on here, that’s something that I’ve never been able to identify with, although your mileage may vary, depending on your political stripe and tolerance for that sort of thing. However, Sanderson continues to produce books that stand head and shoulders above standard extruded fantasy product and take on the standard tropes of the genre with no small amount of rigor and inventiveness.

Trial of Flowers by Jay Lake.

I got ahold of a galley of this one, which is coming out soonish. It starts out in the vein of novels like The Etched City (which I loved) and Veniss Underground (which I thought was interesting, but flawed), but lacks the ultimate sense of hopelessness that many of the novels of that ilk are afflicted by, and I think is made better thereby. It’s refreshing to see a blend of the world-weary and disaffected characters most traditional to the ‘new weird’ movement fused with some of the grand, sweeping structural elements of traditional fantasy without being overconsious of the effect, and I think that this is where the great strength of this novel lies. Deeper but more distant than work by Mieville, who I would hold up as the modern exemplar, I think that a lot of people will like this one, and also that it heralds big things for Mr. Lake.

The Demon and The City, by Liz Williams.

I really shouldn’t even have to say anything here. The Chen novels just get more interesting in this iteration, and Williams just gets better and better. All told, I have to admit that I slightly prefer her ‘pure’ science fiction stuff, but these novels are a lot of fun, and I think that they’re much more accessible to a general audience.

Night Watch by Sergei Lukyanenko.

I thought that the film was decent, but I liked the book(s) quite a bit better. The movies changed the story around to create resonances that I don’t think really needed to be created, and I think that the lost a lot without the conflicted voice of the narrator. The ending feels a little like a cheat, but the setting is interesting, and I hope that this one does well enough to get more Russian contemporary fiction and genre stuff coming out in English.

The Child Garden by Geoff Ryman.

Um. Wow. I just finished this and I will admit to being more than a little overwhelmed. Ryman is, in my opinion, one of the top three prose stylists working in the genre at the moment. My inner science geek is appalled, at times, with the treatment of some of the science, but that’s about the only criticism that I can level at this particular work. The world depicted is simultaneously intricately surreal and utterly quotidian, and I would describe it, at the risk of sounding Cluteian, as a fictive world with the heft of the Real. There are some disturbing elements and some absolutely harrowing sequences. The book really sucks you in to the point where it’s painful to read some of it, but you cannot stop. I haven’t read all of Ryman’s novels, but with every one I am more and more impressed.

Sun of Suns by Karl Schroeder.

Two words, people: Air Pirates. This book, which is a smart little novel in the vein of the old pulp adventures updated for contemporary sensibilities, much like Paragaea, by Chris Roberson. It also has one of the cooler science-fictional conceits that I’ve come across recently: The entire novel takes place in a world sized ball of air lit by giant fusion radiators that the people call the suns. The entire thing is convincingly well thought out, but Schroeder never lets the world building get in the way of the action or the driving plot. I quite like Karl Schroeder, and although this is one of his lighter books, I recommend it highly. Fun fun fun, and have the inkling that this particular series is really going to go places.

Blindsight by Peter Watts.

As I’ve said before, this one is a book that you need to read to even pretend that you know where science fiction is in this day and age. There’s likely already enough breathless prose out there describing it, so I won’t add much but to say that it’s a fascinating example of how to make deeply, deeply flawed characters engaging and compelling. Hell, in this one, the characters are barely human (and not, in some cases) but you can’t really put it down. It is not a book without flaws, but it works in the “if you’re not failing you aren’t trying hard enough” kind of sense. Watts might not have reached his goals here, but with the aim of the novel being hitting the ball somewhere into the next state, I think that everyone could be content with just a grand slam home run.

The Machine’s Child by Kage Baker.

I have to admit that this book annoyed me somewhat, as the Company sequence is still not over, and this book does little but set up the pieces for the grand finale. It seems to be that it’s going to end with an incredible bang (supposedly in the next and last book), but we’re still not there yet, so there isn’t a lot to say.

Her Smoke Rose Up Forever by James Tiptree, Jr.

This book makes me angry because I’d barely heard of Tiptree before I picked it up. I have tons and tons of old year’s bests and collections from the period in which she was writing, but I don’t think that I’d read a single story from this collection before, and that’s a crying shame. Many of the stories in here are totally amazing and deeply depressing. You will not find anything nice said about human nature, but you will find some really excellent prose, and the titles! Wow. You owe it to yourself to find a copy of this and read it. It is one of the building blocks upon which modern science fiction is built (indeed, William Gibson owes Tiptree a particularly large debt, only subtly acknowledged, as far as I know), and it’s terrible that her work is more or less unknown to the modern reader (at least of my age group). Hopefully the new biography will belatedly bring her more readers.

Scar Night by Alan Campbell.

There was a lot of pre-release buzz for this one, but it doesn’t really live up to it, in my opinion. It’s a first novel, plain and simple, and doesn’t nearly have the depth or density or reach of China Mieville’s similar and, honestly, much better, work. Still, it isn’t terrible and it doesn’t rule out Campbell’s work becoming of more interest in the future, although if I were Campbell, I would ignore the fact that the book claims to be book one of a series and write about somewhere else for a while.

Memory by Linda Nagata.

I’m not all that familiar with Nagata’s books. This one isn’t terrible, but it’s light reading. There’s some interesting stuff here, but for all that the ending costs a lot, you don’t really know all that much more when it ends than when it begins (I have a feeling that it was meant to be book one of a series that didn’t get written), and I don’t think that the losses, at least at the end, are deeply felt or affect the characters very much. The world where the novel takes place is pretty interesting, and I feel like it would be pretty interesting to learn about what’s really going on there, but you don’t get there in this book.

End of the World Blues by John Courtenay Grimwood.

In this one, Grimwood continues being uneven. Stamping Butterflies was great, 9tail Fox interesting but less great, and this one falls into the latter category. You’re never quite sure what’s really going on or what the significance of the far future story thread is, and it never gets explained, or at least explained well enough to make me care. The best thing about this novel is the characterization of the near-future thread’s protagonist, a broken, conflicted loser who’s made some really nasty mistakes in the past. For all that he fails to become completely real at times, his story is interesting and carries you through the book well enough. I just feel that Grimwood romanticizes the outsider/pseudo-psychopathic male a bit too much. He has the chops to tell us a really interesting story, and he’s getting there. I’m betting that in a book or two he’s going to make a breakthrough and write something that’s huge and possibly quite important. I’m really looking forward to reading it, when it finally arrives.

« Previous PageNext Page »