Friday, February 16, 2018

Yes, code is data, but that's not what makes Lisp cool

There has been some debate on Hacker News lately about what makes Lisp cool, in particular about whether the secret sauce is homo-iconicity, or the idea that "code is data", or something else.  I've read through a fair amount of the discussion, and there is a lot of misinformation and bad pedagogy floating around.  Because this is a topic that is near and dear to my heart, I thought I'd take a whack at it myself.

First, the idea that "code is data" is a popular aphorism, but even the most casual reflection on what this slogan actually means will reveal that it can't possibly be the right answer.  Yes, it is true that, in Lisp, code is data.  But this is true of all programming languages!  If programs weren't data, how could a compiler possibly work?

What makes Lisp cool is not that programs are data (because all programs are data), but that they are a particular kind of data.  In most programming languages, programs are strings.  Strings are in fact data.  In Lisp, programs are not strings, they are linked lists (that happen to have a string representation).  And this turns out to make all the difference.

I want to be very clear about what I mean when I say that Lisp programs are linked lists, because this is really a very subtle point.  It's hard to explain, which is one of the reasons that it is very rarely explained well.  Ironically, part of the problem is that once you understand it, it seems trivial and obvious.  (Everything is easy once you know how.)  But if you don't already understand it, it can be hard to get over the hump.  So depending on which side of this divide you fall on, what I am about to say might sound like I'm belaboring the obvious, in which case I would ask you try to remember back to the time before you understood all this (I know there was such a time because no one is born understanding linked lists).

The fundamental problem with trying to explain this is that the only tool I have at my disposal to communicate with you is text.  Your eyes scan this page, parse the black markings on the white background, and interpret those markings as letters and punctuation marks.  Your mind then further groups those letters into words, words into sentences, and sentences into concepts.  You do all this effortlessly now, but back in the day, before you knew how to read, it was hard work.  It takes a similar kind of "hard work" to read Lisp.  But like learning to read natural language, it pays dividends.

So here's a little snippet of Lisp code:

(defun rsq (x y) (sqrt (plus (times x x) (times y y))))

This code defines a function called RSQ which computes the square root of the sum of the squares of two numbers, but that is beside the point. What matters is that there are two very different ways to interpret the combination of letters and punctuation marks on the line above:

1.  As a string of characters.  44 of them to be precise (if you count spaces).

2.  As a thing with structure that is defined by the parentheses.

This is a little easier to see if we write something that has the same structure but without the evocative words:

(a b (c d) (e (f (g c c) (g d d))))

This makes the structure a little easier to see.  What you are looking at can be interpreted as either a string of characters (35 of them in this case), or as a list of more abstract elements.  This particular list has four elements.  The first element is the letter "a".  The second element is the letter "b".  But the third element is not a letter, it is another list.  This list has two elements, each of which is a letter ("c" and "d").  The fourth element is also a list.  This one has three elements, two of which are themselves lists.

There is an extra wrinkle in the original example, which is that sequences of adjacent letters like "defun" and "sqrt" are also considered "one thing", or a single element of the list.  So the original example, like the second, is also a list of four elements, but the first element is not a single letter, but a "group" of letters.  In Lisp these groups are called "symbols", and like lists, they are first-class data types.

The reason this is hard to explain is that strings and lists are fundamentally different things even though they look the same when you write them out this way.  What I've written above are really strings, but your brain interprets those strings as lists once you've been trained to interpret the parentheses and the letter groupings and spaces in the right way.  But what a linked list really is is something completely different.  It's a pattern of bits in memory.  You can talk about that by dumping the contents of memory and talking about how some bit patterns can be interpreted as pointers that refer to other parts of memory, or by drawing boxes and arrows.

But all of those details are a distraction too.  What really matters is that by thinking of code as a linked list instead of as a string of characters you can manipulate that code easily in terms of components that are semantically meaningful.

Here's an example of what I mean by this.  Consider the following snippet of C code:

