Skip to content

Instantly share code, notes, and snippets.

@jorendorff
Last active December 6, 2019 15:50
Show Gist options
  • Save jorendorff/37474e7148a86480af5ea2517fe327ad to your computer and use it in GitHub Desktop.
Save jorendorff/37474e7148a86480af5ea2517fe327ad to your computer and use it in GitHub Desktop.

Wolf, Goat, and Cabbage In Two Styles!!

Abstract

What is the abstract for your talk? This should be a short, engaging blurb that advertises what your talk will be about. For some examples of good !!Con abstracts, you could look at the accepted talks from previous !!Cons (http://bangbangcon.com/speakers.html, http://bangbangcon.com/west/2019/speakers). Of course, you need not feel limited to what's been done in the past; these examples are just to get you started. If your talk is accepted, you'll have a chance to edit your abstract before we make it public.

Would you like to learn two new programming languages, both delightfully strange but for good reasons? What if the comparison sheds light on how different programming languages think about time and data?

Inform 7 is an unusual programming language that looks a bit like English prose. Alloy is a model specification language that looks kind of like advanced math. They are languages from two different worlds, but both are about objects and their relationships. Both come with interesting visualization tools. And both have some issues dealing with change. In this talk, we'll implement an ancient puzzle in both languages, explore their unique charms, and reflect on whether it's possible to step into the same river twice.

Timeline

What is the timeline for your talk? Please tell us how you will use your ten minutes. Detail is good! This is your chance to show us that you've thought about how to fit your topic into ten minutes, no more and no less. Not sure what goes in a timeline? Here’s one organizer’s advice -- http://composition.al/blog/2017/06/30/how-to-write-a-timeline-for-a-bangbangcon-talk-proposal/

  • The wolf-goat-cabbages puzzle (1 minute)
  • Inform 7 (3-4 minutes)
    • A programming language just for interactive fiction!
    • Text adventures are interactive simulations of fictional worlds
    • Inform 7 code looks and reads like English prose!
    • What the Standard Rules "know"
    • How we can extend those rules (using the puzzle as an example application)
  • Alloy (4 minutes)
    • A language for describing simple software models
    • Everything is a set!
    • Alloy has lots of vocabulary for talking about sets and relations (again, using the puzzle for examples)
    • Not so much vocabulary for doing stuff
    • Also, the existence of time is a library feature
    • Surprise! You describe the puzzle, Alloy finds a solution!
  • Taking a step back (1-2 minutes)
    • I love weird programming languages that have a distinct purpose that explains them <3
    • How do these languages deal with time and change?
    • Which of these languages is "declarative"? What do we mean by that?

Background

What kind of background knowledge will your audience need to be able to get something out of your talk?

Not much! Inform is so delightful, and delightfully odd, that I think anyone who has written a program will enjoy it. You won't need to know what "interactive fiction" is; I'll show that.

Alloy is even farther outside ordinary experience, but again, I think the concept can be conveyed easily enough. You describe the objects you would like to see in the world; Alloy systematically generates worlds that satisfy your rules. It might help to know what a mathematical "relation" is; but a relation is a lot like a table, so I'll show that too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment