Season finale, season premiere

This is a more personal entry than usual. This year, several important things have happened in my life already.

In January, I attended Off the Beaten Track 2016. I met several very interesting and nice people there. Programming language ideas were there in abundance. Everyone had them. It was like I was where I was supposed to be.

During GDC earlier this month (March), I attended an IF get-together dinner, the Lost Levels unconference in the park, and a group where people discussed procedural text generation. I met a lot of people who were surprisingly like me in appearance, in gender identity, and in interests. I met my long-time heroes from the IF world, while hoping not to put them on a pedestal too much.

Those events were actually unpleasant for me for several reasons. The AI discussions actually squicked me for being so discordant with my worldview around AI. My own internalized prejudice against my own identity became apparent to me like never before. And I realized that in the IF circles, the fact that I had no works of my own to display was obstructive to any help I might have wanted to offer. Who says my help is worth anything?

There’s something about having a finished product that seems arbitrary and unnecessary to me. All my projects feed into each other, and they all seem useful to my life even if I don’t do the academic or writerly thing of putting out digestible nuggets that others can learn from. I like to share the value in other ways, typically with one-on-one discussion as someone I know tackles a specific issue or ponders a broad topic. At the same time, I listen, I incorporate their ambitions into my own, and the scopes of my own projects increase further beyond my short-term reach.

Nevertheless, I explicitly made special goals for myself this year, and one of them was to polish one of my programming languages to the point where I could show it to people as something they could install and use.

Meet Cene. Cene isn’t especially revolutionary; you might think of it as just another dynamic language. However, Cene has a combination of features I consider essential (and all too often unavailable) as a frequent developer of programming languages. It has hygienic macros, unhygienic macros, and namespaces, for easy use of different DSLs in different parts of a program. It has a syntax where s-expression literals and string literals can nest any number of levels without a mess of escape sequences, for easy code generation. It’s pure. It has a complete JavaScript FFI. I haven’t exactly counted, but I bet Cene has fewer than 40 built-in macros and functions at this point. Instead of doing my next project in JavaScript, I’ll probably do it in Cene.

Just a few days ago, some news about conference codes of conduct made me worried. I spent a long time investigating it. I finally came to a realization that I forgive ignorance so easily, and I worry about my own bubble of concerns so much, that I dangerously distract myself from the immediate safety and respect of others. I’m sure I’m not done learning this lesson yet, but I do understand that being done is not how this works.

On Easter Sunday, after stressing out about codes of conduct a while, I confided to my grandma about my identity. It had been about 15 years since I first knew and kept it hidden, and she was nothing but gracious and supportive. I don’t know how things are going to play out from here between us, but they’re looking up.

Monday morning, I revisited the motivations of a couple of my most villainous characters. One was a particular enigma to me, full of prejudice and scorn, and I had felt uncomfortable even thinking about writing for her. Face to face with my own prejudices, I was able to elaborate on her past and her future. MyAI is a story I’ve wanted to write since maybe 2001 or 2002, and I can trace some of the character traits and tropes back to 1994 or so (second grade), but the ending has always been an enigma.

Now I see a rather beautiful ending for MyAI. I can’t promise to myself that it will make its way into the final revision of the story, but there’s something about this lifelong project that feels complete now. My recent attempts at writing for these characters were deeper depictions than ever, and I think I can do that for every major character now. I know where they’ve been and where they’re going. I guess this story is no longer a personal quest of mine, a part of myself that even I have trouble understanding. It’s ready to be written for someone else.

I turned 28 last November. I’ve spent just about half my life designing programming languages, and now I have one that’s fairly well-equipped and presentable. I’ve spent just about half my life following the IF community from afar, and now I’m participating to some extent. I’ve spent just about half my life hiding my identity from my grandma, and now the fog has lifted. I’ve spent perhaps two thirds of my life composing the story of MyAI, and now I know how it ends.

That’s not the end of anything for me. Now I get to using Cene on projects of some substance, I get to engage with my programming and IF colleagues, I get to start using my identity a little more, and I get to put MyAI down into writing. See you the next time I post.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s