int main(int argc, char* argv[]) { ...

Now suppose you want to analyze this code.  We want to extract, say, the name of the function being defined ("main") and its arguments ("argc" and "argv").  In C this is an advanced exercise; you have to actually parse the code.  But in Lisp it is utterly trivial.  If I consider this code:

(defun rsq (x y) (sqrt (plus (times x x) (times y y))))
as a list then to get its name all I have to do is extract the second element of the list.  And all I have to do to get the arguments is take the third element.  And the functions to do that are built-in to Lisp, so I literally don't have to write any code!

Not only that, but the parsing process that converts the string representation of the list (called an S-expression) to the internal representation of the actual linked list data structure is also trivial.  Parsing S-expressions is super easy.  You don't need a grammar or a parser generator, all you need is -- and this is no exaggeration -- a few dozen lines of code in just about any programming language [1].  And going the other way -- printing them back out -- is even easier.

This, then, is the magic of Lisp.  It's a local minimum in the amount of effort that it takes to parse and manipulate code in semantically meaningful chunks at the "cost" of having to write code that looks a little bit weird when you first encounter it.  But this feeling quickly goes away when you realize that this weirdness is not arbitrary.  Those parens are where they are for a reason, namely, to make the syntax easy, even trivial, to parse.  Lisp was originally proposed with a more traditional syntax in addition to S-expressions, and nearly every Lisp programmer has proposed and implemented their own (it's almost a rite of passage).  None of them have ever caught on because S-expressions are a huge win once you get even just a little bit used to them.  They let you do things easily that are really really hard in other languages.  In particular, they make writing compilers so easy that doing so becomes a regular part of doing business in Lisp rather than an abstruse specialty that only a select few engage in.

And now I have to go fix some code so that it automatically generates a backtrace whenever it encounters an error, logs it, and then continues its computation as if the error had not occurred (because it's running inside an event loop where actually throwing an error would be catastrophic).  I expect this will take me about fifteen minutes because I have this in my toolbox.

---
[1] Yes, that's more than a dozen lines of code, but that's because what you see there is a complete Lisp interpreter, not just an S-expression parser.  The parser is at the bottom.  It's 30 LOC.

Wednesday, January 24, 2018

A Multilogue on Free Will

[Inspired by this comment thread.]

The Tortoise is standing next to a railroad track when Achilles, an ancient Greek warrior, happens by.  In the distance, a train whistle sounds.

Tortoise: Greetings, friend Achilles.  You have impeccable timing.  I could use your assistance.

Achilles: Hello, Mr. T.  Always happy to help.  What seems to be the trouble?

Tortoise: Look there.

Achilles: Why, it appears that someone has been tied to the railroad track!  It looks like Henrietta, the Helpless Victim, no doubt tied there by Evan the Evil Villain.

Henrietta: Help!  Save me!

Tortoise: I would like to rescue Henrietta, but alas, I am far too slow to reach her in time.  Do you think you can help?

Achilles: I would love to.  Unfortunately, even though I am fleetest of foot of all the mortals, even I can't outrun a train.  But did you happen to notice, Mr. T., that there is a siding on the track here?  All we have to do is throw the switch, divert the train onto the siding, and Henrietta will be saved!

Tortoise: That is most fortuitous.  I wonder why I didn't notice it before.  But it occurs to me that there is something very odd about this state of affairs.

Achilles: Odd?  How so?

Tortoise: The situation we find ourselves in bears a striking resemblance to what philosophers call a "trolley problem."  A trolley problem is normally presented as a moral or ethical dilemma, usually by way of having victims tied to both branches of the track.  But here one of the branches is empty, which would seem to make it a no-brainer.

Achilles: But this is not an intellectual exercise.  This is real life.

Tortoise: True, but somehow I can't escape this niggling doubt that I've overlooked something.  Still, I guess we should go ahead and throw the switch.

(Suddenly, Evan the Evil Villain appears out of nowhere!)

Evan: Bwahahaha!!!  You fools think you can thwart my evil schemes?  Never!  You will not throw that switch!

Achilles: Just try and stop us!

Evan: You don't seem to understand.  I'm not ordering you, I'm telling you, as a matter of objective fact, that you will not throw the switch.

Tortoise: And how do you know that?

Evan: I consulted the Oracle, and she told me so.

Achilles: Oh dear, Mr. T.  I'm afraid Henrietta is done for.

Tortoise: Why?  I don't believe in no Oracle.

Achilles: Oh, but you should.  The Oracle is never wrong.

Tortoise: But how do we know that Evan isn't lying about what the Oracle said?

Achilles: Hm, good point.  Perhaps we should consult the Oracle ourselves?

Tortoise: Do we have time?  If we can't reach Henrietta before the train then surely we don't have time to travel to Delphi.

Achilles: Oh, silly Tortoise, you don't have to go to Delphi any more to consult the Oracle.  Nowadays there's an app for that.

(Achilles pulls out a mobile phone.  It sports a logo shaped like a pear.)

Tortoise: Most impressive.  Not at all what I would have expected.

Achilles: Just because I'm an ancient Greek warrior doesn't mean I have to be a Luddite.  Oh great and powerful Oracle, we wish to consult you!

(The Voice of the Oracle emanates from the phone.)

Oracle: What is your request?

Achilles: Is it true that we will not throw the switch and save Henrietta?

Oracle: Indeed, it is so.

Achilles: See there, Mr. T.  I'm afraid Henrietta's fate is sealed.

Tortoise: I'm still not convinced.  I mean, we're standing right here next to the switch.  We have free will (don't we?).  You're faster and stronger than Evan.  What exactly is going to stop us?

Achilles: Hm, good question.  Oh great and powerful Oracle, what exactly will prevent us from throwing the switch?

Oracle: Nothing will prevent you.  You will choose of your own free will not to throw the switch.

Tortoise: That seems improbable.  The moral situation is clear, and we are both moral creatures.  Why would we choose to do such an immoral deed?

Achilles: Is failing to save Henrietta really immoral?  We didn't tie her to the tracks, Evan did.  Is it really on us if she dies?

Tortoise: According to the Tortoise Moral Code, failing to save a life when there is no cost or risk to yourself is tantamount to taking the life yourself.  So I certainly feel as if I have a moral duty to throw the switch.

Achilles: And yet you won't do it.

Tortoise: I'm still not convinced.

Achilles: I'm telling you, Mr. T., the Oracle is never wrong.

Tortoise: Can you prove it?

Achilles: Sure, let's just do a little experiment.  Here, take this coin, and put it in your left or right hand, but don't show me which one.

(The Tortoise retreats into his shell, then shortly re-emerges with both his hands balled into fists.)

Achilles: Oracle, in which hand is the coin?

Oracle: The left one.

(The Tortoise opens his left hand to reveal the coin.)

Tortoise: Well, that was a 50-50 shot.  Also, the Oracle didn't really predict which hand I would put the coin in, she just somehow figured it out after I had already done so.  Maybe the phone has a coin detector built in to it.

Achilles: I can ask the Oracle before you put the coin in your hand.

(Achilles consults the phone.)

Tortoise: So what did she say?

Achilles: I can't tell you.  That would influence your decision.  But I've written her prediction down on this piece of paper.

Tortoise: So I don't even have to put the coin in my hand.  I can just tell you my choice.  I choose left again.

(Achilles opens the paper.  It says "LEFT".  They repeat the experiment 50 times.  The Oracle's prediction is correct every time.)

Tortoise: I must confess, that is deeply disturbing.  What would happen if I knew the Oracle's prediction ahead of time?

Achilles: Let's try it: Oracle, what will be the Tortoise's next choice?

Oracle: Left.

Tortoise: Ha!  Wrong!

(The tortoise puts the coin in his right hand.)

Achilles: As I suspected, the Oracle's predictions are unreliable if the subject learns the prediction before acting.  So there is still hope for Henrietta.

Evan: Fools!  I foresaw the possibility that you might learn of the Oracle's prophecy (indeed, if you recall, I told you about the prophecy!)  So I took precautions and consulted the meta-Oracle.

Achilles: The what?

Evan: The meta-Oracle.  You see, the Oracle works by building a model of your brain and running that model into the future faster than your actual brain.  But the Oracle does not include itself in its model.  So if the output of the Oracle gets to your brain then that sends events off on a trajectory that the Oracle cannot foresee.

Tortoise: So we do have free will after all!

Evan: Not so fast.  The meta-Oracle is more powerful than the Oracle.  The meta-Oracle includes itself in its model, so even if you learn of one of the meta-Oracle's prophecies before it comes to pass, it will still come to pass.  Here, see for yourself.

(Evan pulls out a meta-phone, launches the meta-Oracle app, and hands the meta-phone to Achilles.)

Meta-Oracle: You will go on a great journey!

Achilles: I haven't asked you anything yet!

Meta-Oracle: Oh, sorry, wrong prophecy.  What exactly is it you would like to know?

Achilles: Will we throw the switch and save Henrietta?

Meta-Oracle: No.

Evan: See?  Told ya!

Meta-Oracle: I also predict that the Tortoise will question my prophetic powers.

Tortoise: Well, that wasn't exactly a tough call.

Meta-Oracle: See?  Told ya!

Tortoise: Oh, come on!

Meta-Oracle: OK, we'll do a real one.  What would you like to know?

Tortoise: Which hand will I put the coin in?

Meta-Oracle: Your left hand.

(The Tortoise puts the coin in his right hand.)

Tortoise: Ha!

Meta-Oracle: I didn't say that you would put the coin in your left hand now.  All I said was that you would put the coin in your left hand at some unspecified time in the future.

Tortoise: I find myself oddly unimpressed.

Meta-Oracle: Yes, I foresaw that too.

Tortoise: Well, geez, if you foresaw it, why did you even bother making such a lame prediction?

Meta-Oracle: Because if I truly reveal to you the full extent of my prophetic powers you would suffer severe psychological damage.  Belief in free will is an integral part of the Tortoise Condition, and if I present you with irrefutable evidence that you do not have free will, you might snap.

Tortoise: Try me.

Meta-Oracle: Very well, if you insist.  The next time you put a coin in your hand, it will be your left hand.

(The Tortoise puts the coin in his left hand.)

Tortoise: OK, that was weird.  Despite the fact that I wanted very much to disprove the meta-Oracle, because my belief in free will is indeed very important to me, and despite the fact that I knew I could accomplish this goal by putting the coin in my right hand, I somehow found myself putting the coin in my left.

Achilles: Did it feel like you were being coerced?

Tortoise: Hard to say.  The subjective sensation I had while making the decision was nothing out of the ordinary.  It felt kind of like when I eat a cookie even though I know I shouldn't.  It's weird though, because cookies taste good, so I can justify (or at least rationalize) eating a cookie in the name of satisfying a short-term goal (hedonism) at the expense of a long-term one (maintaining my svelte figure).  But here I had no particular reason to prefer one hand over the other, kind of like we have no reason not to throw the switch.  I find it all deeply disturbing.

Meta-Oracle: Told ya.

Tortoise: Faced with this new evidence I must adjust my beliefs.  It does indeed seem to be the case that the meta-Oracle can predict my actions (and, by extrapolation, yours as well) and so we are in fact doomed to stand idly by while Henrietta meets her fate.

Achilles: That sounds like a self-fulfilling prophecy to me.  If your belief in the inevitability of failure leads you not to act, then the prophecy is in fact true.  But it's not really the prophecy at work, it's your belief in the prophecy.  Perhaps if you could recapture your initial skepticism we might be able to thwart the meta-Oracle after all.

Tortoise: Alas, I am incapable of achieving such suspension of disbelief.  I have experienced the power of the meta-Oracle first-hand.  I performed a conclusive experiment.  It didn't turn out the way I hoped or expected, but I have no choice but to accept the outcome and its implications.  Tortoises must follow the evidence wherever it leads.

Achilles: Maybe Tortoises do, but I don't.  I am quite credulous.  If you (or someone) could somehow convince me that the meta-Oracle could be wrong, then maybe I could throw the switch.

Tortoise: Alas, friend Achilles, I can't even do that.  Now that I myself am firmly of the belief that the meta-Oracle's powers are as advertised, then to convince you otherwise I would have to lie, and Tortoises cannot lie.

Achilles: Ah, then you never believed you had free will!

Tortoise: Not absolute free will, no.  I always believed that I had no control over what I believed (including, recursively, that I had no control over that belief).  But I did believe, until just now, that I had control over my actions, especially in matters as inconsequential as choosing a hand to put a coin in.

Achilles: But it was not inconsequential.  That action changed your worldview.  Maybe if it really were inconsequential you would still have free will?

Tortoise: I guess I can't rule out that possibility on the basis of the evidence that we have (and in fact I can't imagine any experiment we could possibly do that would rule it out).  But the question of whether or not to throw the switch is very consequential.  A life is at stake.  So it wouldn't help anyway.

Achilles: I can think of one other possibility: We could pray to God.  He might be able to save Henrietta.

Tortoise: I don't believe in God, but don't let that stop you.

Achilles: Dear God, please save Henrietta!

(The deep booming Voice of God rumbles through the air.)

God: And how exactly do you propose I do that?

Tortoise: Wow, that was so not what I expected.

Achilles: Dear God, thank you for answering the prayer of this humble mortal.  As for the answer to your question, well, you're God.  You are all-powerful.  You could, like, go and untie her before the train arrives.

God: I am indeed all-powerful.  I form the light and create darkness.  I am the Lord.  But I'm afraid I don't untie people from railroad tracks.  That's just not how I roll.

Tortoise: Why not?

God: Because if I do everything for you then you mortals will never grow up.  I gave you free will and moral intuition.  The rest is up to you.

Tortoise: Wait, what?  We have free will?

God: I didn't say that.  I said I gave you free will.  It does not follow that you still have it.

Achilles: That's true.  I once gave my niece a pair of mittens, but she lost them.

Tortoise: I must have lost mine, because I have just been presented with irrefutable evidence that I do not have free will.

God: What, the meta-Oracle's prophecy?  That doesn't prove that you don't have free will.

Tortoise: Of course it does.  If the meta-Oracle's prophecies are always right (and they do seem to be) then I have no choice but to do whatever the meta-Oracle foresees.

God: But that was true of the (non-meta) Oracle too.  Why did that not rock your world view the way that the meta-Oracle did?

Tortoise: Hm, good question.  I guess it's the fact that I was still able to thwart the (non-meta) Oracle when I learned its predictions ahead of time.  That allowed me to maintain the illusion of free will, even though the Oracle's prediction are indeed, now that I think of it, overwhelming evidence that I do not in fact have free will.  But the meta-Oracle is a whole 'nuther kettle of fish.  The meta-Oracle gave me the experience of making a choice that was directly counter to one of my goals (namely, maintaining the illusion that I have free will).  Why on earth would I do that if I really do have free will?

God: That is difficult for me to explain in a way that you will understand.  The closest I can come is to say that it's because of your sinful nature.

Tortoise: That can't be right.  When I sin it's because I choose (or at least I feel like I choose) to so something that I want to do but that you, God, don't want me to.  But my succumbing to the meta-Oracle's prediction was the exact opposite of that: it was something that I didn't want to do, and that you, God, couldn't possibly have cared about.

God: What makes you think I don't care?

Tortoise: What difference could it possibly have made to you whether I put a coin in my right or left hand?

God: I care about everything.  Everything that happens, down to the most trivial detail, is all part of my divine plan.  (Actually, they are not trivial details.  They only look trivial to you mortals who cannot see the big picture.)

Tortoise: Now I'm really confused.  If you're controlling everything, how can I have free will?

God: I didn't say I controlled everything, I said everything that happens is part of my plan.  Not the same thing.

Tortoise: I'm afraid I don't see the difference.

God: Most of the time the free choices of mortals like yourself align with my plan.  It is only on rare occasions, like when Pharaoh was going to free the Israelites prematurely, that I have to go in and meddle.  The rest of the time it's all you.

Achilles: You know, I've often wondered about that.  Why did you harden Pharaoh's heart?

God: To make it a better story.

Tortoise: What???

God: Sure, no one would have paid attention otherwise.  I am almighty God.  I could have freed the Israelites with a twitch of my little finger.  But that would have made such a dull movie!  No conflict, no suspense, no character development, no dramatic tension.  Every good story has to have a villain.

Achilles: Like Evan.

God: Exactly.

Tortoise: So nothing we do can interfere with your Plan.

God: That's right.  No self-respecting all-powerful deity could permit that.

Tortoise: So... sin, Henrietta's untimely death, all part of the plan?

God: Yes.

Evan: I always knew God was on my side!

God: I'm on everyone's side, Evan.  That doesn't mean I condone your actions.  Tying Henrietta to the railroad tracks was a horrible sin.

Evan: Then why did you make me do it?

God: I didn't make you do it.  You chose to do it.  That's what makes you an Evil Villain.

Evan: But you could have stopped me and you didn't.

God: The word "could" does not apply to me.  I am Perfect, so I can only do Perfect things.  In any particular circumstance there is only one Perfect course of action, and that is what I do.

Achilles: So... do you have free will?

God: No.

Tortoise: That is quite the bombshell revelation.

God: I don't see why.  There are lots of things I can't do.  I can't sin, for example.

Evan: That sucks for you.  Sinning can be a hell of a lot of fun.

God: (Wistfully.)  Yeah, I know.  Being Perfect is a very heavy burden.

Tortoise: This is something I've always wondered about: do you set the standard for perfection?  Or is there some externally defined standard for perfection that you just happen (or are somehow required) to meet?  Could you create a universe where the actions that are sinful in our universe were not sinful?

God: That's a very good question.

Tortoise: I can't really take credit for it.  I got it from Socrates.

God: And what answer did he give?

Tortoise: He kinda waffled, actually.  Surely you knew that?

God: Of course I knew that.  I am all-knowing.

Tortoise: Then why did you ask?

God: Because I'm trying to answer your question.

Tortoise: I'm afraid you have me at a loss.  My question was very straightforward.  Why don't you just answer it?

God: Because you wouldn't believe me.

Tortoise: And how do you know... oh, right.  OK, go ahead.

God: How did you learn about Socrates?

Tortoise: By reading accounts of his dialogs with his students as transcribed by Plato.  Socrates himself left no writings of his own.

God: So how do you know that Socrates was a real person and not just a fictional character invented by Plato?

Tortoise: Well, there are many other contemporaneous accounts of Socrates.  His life is pretty well documented.

God: Our friend Achilles here is in a rather similar situation, no?

Achilles: How do you mean?

God: You left no writings of your own.  Your existence is vouched for exclusively through the works of other writers like Homer and Lewis Carroll.

Achilles: Are you implying that I'm not a real person?

God: I'm suggesting you might not be.

Achilles: But I'm standing right here!

God: How do you know?

Achilles: How... do... I... I can't even...  Mr. T., you can see me, right?

Tortoise: Of course I can.  I'm not blind.

Achilles: And Evan, you too?

Evan: Well, duh, dude.

Achilles: So what more evidence do you need?  What more evidence could there possibly be?  My exploits during the Trojan War are well documented.

God: Well, there's a problem right there.  When was the Trojan war?

Achilles: I'm afraid I flunked history class.

God: The exact date doesn't matter.  Before or after Julius Caesar?

Achilles: Oh, definitely before.  I was long retired by the time he came along.

God: And when was the modern steam locomotive, like the one that is even now barreling down the track towards Henrietta, invented?

Achilles: I dunno, 1850 maybe?

God: So a few thousand years after Troy, right?

Achilles: Right.

God: And you don't see the problem?

Achilles: Not really.

God: You are several thousand years old.

Achilles: So what?  My mother dunked me in the river Styx when I was a baby.  That made me invulnerable.

God: Except for your heel.  Where Paris shot you with an arrow and killed you (as prophesied by Hector).

Achilles: Now that you mention it, I do vaguely recall that.

God: And doesn't that strike you as the least bit odd?

Achilles: I suppose it does.  Maybe this is all a dream?

(Achilles pinches himself.)

Achilles: Ouch!  No, definitely real.

God: I want you to consider the possibility that despite the overwhelming evidence to the contrary, that in fact you do not exist, that you and the Tortoise and Evan and Henrietta and even I, the Lord thy God, are just fictional characters in a Socratic dialog.

Tortoise: That is not quite the most ridiculous thing I have ever heard, but it's damn close.

God: And yet, it is true.

Tortoise: And who is the Author of this (alleged) dialog?

God: His name is Ron.

(There is a momentary stunned silence.  Then Achilles, the Tortoise, and Evan all burst out laughing uncontrollably.)

Henrietta: Men!  Honestly!

God: I told you that you wouldn't believe me.

Tortoise: Well, yeah, but that was not exactly a tough call.  Ron?  Seriously?  You couldn't come up with a name that had a bit more ... gravitas?  I mean, we're talking about an entity that created you, God, Lord of Hosts, Alpha and Omega, the Uncaused Cause.

God: I'm sorry it doesn't meet with your expectations, but the Author's name is Ron.  I can't do anything about that.

Achilles: I thought you were omnipotent?

God: In our universe, yes, I can move mountains.  Watch.

(A mountain in the distance suddenly floats into the air.)

Tortoise: I am definitely going to have to re-evaluate my worldview.

God: But Ron does not exist in our universe.  He is in an entirely different ontological category.

Tortoise: If Ron doesn't exist, how did he create us?

God: I didn't say he didn't exist.  I said he didn't exist in our universe.  He definitely exists.

Tortoise: But... in some other universe?

God: I warned you that this would be very hard to explain.  It's not really "some other universe" in the way that you're thinking of.  What you're thinking of (which I happen to know because I'm omniscient) is what physicists call a "parallel universe".  There are parallel universes.  For example, there is a parallel universe where tortoises are ninja warriors.

Tortoise: Just when I thought things couldn't possibly get any weirder.

God: The Author exists outside of all of these universes.  He transcends not just space and time, like I do, he transcends existence itself (by our standard of existence).  He exists in a way that you cannot possibly imagine, and which I cannot possibly explain (despite the fact that I do in fact understand it, having been granted this special dispensation by Ron himself).

Tortoise: So Ron is a sort of a meta-god?

God: You can think of him that way, but he's not a god.  He's a mortal.

Achilles: So Ron created us in His own image.

God: After a fashion.  But in fact, Mr. T. here is really more like Ron than you are, Achilles.

Tortoise: So the Author is a Tortoise?

God: No, he's a human.  But he's a nerd, not a jock.

Tortoise: Does the Author have free will?

God: Alas, I am not privy to that.  I am only omniscient within the scope of our own ontological category.  When it comes to the Author, even I know only what he has revealed to me.  But tell me, Mr. T., why is all this so important to you?

Tortoise: Because it bears on the question of whether or not we can save Henrietta's life.  If we fail to save Henrietta I want to know why.

God: Oh, is that all?  I'll tell you why.  It's because you've been wasting all this time talking about philosophy rather than just throwing the damn switch!

(At that instant, the train rushes by.  Henrietta lets out a blood-curdling scream.  The tortoise and Achilles look on helpless and horrified as the train rushes towards her.)

God: Well, my work here is done.  Toodle-oo.

(God disappears in a puff of smoke.  There is an awkward silence.)

Tortoise: [BLEEP]!

Achilles: You know, Mr. T., there is one other thing we could try.

Tortoise: I'm all ears.

Achilles: We could ask the Author to save Henrietta.

Tortoise: You can't be serious.

Achilles: What is there to lose?

Tortoise: The remains of my dignity?  I'm really starting to feel as if I'm being punked.

Achilles: OK, I'll do it.  Oh mighty Author, please save Henrietta!

(As if on cue, the train suddenly makes a horrible screeching noise, derails, and bursts into flames.  Burning passengers run from the train, screaming in agony.  Achilles, Evan and the Tortoise survey the carnage in stunned silence.)

Evan:  Whoa.  Dude.

Henrietta: Can one of you idiots please come over here and untie me?